Attention: Here be dragons

This is the latest (unstable) version of this documentation, which may document features not available in or compatible with released stable versions of Godot.

Creación de un sistema de partículas 3D

../../../_images/particle_node_new.webp

Propiedades de los nodos de partículas requeridas

Para empezar con las partículas, lo primero que debemos hacer es añadir un nodo GPUParticles3D a la escena. Antes de que podamos ver realmente alguna partícula, tenemos que configurar dos parámetros en el nodo: el Process Material y al menos un Draw Pass.

The process material

To add a process material to your particles node, go to Process Material in the inspector panel. Click on the box next to Process Material and from the dropdown menu select New ParticleProcessMaterial.

../../../_images/particle_new_process_material.webp

Creating a process material

La clase ParticleProcessMaterial es un tipo especial de material. No lo usamos para dibujar objetos, sino para actualizar los datos y el comportamiento de las partículas en la GPU en lugar de la CPU, lo que conlleva una mejora masiva de rendimiento. Al hacer clic en el material recién añadido, se muestra una larga lista de propiedades que puedes configurar para controlar el comportamiento de cada partícula.

Draw passes

../../../_images/particle_first_draw_pass.webp

Se requiere al menos un «draw pass» (pase de dibujo)

Para poder renderizar cualquier partícula, es necesario definir al menos un «draw pass». Para hacerlo, ve a Draw Passes en el panel del inspector. Haz clic en la casilla junto a Pass 1 y selecciona New QuadMesh en el menú desplegable. Después de eso, haz clic en la malla y establece su Size en 0.1 tanto para x como para y. Reducir el tamaño de la malla hace que sea un poco más fácil distinguir las mallas de las partículas individuales en esta etapa.

Puedes usar hasta 4 «draw passes» por sistema de partículas. Cada pase puede renderizar una malla diferente con su propio material único. Todos los «draw passes» utilizan los datos calculados por el «process material», lo cual es un método eficiente para componer efectos complejos: calcular el comportamiento de las partículas una vez y enviarlo a múltiples pases de renderizado.

../../../_images/particle_two_draw_passes.webp

Uso de múltiples «draw passes»: rectángulos amarillos (pase 1) y esferas azules (pase 2)

Si has seguido los pasos anteriores, tu sistema de partículas debería estar emitiendo partículas en forma de cascada, haciendo que se muevan hacia abajo y desaparezcan tras unos segundos. Este es el fundamento de todos los efectos de partículas. Echa un vistazo a la documentación de las propiedades de las «partículas» particle y del «material de proceso» particle material para aprender a hacer que los efectos de partículas sean más interesantes.

../../../_images/particle_basic_system.webp

Conversión de partículas

../../../_images/particle_convert_cpu.webp

Convertir partículas de GPU en partículas de CPU

Puedes convertir partículas de GPU en partículas de CPU en cualquier momento usando la entrada en el menú del «viewport». Cuando lo hagas, ten en cuenta que no todas las funciones de las partículas de GPU están disponibles para las partículas de CPU, por lo que el sistema de partículas resultante se verá y se comportará de forma diferente al original.

También puedes convertir partículas de CPU en partículas de GPU si ya no necesitas usar las de CPU. Esto también se hace desde el menú del «viewport».

Algunas de las características más notables que se pierden durante la conversión incluyen:

  • múltiples pasadas de dibujado

  • turbulencia

  • sub-emisores

  • estelas (trails)

  • attractors

  • collision

También se pierden las siguientes propiedades:

  • Relación de cantidad

  • Interp to End

  • Damping as Friction

  • Emission Shape Offset

  • Emission Shape Scale

  • Inherit Velocity Ratio

  • Velocity Pivot

  • Velocidad direccional

  • Velocidad radial

  • Velocity Limit

  • Scale Over Velocity

La conversión de partículas de GPU a partículas de CPU puede ser necesaria cuando quieres lanzar un juego en dispositivos antiguos que no son compatibles con las API gráficas modernas.