Diferencia entre revisiones de «Unity SkyBox»

De MediaWiki
Ir a la navegación Ir a la búsqueda
Línea 45: Línea 45:
 
* El proceso sería el siguiente:
 
* El proceso sería el siguiente:
 
<gallery caption="Creando un SkyBox con una textura 360 grados descargada de Internet" widths="350" heights="300px" perrow="2">
 
<gallery caption="Creando un SkyBox con una textura 360 grados descargada de Internet" widths="350" heights="300px" perrow="2">
Image:Unity3d_escala_3.jpg| Escogemos la opción '''Escala''' de la '''Barra de herramientas'''.
+
Image:Unity3d_skybox_7.jpg| Arrastramos la imagen que queremos que conforme el cielo.
Image:Unity3d_escala_4.jpg| Presionamos con el botón izquierdo del ratón uno de los ejes (el que queramos modificar la escala) y sin soltar, movemos el ratón. Podemos observar como el valor en la ventana Inspector se modifica.
+
Image:Unity3d_skybox_8.jpg| En las propiedades de la textura escogemos Texture Shape: Cube.
 +
Image:Unity3d_skybox_9.jpg| En el Mapping debería valer dejar Auto. Si no funcionara correctamente escogeríamos la opción indicada.
 +
Image:Unity3d_skybox_10.jpg| Creamos un nuevo material.
 +
Image:Unity3d_skybox_11.jpg| 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'.
 +
Image:Unity3d_skybox_12.jpg| Seleccionado el material creado, arrastramos la textura a su CubeMap HDR.
 +
Image:Unity3d_skybox_13.jpg| Solo queda cambiar el skymap por defecto por el nuevo (el material creado). Para ello escogemos la opción de menú Window => Lighting => Settings.
 +
Image:Unity3d_skybox_14.jpg| Arrastramos el material creado a la propiedad SkyBox Material o lo seleccionamos presionando la rueda dentada.
 +
Image:Unity3d_skybox_15.jpg| Podemos ver el efecto del nuevo cielo.
 
</gallery>
 
</gallery>
  
Línea 53: Línea 60:
  
 
<br />
 
<br />
 +
 
=Descargando SkyBox desde el Asset Store=
 
=Descargando SkyBox desde el Asset Store=
  

Revisión del 13:50 5 ene 2019

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:
Unity3d skybox 3.jpg


  • 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.
Unity3d skybox 4.jpg
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):
Unity3d skybox 5.jpg





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º.
Unity3d skybox 6.jpg


  • El proceso sería el siguiente:




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

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:
Unity3d skybox 23.jpg
Dichos archivos son utilizados por el material que va a conformar el skybox:
Unity3d skybox 24.jpg


  • 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)
Unity3d skybox 25.jpg
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).