Estoy tratando de lograr el efecto warp que ves en juegos como Geometry Wars .
¿Alguien puede ayudar a explicar lo que está pasando aquí? Siento que el eje z de la cuadrícula es manipulado de alguna manera por el programador, pero ¿hay alguna ecuación matemática conocida para obtener realmente el efecto de deformación correcto?
Editar: para ser más específicos, me refiero a la deformación de la cuadrícula. Cómo se ve todo tirado hacia el eje z negativo y luego rebota.
graphics
graphic-effects
Joey Green
fuente
fuente
Respuestas:
Una implementación de 10 minutos de un sistema de resorte simple (o eso dice en su blog ;)). El sistema puede manejar múltiples deformaciones y otras cosas que distorsionan la red.
Actualizado para agregar algunos detalles menores de adición:
Algunos otros detalles. De una entrevista que solía estar alojada en el sitio web de Bizarre Creations (ese sitio ahora ha desaparecido debido al cierre de la compañía) hubo una pregunta:
P: Una de las nuevas características gráficas más llamativas del juego es el área de juego "grid de gravedad". ¿Cómo hiciste que esto se viera tan genial? ¿Cada objeto en el juego realmente tiene su propia gravedad? La cuadrícula en sí se compone de 60,000 puntos, cada uno ejerciendo una pequeña cantidad de fuerza sobre su vecino. ¡La simulación en sí se encuentra al borde de la estabilidad, que es lo que hace que gire tanto cuando uno de los objetos del juego le da un pequeño empujón! Solo unos pocos tipos de objetos afectan la cuadrícula. Como el sistema de cuadrícula es bastante costoso de calcular, en realidad se ejecuta en el segundo núcleo junto con el sistema de audio (el primer núcleo está dedicado al juego y las partículas, el tercero se usa para reproducir el audio).
fuente
No sé si hay una forma "correcta" de hacerlo, pero es probable que solo sea una transformación lineal estéticamente agradable aplicada con una caída calculada desde la distancia hasta un punto.
Entonces, para cualquier elemento con el que esté trabajando, usted:
Iirc, las guerras de geometría aplicaron eso como una deformación distorsionadora a algunos elementos, mientras que otros elementos como las partículas fueron simplemente afectados por la "fuerza", sin ser distorsionados. Puede aplicar la distorsión en un sombreador de vértices, suponiendo que tenga suficientes vértices para muestrear suavemente el efecto. Alternativamente, podría representar todo lo que necesita afectar a un búfer fuera de la pantalla primero, y luego representar los resultados en un quad bien teselado al que aplica la distorsión, antes de agregar todos los elementos no distorsionados en la parte superior.
En cuanto a la transformación, la escala le dará la apariencia de succión. Si no recuerdo mal, también hubo algunas torsiones, lo que sería una pequeña rotación.
Puede ser más elegante y más elegante con sus cálculos del factor de intensidad para obtener efectos más extravagantes. Podría, por ejemplo, calcular el ángulo (a) de que un elemento es relativo al centro, y factorizar eso. Tome cos (a) y puede hacer ondas radiales en el efecto. Lo que desea hacer es configurar el código de andamiaje necesario y luego ir a la ciudad experimentando con diferentes combinaciones de factores.
fuente