Skyboxes
Casi todo fps que permita caminar en exteriores o que desde algún punto del mapa permita visualizar los exteriores utilizan skyboxes.
Un skybox es simplemente un cubo que posee en sus caras interiores imágenes de paisajes o panoramas. Si la caja es lo suficientemente grande y se encuentra creada correctamente, el jugador, situado en algún punto de su interior, tendrá la sensación de estar rodeado por el paisaje impreso.
Hoy dÃa - además de cubos - se utilizan otro tipo de formas como esferas, semi esferas y dromos; en particular cuando el cielo posee nubes que se mueven o existe un ciclo progresivo dÃa / noche. Sin embargo, la implementación clásica sigue viniendo de la mano de los cubos, es algo sencillo y bien implementado genera el efecto buscado a la perfección. Veamos cuales son los secretos de este gran clásico.
En otros tutoriales veremos como realizar la implementación de skyboxes con cubic enviroment mapping y haciendo uso de otras formas.

Figura 1. El jugador se encuentra inserto dentro de nuestro cubo
Como implementar un skybox
El problema mas común que se presenta en una primera - o simplemente mala - implementación de skybox es falta de realismo, usualmente por distintos factores como la baja calidad de las imágenes utilizadas.
Veamos cuales son los detalles que deberemos cuidar para realizar una implementación decente:
Texturas de buena calidad (profundidad de colores y resolución)
Las texturas del skybox serán vistas en un gran tamaño, por lo tanto si la resolución no es adecuada el jugador podrá ver en ciertos sectores del skybox una cierta pixelación que arruinará el efecto que deseamos crear. Lo mismo aplica a la cantidad de colores utilizados.
Texturas correctamente recortadas
Las texturas deben ser recortadas de modo que se continuen a lo largo de las caras del cubo, es decir que deben estar tileadas.

Figura 2. Las imágenes de las caras deben estar continuadas
La figura anterior muestra sólo las imágenes a frente, izquierda, derecha y parte trasera (faltarÃan la superior e inferior) pero se puede apreciar que todas las imágenes se encuentran continuadas. No hace falta decir la falta de realismo que podrÃa producirse si esto no es asÃ.
Tamaño de la caja
Las imágenes de las caras de nuestro cubo deben generar una sensación de profundidad, de un ambiente más grande que se pierde en el horizonte, pero si el jugador se acerca a los bordes de nuestro skymap la ilusión se rompe.

Figura 3. Si el jugador se acerca mucho a una pared del skybox la ilusión se arruina
Por lo tanto el cubo debe poseer un tamaño adecuado para que el ángulo de incidencia de la visión del jugador con cualquier cara del cubo sea cercano a 90.
Ciertas implementaciones del skybox no alteran la posición del mismo en relación al jugador, por lo tanto el mismo nunca puede acercarse a él. En otros casos el skybox se mueve pero en una relación menor al movimiento del jugador en el mundo. Estas variedades tienen que ver con la ilusión de distancia que se desea crear con respecto al skybox.
Imposiciones de diseño
Este punto va de la mano con el punto anterior y tiene que ver con lo mismo: el mapa debe estar construido de modo que el usuario no pueda acercarse a los bordes del skymap como se puede apreciar en la siguiente figura:

Figura 4. El diseño del mapa debe impedir que el jugador se acerque demasiado a los bordes del skybox.
Una matriz de proyección adecuada
Debido a que el skybox poseerá un tamaño considerable, el plano de recorte lejano de la matriz de proyección debe ser tal que no elimine ninguna arista de nuestra caja desde ninguna posición posible del jugador.
Esto parece un consejo bastante trivial. Sin embargo analizando juegos muy conocidos en ciertas circunstancias este defecto puede ser apreciado, en particular los recortes de las esquinas del cubo.




Estoy siguiendo los articulos. No solo son muy buenos, sino que realmente la pagina esta en movimiento!! No hay que esperar meses por nuevo material… Felicitaciones!
Sobre lo que comentas de los filtros de las texturas, hay otra manera “simple” de poder usar filtros sin que se vean las junturas: consiste en copiar los bordes de una imagen en la siguiente. De forma que copiamos la última columna de pixels de una imagen como la primera de la siguiente, y al reves. Y lo mismo con todas.
Despues se ajustan las coordenadas de los vertices para que estos bordes extras no se vean. Pero el interpolador los usará al dibujar la textura, y el efecto es el mismo que si interpolase con la cara de al lado, por lo que desaparecen las junturas.
Y si, es un poco pesado, pero para estas cosas estan los grafistas, no? xD
Un saludo, y genial la página y los tutos.
Muy buen tutorial!!! gracias!