Articulo de referencia

Sistema de partículas

Un sistema de partículas utilizado para simular un incendio, creado en 3dengfx. Sistema de partículas ad hoc utilizado para simular una galaxia, creado en 3dengfx. Un sistema de...

Un sistema de partículas utilizado para simular un incendio, creado en 3dengfx.
Sistema de partículas ad hoc utilizado para simular una galaxia, creado en 3dengfx.
Un sistema de partículas utilizado para simular la explosión de una bomba, creado en particleIllusion.

Un sistema de partículas es una técnica utilizada en la física de los videojuegos , los gráficos en movimiento y los gráficos por computadora que emplea muchos sprites diminutos , modelos 3D u otros objetos gráficos para simular ciertos tipos de fenómenos "difusos", que de otro modo serían muy difíciles de reproducir con las técnicas de renderizado convencionales; generalmente se trata de sistemas altamente caóticos , fenómenos naturales o procesos causados ​​por reacciones químicas.

Introducido en la película de 1982 Star Trek II: La ira de Khan para el ficticio "efecto Génesis", [ 1 ] otros ejemplos incluyen replicar fenómenos como fuego , explosiones , humo , agua en movimiento (como una cascada), chispas , hojas que caen, caída de rocas, nubes , niebla , nieve , polvo , colas de meteoritos , estrellas y galaxias, o efectos visuales abstractos como estelas luminosas, hechizos mágicos , etc. – estos utilizan partículas que se desvanecen rápidamente y luego se reemiten desde la fuente del efecto. Otra técnica se puede utilizar para cosas que contienen muchas hebras – como pelaje, cabello y hierba – que consiste en renderizar la vida útil completa de una partícula a la vez, que luego se puede dibujar y manipular como una sola hebra del material en cuestión.

Los sistemas de partículas se definen como un grupo de puntos en el espacio, guiados por un conjunto de reglas que definen su comportamiento y apariencia. Los sistemas de partículas modelan fenómenos como una nube de partículas, utilizando procesos estocásticos para simplificar la definición de sistemas dinámicos y mecánica de fluidos que son difíciles de representar con transformaciones afines . [ 2 ]

Implementación típica

Simulación dinámica de partículas de aire (Bifröst)

Los sistemas de partículas suelen implementar los siguientes módulos:

  • Una etapa de emisión , que proporciona una ubicación y genera nuevas partículas.
  • Una etapa de simulación que actualiza los parámetros y simula la evolución de las partículas.
  • Una etapa de renderizado , que especifica cómo renderizar una partícula.

Etapa de emisión

Un emisor implementa una tasa de generación (cuántas partículas se generan por unidad de tiempo) y el vector de velocidad inicial de las partículas (la dirección en la que se emiten al crearse). Al usar un objeto de malla como emisor, el vector de velocidad inicial suele configurarse para que sea normal a las caras individuales del objeto, lo que hace que las partículas parezcan "rociar" directamente desde cada cara; sin embargo, esto es opcional.

Etapa de simulación

Durante la fase de simulación , el número de partículas nuevas que deben crearse se calcula en función de las tasas de generación y el intervalo entre actualizaciones, y cada una de ellas se genera en una posición específica en el espacio 3D según la posición del emisor y el área de generación especificada. Cada parámetro de la partícula (velocidad, color, etc.) se inicializa de acuerdo con los parámetros del emisor. En cada actualización, se comprueba si todas las partículas existentes han superado su tiempo de vida útil; en ese caso, se eliminan de la simulación. De lo contrario, la posición y otras características de las partículas se actualizan mediante una simulación física, que puede ser tan simple como trasladar su posición actual o tan compleja como realizar cálculos de trayectoria físicamente precisos que tengan en cuenta las fuerzas externas (gravedad, fricción, viento, etc.). Es común realizar la detección de colisiones entre partículas y objetos 3D específicos en la escena para que las partículas reboten o interactúen con los obstáculos del entorno. Las colisiones entre partículas se utilizan con poca frecuencia, ya que son computacionalmente costosas y no son visualmente relevantes para la mayoría de las simulaciones.

Etapa de renderizado

Una vez completada la actualización, cada partícula se renderiza, generalmente en forma de un cuadrilátero texturizado (es decir , un cuadrilátero que siempre mira hacia el espectador). Sin embargo, esto a veces no es necesario para los juegos; una partícula puede renderizarse como un solo píxel en entornos de baja resolución o con potencia de procesamiento limitada. Por el contrario, en los gráficos en movimiento, las partículas tienden a ser modelos 3D completos, pero de pequeña escala y fáciles de renderizar, para garantizar la fidelidad incluso a alta resolución. Las partículas pueden renderizarse como metabolas en el renderizado fuera de línea; las isosuperficies calculadas a partir de metabolas de partículas crean líquidos bastante convincentes. Finalmente, los objetos de malla 3D pueden "sustituir" a las partículas: una tormenta de nieve podría consistir en una única malla de copo de nieve 3D duplicada y rotada para coincidir con las posiciones de miles o millones de partículas. [ 3 ]

taxonomía de sistemas de partículas

En 1983, Reeves definió únicamente puntos animados, creando simulaciones de partículas en movimiento: chispas, lluvia, fuego, etc. En estas implementaciones, cada fotograma de la animación contiene cada partícula en una posición específica de su ciclo de vida, y cada partícula ocupa una única posición en el espacio. Para efectos como el fuego o el humo que se disipan, a cada partícula se le asigna un tiempo de desvanecimiento o una vida útil fija; en cambio, efectos como las tormentas de nieve o la lluvia suelen finalizar la vida útil de la partícula una vez que sale de un campo de visión determinado . [ 1 ]

