Aquí sigo, con la siguiente entrega de mi pequeño pasatiempos a.k.a Flexo. Hace un par de días terminé un sistema para poder asignar un objeto a distintos nodos de la escena. Cuando empecé a diseñar el motor, ésta era una de las características que quería incluir, pero no acababa de ver cómo encajarla con el resto del motor sin que quedara muy chapucero. Sin embargo, hace un par de días he vuelto a retomar la idea y ha salido sola.
Una de las mayores ventajas es que se podrán repetir objetos (y sus comportamientos) en lugar de tener que crear muchos objetos iguales. Sin duda, el mayor beneficiado de todo esto será el sistema de partículas porque de esta manera se podrán tener 1000 sistemas de partículas iguales, aunque realmente sea uno solo. De hecho, se puede aplicar rotación a los nodos y parecerá que cada uno es distinto (una de las ventajas de tener el árbol de escena independiente del módulo gráfico).
Después de eso, me puse a programar la ordenación de las colas de render según el tipo de blending y demás. Todo parecía funcionar, y los objetos transparentes se dibujaban en orden. Sin embargo, al probar un poco más a fondo y MOVERME por la escena, el suelo (el único objeto sólido) desaparecía. Era algo rarísimo, aparecía momentáneamente, como si la ordenación no surtiera efecto, pero no era la ordenación porque desaparecía por completo.
Tras tirarme un buen rato (pongamos hora y pico) haciendo trazas para ver que todo tenía los valores correctos, me puse a bucear por los foros de Gamedev a ver si encontraba una solución. En un post, recomendaban activar la escritura al z-buffer al final de todo.
Yo lo activaba al comienzo de la siguiente pasada, así que no creí que afectara en nada. Sin embargo lo probé, y funciona perfectamente. Por alguna razón, a OpenGL le gusta que esté activada la escritura cuando terminas de renderizar objetos, aunque no sé explicar porqué. Si alguien sabe algo del tema que lo comente, porque realmente me pica la curiosidad.
Esperemos que Lobo me conteste mañana y podamos quedar para que me firme el anteproyecto…
- Todas las frases que contienen la palabra Flex…
- Sistemas de partículas en la GPU
- Próxima 'release' de SDE
- Curso de motores (III)
- Melt: Conceptos básicos



