Estoy diseñando mi propio motor de sistema de partículas, esto es para fines de aprendizaje, realmente no quiero usar un motor existente.Diseño de sistema de partículas?
Ahora mismo he generado partículas hermosas, pero quiero diseñar el motor para que sea más fácil trabajar con ellas.
He estado pensando en un "sistema de partículas" Clase,
esa clase contendría las siguientes referencias:
particlesList: Una lista de las partículas que componen el sistema.
systemEmitter: El emisor sistema para las partículas, la clase del emisor debe ser capaz de realizar varias técnicas de emisión de partículas, como por ejemplo, emitiendo a partir de líneas, puntos, emitiendo al azar de un polígono. También esta clase debería hacer control de emisiones, como emitir hacia un punto, lejos de un punto, en una dirección y hora para emitir.
particleController: administra por ejemplo la rotación alrededor de un punto, los tamaños de partícula variables, colores de partículas variables, zonas de todo el sistema al que las partículas reaccionan de diferentes maneras, de detección de colisión (con otros objetos o dentro de las partículas si se convierte en NECESARIO)
partículas Procesador: A cargo de la elaboración de este sistema, tipos de variables de fusión, texturas de partículas, tipos de partículas como triángulos, círculos, a medida ...
Este cuatro elementos, sería componer la Clase sistema de partículas. Algunos FX pueden requerir más de un sistema de partículas, por ejemplo un Fire FX, podría usar un sistema para el fuego, un sistema para el humo y un sistema para las chispas.
Esto es lo que tengo en mente, pero me encantaría saber si este enfoque de diseño es bueno, o si ve que me falta algo o podría/debería hacer algo diferente. No he pensado en una forma fácil de "guardar" el FX, como por ejemplo, cuál sería la mejor manera de decirle a mi motor, "dibujar fuego", "dibujar explosión", "dibujar una fuente", etc., tal vez almacenando información de FX en los archivos xml sería una buena idea, etc.
Las opiniones son realmente bienvenidas, y como dije antes, realmente quiero construir esto, en lugar de usar otro motor, por razones de aprendizaje.
Gracias por su respuesta! Sí, estoy pensando en hacer esto con OpenGL. Además, la idea de interpolación no lineal es realmente buena, y debería ser capaz de crear visuales bastante buenos con ella. – Goles