Introducción – ¿Qué es el Skybox en Unity?
El Skybox es como una imagen que rodea completamente una escena en Unity y permanece fija sin importar que tanto intentemos acercarnos. El propósito del Skybox es representar el horizonte lejano de la escena y es posible elegir una textura para hacerlo.
En este artículo veremos cómo cambiar el Skybox que viene por defecto en Unity. Esto nos permitirá personalizar el cielo de la escena para nuestro juego.
En el siguiente vídeo muestro cómo reemplazar el cielo por defecto de Unity
Primer paso – Conseguir textura HDR para el Skybox
Para modificar el Skybox de la escena necesitaremos texturas especiales, una de las que se puede usar son las texturas HDR (High Dynamic Range), son texturas que tienen más información que las que comúnmente utilizamos y son útiles para iluminar escenas, ya que se puede incrementar o disminuir su intensidad y la textura responde apropiadamente.
Suelo descargar texturas de la página HDRI Haven, tienen una galería bastante interesenta con este tipo de imágenes, las descargas son gratuitas y además se puede elegir entre calidades que van desde 1K a texturas 8K, como se puede ver en la figura 2.
HDRI Haven
Pasos para cambiar el Skybox del cielo en Unity
Antes de mostrar el proceso completo voy a poner una lista de pasos para resumir el proceso, si ya tienes experiencia con Unity puede que te resulte útil.
1. Importar la textura HDR en Unity y en el inspector configurar su parámetro «Texture Shape» como «Cube».
2. Crear un material nuevo y configurar el tipo de Shader como Skybox > Cubemap.
3. Asignar la textura HDR al campo «Cubemap HDR» de nuestro material. Con esto ya tenemos preparado el Skybox para cambiarlo por el que viene por defecto.
4. Ir a la ventana Window > Rendering > Lighting, sección Environment y en el campo Skybox, seleccionar el material que hemos configurado en el paso anterior.
5. (Opcional) En caso de la textura no tenga buena calidad, modificar el formato de compresión o descargar una textura de mayor resolución.
Procedimiento detallado para cambiar el Skybox del cielo en Unity
Una vez que importamos la textura HDR en Unity vamos a crear un nuevo material, en la carpeta Assets, clic derecho, crear y luego seleccionamos material.
Le ponemos un nombre y luego lo seleccionamos para ver sus propiedades en el inspector.
En la cabecera del inspector, ubicamos el campo «Shader» que por defecto se encuentra configurado en «Standard» y lo cambiamos por el Shader tipo «Skybox > Cubemap», como se observa en las figuras 5 y 6.
Ahora el inspector para este material se va a ver mostrar con otros parámetros que antes, como vemos en la figura 7.
En principio nos interesa asignar nuestra textura HDR al campo «Cubemap HDR» pero primero tenemos que hacerle algunos ajustes a la imagen. Seleccionamos la textura HDR que hemos importado.
El campo «Texture Shape» lo cambiamos a Cube y aplicamos los cambios
Esto nos permitirá usar la textura para el material Skybox, podemos arrastrar la textura directamente al campo o pulsar el botón «Select» y seleccionarla en la ventana emergente.
Si todo sale correctamente, deberías ver un resultado como el de la figura 13.
Ahora que tenemos el material Skybox configurado, vamos a aplicarlo a la escena. Para eso tenemos que abrir la pestaña «Lighting», en la figura 14 se ve dónde se encuentra esa ventana si no la tienes abierta.
Dentro de la ventana Lighting vamos a la sección «Environment» y en el primer campo llamado «Skybox Material» asignamos el material Skybox que hemos configurado anteriormente.
En la figura 17 se ve el primer resultado de hacer esto, la textura no se ve del todo bien debido al tipo de compresión.
Podemos seleccionarla y en el inspector cambiar la compresión a «RGB 16», «RGB 24» o «RGBA 32», esto traerá un aumento en la calidad pero también en el peso de la imagen. Se puede probar descargar distintas calidades de textura HDR y probar distintos formatos para encontrar un balance entre calidad y rendimiento.
En la figura 19 vemos el resultado final al que he llegado. Ahora que hemos cambiado el nuevo Skybox en la escena, podremos hacer Bakes de iluminación para conseguir mejores resultados.