Shaders Particle

Los shaders de partículas son un tipo especial de shader de vértices que se ejecuta antes de que el objeto sea dibujado. Se utilizan para calcular las propiedades de los materiales, como el color, la posición y la rotación. Se dibujan con cualquier material normal para CanvasItem o Spatial, dependiendo de si son 2D o 3D.

Los shaders de partículas son únicos porque no se utilizan para dibujar el objeto en sí mismo; se usan para calcular las propiedades de las partículas, que luego son utilizadas por el CanvasItem de Shader Espacial. Sólo contienen una función de procesador de vértices que da salida a múltiples propiedades (véase más adelante).

Los shaders de partículas utilizan un shader de feedback transformada. Recibe los datos en una memoria intermedia como lo hace un shader de vértices normal, pero también da salida a las memorias intermedias de datos en lugar de dar salida al shader de fragmentos para el procesamiento de píxeles. Debido a esto, los shaders de feedback de transformación pueden construirse sobre sí mismos cada vez que se ejecutan, a diferencia de otros shaders que descartan los datos que han calculado una vez que se dibujan en el frame buffer.

Nota

Los shaders de partículas sólo están disponibles en el backend GLES3. Si necesitas partículas en GLES2, usa CPUParticles.

Modos de renderizado

Modo de renderizado

Descripción

keep_data

No borre los datos anteriores sobre el reinicio.

disable_force

Desactiva la fuerza de atracción. (No se aplica actualmente a 3.1)

disable_velocity

Ignora el valor de VELOCIDAD.

Funciones propias

Los valores marcados como "in" son de sólo lectura. Los valores marcados como "out" son de escritura opcional y no necesariamente contendrán valores sensibles. Los valores marcados como "inout" proporcionan un valor por defecto sensato y pueden escribirse opcionalmente. Los valores marcados como "in" no son objeto de escritura y no están marcados.

Funciones incorporadas globales

Las internas globales están disponibles en todas partes, incluyendo las funciones personalizadas.

Integrado

Descripción

en real TIME

Tiempo global, en segundos.

Vertex built-ins

Para usar la variable COLOR en un SpatialMaterial, ponga use_vertex_as_albedo en true. En un ShaderMaterial, accede a él con la variable COLOR.

Integrado

Descripción

inout vec4 COLOR

El color de las partículas, se puede escribir y acceder a la función de vértice de la malla.

inout vec3 VELOCITY

La velocidad de las partículas, puede ser modificada.

out real MASS

Masa de partículas, usado para los atractores (no implementado en 3.1).

inout booleano ACTIVE

true cuando Particula está activo, puede ser configurado como false.

in booleano RESTART

true cuando la partícula debe reiniciar (ciclo de vida).

inout vec4 CUSTOM

Datos de partículas personalizadas. Accesible desde el shader de malla como INSTANCE_CUSTOM.

inout mat4 TRANSFORM

Transformación de partícula.

in real LIFETIME

La vida de las partículas.

in real DELTA

Tiempo de proceso Delta.

in uint NUMBER

Un número único desde el comienzo de la emisión.

in int INDEX

Índice de partículas (de partículas totales).

in mat4 EMISSION_TRANSFORM

Transformación del emisor (utilizado para sistemas no locales).

in uint RANDOM_SEED

Semillas al azar usadas como base para el azar.