Unity SkyBox
Sumario
Introducción
- Un SkyBox es una textura panorámica que se dibuja detrás de todos los objetos de la escena y representa el cielo que rodea al juego.
- Internamente está implementado haciendo uso de un Cubo formado por 6 texturas las cuales se encuentran 'conectadas' unas con otras formando el 'cielo' y el 'suelo'.
- Representan los 6 direcciones visibles (arriba, abajo, derecha, izquierda, adelante y atrás)
- Unity incorpora un SkyBox por defecto que es el que aparece cuando ejecutamos un juego por defecto:
- En cualquier momento podemos 'eliminar' el skybox si accedemos a las propiedades de la cámara y cambiamos su propiedad Clear Flags:
- Este parámetro indica qué queremos que dibuje la cámara cuando limpie toda la pantalla.
- Recordar que lo que se hace para realizar una animación es borrar continuamente (en cada frame) la pantalla y se vuelve a dibujar toda las escena.
- Los valores que normalmente se utilizan son:
- SkyBox: Para dibujar una textura que tenga el efecto de un cielo.
- Solid Color: Se dibujo un único color de fondo. En el caso de escoger esta opción tendremos que elegir el color que queremos que se dibuje.
- Depth Only: Deje dibujado lo que se haya dibujado en el frame anterior.
- Don´t Clear: No borra el contenido de la pantalla.
- En la siguiente imagen se puede comprobar como al mover el cubo desde la ventana de Game, este deja un rastro ya que la cámara no está limpiando el buffer donde dibuja la escena (tiene puesta la opción Depth Only):
Creando nuestro SkyBox
- La forma más sencilla es descargar desde el propio Asset Store de Unity ejemplos de SkyBox ya realizados.
- Si no encontramos ninguno que nos interese, podemos buscar por Google textures sky 360 download, por ejemplo.
- Entre los resultados, aparece este: https://www.sketchuptexture.com/2013/02/panoramic-ski-360.html (por ejemplo)
- Si descargamos el rar y lo descomprimimos tendremos imágenes jpg con fondos de 360º.
- El proceso sería el siguiente:
En las propiedades del material elegimos CubeMap. Fijarse que si disponemos de las 6 texturas que conforman el cielo debemos elegir la primera opción (6 sides). También podríamos elegir en este ejemplo, la opción Panoramic, pero en este caso, tendríamos que poner como Texture Shape de la textura, '2D'.
Descargando SkyBox desde el Asset Store
- Si buscamos en el asset store por Sky Textures encontraremos múltiples texturas para ser empleadas como skybox.
Trabajando con imágenes HDR
- Los archivos HDR son imágenes de alto rango dinámico (High Dynamic Range).
- De forma simplificado podemos indicar que este tipo de imágenes dan un mayor realismo a la escena.
- En un renderizado 'normal', Unity asocia a cada pixel un valor entre 0..1 indicando el grado de intensidad del pixel, siendo 0 sin intensidad y 1 intensidad máxima.
- Con las imágenes HDR, el grado de intensidad no está limitado a este rango, permitiendo renderizar de forma más realista como el ojo humano interpreta las condiciones de luz sobre los objetos en situaciones de oscuridad
- Cuando importamos del Assets Store las texturas/materiales que conformaban el cielo también seleccionamos los archivos HDR:
- Dichos archivos son utilizados por el material que va a conformar el skybox:
- Fijarse que podríamos crear nuestro propio SkyBox a partir de los que tenemos.
- Creamos un nuevo material de tipo Skybox/6 sides y arrastramos a cada cuadro la imagen correspondiente (Up = top y Down = Bottom)
- Podemos ver en la imagen como hemos creado un nuevo material de nombre SkyBoxPropio y del tipo Skybox/6 sides.
- Para arrastrar las imágenes hdr a cada uno de los lados, he puesto el candado a las propiedades del material. De esta forma puedo ir a la carpeta de las imágenes HDR y seleccionar cualquiera de ellas para arrastrarlas sin que me cambie las propiedades de la ventana Inspector.
- El efecto es el que se ve en la ventana Scene.
-- Ángel D. Fernández González -- (2018).