Informe Técnico: Optimización de Cuerpos Rígidos y Persistencia de Inercia en Fluidos
Introducción
El desarrollo de un motor de simulación de materiales a nivel de píxel (Falling Sand Engine) presenta retos únicos cuando se intenta integrar con sistemas de física de cuerpos rígidos tradicionales. Durante la última semana, el enfoque de Proyecto-Q se ha centrado en resolver dos problemas críticos de fidelidad y comportamiento: la pérdida de datos durante la rotación de estructuras sólidas y la falta de realismo cinético en la simulación de líquidos.
I. Resolución de Discontinuidad Espacial en RigidBodies
Uno de los problemas más persistentes en los motores de píxeles híbridos es el "mapeo directo". Al rotar una lista de partículas, el redondeo de coordenadas de flotante a entero genera agujeros (huecos de píxeles vacíos) o superposiciones, lo que compromete la integridad visual y física del objeto.
La Solución: Mapeo Inverso (Backmapping) y Transformación de Espacio Local
En lugar de proyectar cada píxel del objeto hacia el mundo, la solución implementada invierte la lógica de renderizado y colisión. El objeto ahora se trata como un búfer de datos contiguo en su propio espacio local.
Captura de Datos: Al generarse un cuerpo rígido, se crea una matriz densa que almacena los IDs de materiales originales.
Transformación Inversa: Durante el ciclo de simulación, para cada píxel potencial en la pantalla, el motor aplica una rotación inversa para consultar qué valor existía en el búfer original.
Integridad Estructural y Desafíos de Colisión: Este enfoque garantiza una representación "hermética" en cuanto a la conservación de la masa del objeto; los píxeles que conforman el RigidBody ya no se pierden ni se duplican independientemente de la velocidad angular. No obstante, el sistema de colisión externa se encuentra actualmente en fase de refinamiento. Se han detectado bugs de filtración donde partículas de agua y, con menor frecuencia, de arena, logran atravesar la estructura sólida bajo ciertas condiciones de rotación, un comportamiento que está siendo analizado para futuros parches de estabilidad.
II. Implementación de Inercia Hidrodinámica mediante Persistencia de Estado
La simulación de fluidos en motores celulares suele carecer de "peso" visual. Tradicionalmente, una partícula de agua simplemente busca el espacio vacío más cercano hacia abajo o hacia los lados en cada frame, lo que resulta en un movimiento errático y estático.
El Algoritmo de Memoria Direccional
Para dotar al agua de una inercia realista, se ha implementado un sistema donde cada partícula posee una variable de estado que funciona como su "memoria" de dirección.
Sesgo de Flujo: Cuando una partícula de agua comienza a moverse lateralmente, el sistema registra esta dirección. En el siguiente ciclo de actualización, la partícula priorizará continuar en esa misma dirección antes de evaluar otras opciones de movimiento.
Reacción ante Obstáculos: Si la partícula encuentra una colisión frontal, la memoria se invierte o se disipa, provocando que el fluido rebote o cambie de curso hacia el lado opuesto hasta encontrar un nuevo equilibrio o un nuevo obstáculo.
Resultado Estético: Este comportamiento genera flujos mucho más naturales. El agua ya no solo "llena" espacios; ahora parece "correr" y desplazarse con una energía cinética persistente, similar a cómo se comportaría un fluido en la realidad bajo la influencia de la gravedad y el momento.
III. Conclusiones y Próximos Pasos
La integración de estas soluciones marca un hito en la estabilidad estructural de Proyecto-Q, logrando que los cuerpos rígidos mantengan su forma sin degradación de datos. Sin embargo, la implementación ha revelado nuevos desafíos técnicos; específicamente, fallos en la detección de colisiones que permiten la filtración de materiales líquidos y granulares a través de superficies sólidas en rotación.
Si deseas profundizar en la naturaleza técnica de estos bugs, los vectores de error identificados y las posibles rutas de corrección en las que estoy trabajando, puedes consultar el siguiente informe técnico:
Aquí👇
https://dev-indie-proyectoq.blogspot.com/2026/04/error-407-dev-todavia-en-proceso-de.html
El enfoque futuro se centrará en mitigar estas inconsistencias antes de desplazar el desarrollo hacia la generación procedural de masas planetarias a gran escala.
Publicado por NextStep Devs — Documentación Técnica de Proyecto-Q.
0 Comentarios