Skip to main content

Auto Significance Manager Plugin

Automation of character optimization

I developed this project as a way to learn how Compute Shaders work, with a view toward their subsequent use in the Marching Cubes project. At the same time, it allowed me to explore the GPU’s capabilities for processing tens of millions of elements per second.

Image of the system emitting particles in a positive vertical cone with negative vertical acceleration.

The System

The system can be configured with various parameters, such as the maximum number of particles, emission rate per second, lifetime, and particle size. We can also modify the rendering mode: opaque, alpha cutoff, or transparency—the latter significantly increasing fragment rendering complexity as the number of overlapping particles grows.

Final render

System configuration menu.

Compute Shader

A Compute Shader is a type of shader that leverages GPU hardware acceleration to perform parallel calculations in a fully programmable way. Its core element is the kernel, which can be dispatched by the CPU, receiving variables and different types of buffers (read, write, read-write, structured, or random access). This makes it possible to execute calculations that would be unfeasible on a CPU—even using all available threads—such as simulations involving millions of particles.

Final render

Compute Shader kernel.

Demo of the system being executed in the Unity Editor.