Rendering de Mapas de Quake 2 – Skybox

Tras un poco de trabajo extra, finalmente implementé soporte para dibujar una aproximación de los cielos del Quake 2.

Algo que me tenía bastante confundido era cómo dibujar los polígonos que tenían mapeada una textura de cielo de la forma en que se veían en el juego. Finalmente, lo que decidí hacer fue simplemente eliminar todos estos polígonos y dibujar una Skybox acorde a las dimensiones de la bounding box del mapa.


Rendering del cielo en base2.bsp.



Hasta donde tengo entendido, esto no se encuentra tan fuera de lo que se realizaba en el juego, ya que cada mapa BSP define un conjunto de texturas a mapear sobre una hipotética Skybox que no se encuentra definida en ningún lado. Esto me lleva a pensar que los polígonos mapeados con textura de cielo, los cuales ahora no se renderizan, son en realidad un artefacto para el algoritmo de determinación de visibilidad y no un instrumento visual.

Para renderizar el cielo desarrollé un nuevo Shader que elimina la porción de traslación de la matriz ModelView, haciendo que el cielo se encuentre “infinitamente” lejano. A nivel de mapeo de texturas, utilicé CLAMP_TO_EDGE para ocultar las aristas de la Skybox. El efecto es bastante sorprendente: incluso sabiendo dónde se ubican las aristas, resulta difícil notar las caras interiores de la Skybox.


Cuarto de exteriores en base1.bsp, renderizado con su cielo.

Cuarto final en base1.bsp. Notar el cielo a través de las ventanas y el techo.


This entry was posted in C++, Computación Gráfica, OpenGL, Programacion, Quake. Bookmark the permalink.

4 Responses to Rendering de Mapas de Quake 2 – Skybox

Comments are closed.