🎮 UnityDocs

VFX Graph: efectos masivos por GPU

El sistema de efectos de gama alta de Unity: simula millones de partículas en la GPU con un grafo de nodos. Qué lo diferencia del Particle System, sus bloques (Spawn, Initialize, Update, Output) y cuándo usarlo.

📄 ArtículoAvanzado✅ RevisadoUnity 6.0 LTSActualizado 2026-07-15
DificultadConceptual Código Matemáticas
Tiempo📖 Lectura 7 min · ⌨️ Práctica 30 min

Cuándo pasar del Particle System al VFX Graph#

Ya conoces el Particle System, que simula partículas en la CPU y sirve para la mayoría de efectos. Cuando necesitas cantidades enormes (humo denso, tormentas, magia espectacular, millones de partículas) o efectos que reaccionan a texturas y a la escena, das el salto al VFX Graph, que simula en la GPU.

⚖️ Comparativa · Particle System vs VFX Graph
Particle System (CPU)VFX Graph (GPU)
CantidadMilesMillones
Se edita conMódulos en el InspectorGrafo de nodos
RequiereNada (siempre disponible)URP/HDRP + paquete
Interacción con la escenaLimitadaRica (colisiones por buffer de profundidad, etc.)
CurvaSuaveMás empinada
Ideal paraLa mayoría de efectosEfectos masivos/AAA
Requiere URP o HDRP

El VFX Graph no funciona con el pipeline Built-in: necesita URP o HDRP (ver Introducción a URP) y su paquete, instalable desde el Package Manager. Crea uno con Assets → Create → Visual Effects → Visual Effect Graph.

Cómo está organizado el grafo#

Un VFX Graph se lee de arriba abajo, por contextos (bloques grandes):

ContextoQué controla
SpawnCuántas partículas nacen y a qué ritmo (constante, ráfagas)
InitializeEstado inicial de cada partícula (posición, velocidad, vida, color, tamaño)
UpdateQué les pasa cada frame (fuerzas, turbulencia, colisiones, envejecer)
OutputCómo se dibujan (quad, mesh, con qué material/textura)

Dentro de cada contexto añades bloques (Add Velocity, Set Color over Life, Collide with Depth Buffer...) y conectas propiedades que puedes exponer para editarlas por instancia o por código.

Controlarlo desde código#

Expones propiedades en el grafo (Blackboard) y las cambias con el componente VisualEffect:

C#
using UnityEngine;
using UnityEngine.VFX;

public class ControlVFX : MonoBehaviour
{
    [SerializeField] private VisualEffect efecto;

    public void Explosion(float intensidad)
    {
        efecto.SetFloat("Intensidad", intensidad);   // propiedad expuesta en el grafo
        efecto.SendEvent("OnExplosion");              // dispara un evento del grafo
    }
}

SendEvent es la forma de "lanzar" ráfagas puntuales (un impacto, una explosión) desde el juego.

Qué lo hace tan potente#

Simulación en la GPU = escala brutal

Como cada partícula se calcula en la GPU (miles de núcleos en paralelo), el VFX Graph maneja cantidades imposibles para la CPU. Además puede leer texturas, mallas y hasta el buffer de profundidad de la escena para que las partículas colisionen con el mundo sin física de CPU. Por eso es la herramienta de humo, fuego, fluidos y magia de gama alta.

Cuándo NO usarlo#

🧭 ¿Qué debería usar?
  • ¿Efecto normal de juego (chispas, impacto, polvo, un poco de humo)? → Particle System, más simple y va en cualquier plataforma
  • ¿Millones de partículas, tormentas, fluidos, magia espectacular? → VFX Graph
  • ¿Móvil de gama baja? → cuidado: el VFX Graph exige GPU; prueba en el dispositivo
  • ¿Proyecto en Built-in? → no está disponible; usa Particle System

Errores frecuentes#

  • Intentar usarlo en el pipeline Built-in (necesita URP/HDRP).
  • Elegir VFX Graph para un efecto sencillo donde el Particle System sobra.
  • No probar en el dispositivo objetivo (móvil): la carga de GPU puede ser alta.
  • Olvidar exponer las propiedades que quieres controlar por código.

Ponte a prueba#

📝 Pon a prueba lo aprendido

Resumen#

El VFX Graph simula efectos en la GPU con un grafo de nodos organizado en contextos (Spawn → Initialize → Update → Output), permitiendo millones de partículas y colisiones con la escena. Requiere URP/HDRP y su paquete. Contrólalo con VisualEffect.SetFloat/SendEvent. Úsalo para efectos masivos y espectaculares; para lo normal, el Particle System es más simple y multiplataforma. A menudo se combina con Shader Graph para el aspecto de cada partícula.

Fuentes y para profundizar