En 1985, Reeves extendió el concepto para incluir la representación simultánea del ciclo de vida completo de cada partícula. El resultado transforma las partículas en filamentos estáticos de material que muestran la trayectoria general, en lugar de puntos. Estos filamentos se pueden usar para simular cabello, pelaje, hierba y materiales similares. Los filamentos se pueden controlar con los mismos vectores de velocidad, campos de fuerza, tasas de generación y parámetros de deflexión que las partículas animadas. Además, se puede controlar el grosor de los filamentos y, en algunas implementaciones, variar a lo largo de su longitud. Diferentes combinaciones de parámetros pueden conferir rigidez, flexibilidad, pesadez, aspereza o cualquier otra propiedad. Los filamentos también pueden usar mapeo de texturas para variar su color, longitud u otras propiedades a lo largo de la superficie del emisor. [ 4 ]

En 1987, Reynolds introdujo las nociones de comportamientos de bandada , manada o cardumen . El modelo de boids extendió la simulación de partículas para incluir interacciones de estado externo, incluyendo la búsqueda de objetivos, la evitación de colisiones, el centrado de la bandada y la percepción limitada. [ 5 ]

En 2003, Müller extendió los sistemas de partículas a la fluidodinámica simulando la viscosidad , la presión y la tensión superficial , y luego representó superficies interpolando las posiciones discretas con hidrodinámica de partículas suavizadas . [ 6 ]

Un cubo que emite 5000 partículas animadas, obedeciendo una fuerza "gravitacional" en la dirección negativa del eje Y.
El mismo emisor cúbico renderizado usando partículas estáticas o hebras.

Herramientas de sistemas de partículas fáciles de usar para desarrolladores

El código de los sistemas de partículas que se puede incluir en motores de juegos, sistemas de creación de contenido digital y aplicaciones de efectos se puede escribir desde cero o descargar. Havok ofrece varias API de sistemas de partículas. Su API Havok FX se centra especialmente en los efectos de sistemas de partículas. Ageia , ahora filial de Nvidia , proporciona una API de sistemas de partículas y otras API de física de juegos que se utilizan en muchos juegos, incluidos los de Unreal Engine 3. Tanto GameMaker Studio como Unity ofrecen un sistema de partículas bidimensional que suelen usar desarrolladores de juegos independientes , aficionados o estudiantes, aunque no se puede importar a otros motores. También existen muchas otras soluciones, y los sistemas de partículas se escriben con frecuencia desde cero si se desean efectos o comportamientos no estándar.

Véase también

Referencias

  1. 1 2 Reeves, William (1983). "Sistemas de partículas : una técnica para modelar una clase de objetos difusos" (PDF) . ACM Transactions on Graphics . 2 (2): 91– 108. CiteSeerX 10.1.1.517.4835 . doi : 10.1145/357318.357320 . S2CID 181508. Recuperado el 13 de junio de 2018 .  
  2. Hastings EJ, Guha RK, Stanley KO (2008-12-09). "Evolución interactiva de sistemas de partículas para gráficos y animación por computadora". IEEE Transactions on Evolutionary Computation . 13 (2): 418– 32. CiteSeerX 10.1.1.365.5720 . doi : 10.1109/TEVC.2008.2004261 . S2CID 11390585 .  
  3. Sims K (1990-09-01). "Animación y renderizado de partículas mediante computación paralela de datos" (PDF) . Actas de la 17.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . págs. 405–413 . doi : 10.1145/97879.97923 . ISBN  0897913442. S2CID 2791741 . Consultado el 17-01-2022 . 
  4. Reeves, William T.; Blau, Ricki (julio de 1985). "Algoritmos aproximados y probabilísticos para el sombreado y la representación de sistemas de partículas estructuradas". ACM SIGGRAPH Computer Graphics . 19 (3): 313– 322. doi : 10.1145/325165.325250 .
  5. Reynolds, Craig (1987). «Rebaños, manadas y cardúmenes: Un modelo de comportamiento distribuido». Actas de la 14.ª conferencia anual sobre gráficos por computadora y técnicas interactivas . Association for Computing Machinery . págs. 25–34 . CiteSeerX 10.1.1.103.7187 . doi : 10.1145/37401.37406 . ISBN   978-0-89791-227-3. S2CID 546350 . 
  6. Müller M, Charypar D, Gross M. "Simulación de fluidos basada en partículas para aplicaciones interactivas" (PDF) . Simposio SIGGRAPH sobre animación por computadora . Consultado el 18 de enero de 2022 .
  • La bruma marina en tu cara. — Jeff Lander (Graphic Content, julio de 1998)
  • Construcción de un sistema avanzado de partículas — John van der Burg ( Gamasutra , junio de 2000)
  • Motor de partículas que utiliza tiras triangulares — Jeff Molofee ( NeHe )
  • Diseño de un sistema de partículas extensible mediante C++ y plantillas — Kent Lai (GameDev.net)
  • Repositorio de scripts de partículas 3D públicos en formato LSL Second Life - Ferd Frederix
  • Sistemas de partículas con GPU mediante WebGL : efectos de partículas directamente en el navegador utilizando WebGL para los cálculos.
Obtenido de " https://en.wikipedia.org/w/index.php?title=Particle_system&oldid=1298946642 "