Diferencia entre revisiones de «Unity SkyBox»
Ir a la navegación
Ir a la búsqueda
| (No se muestran 2 ediciones intermedias del mismo usuario) | |||
| Línea 3: | Línea 3: | ||
* 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. | * 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 <u>formado por 6 texturas</u> las cuales se encuentran 'conectadas' unas con otras formando el 'cielo' y el 'suelo'. | : Internamente está implementado haciendo uso de un Cubo <u>formado por 6 texturas</u> las cuales se encuentran 'conectadas' unas con otras formando el 'cielo' y el 'suelo'. | ||
| − | : Representan | + | : Representan el horizonte en 6 direcciones visibles (arriba, abajo, derecha, izquierda, adelante y atrás) |
| Línea 10: | Línea 10: | ||
| − | * En cualquier momento podemos 'eliminar' el skybox si accedemos a las propiedades de la cámara y cambiamos su propiedad '''Clear Flags''': | + | * Para cambiar un SkyBox por otro descargado o hecho por nosotros podemos hacerlo de dos formas: |
| + | <gallery caption="Cambiando el SkyBox" widths="350" heights="300px" perrow="2"> | ||
| + | Image:Unity3d_luces_9.jpg| '''Opción a)''' Seleccionamos uno de los SkyBoxes descargados. Arrastramos dicho SkyBox a una zona de la 'View Scene' donde se vea el SkyBox por defecto. | ||
| + | Image:Unity3d_luces_11.jpg| '''Opción b)''' Escogemos la opción de menú '''Window => Rendering => Lighting Settings''' y aparece una ventana en la que podemos cambiar la opción Source por el SkyBox que queramos. El SkyBox por defecto se llama 'Default-SkyBox'. | ||
| + | </gallery> | ||
| + | |||
| + | |||
| + | |||
| + | |||
| + | * Relacionado con el SkyBox se encuentra la cámara que es la que lo va a visualizar. | ||
| + | : 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. | : 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. | : 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. | ||
| Línea 45: | Línea 55: | ||
* 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: | + | Image:Unity3d_skybox_7.jpg| Arrastramos la imagen que queremos que conforme el cielo. |
| − | Image: | + | 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 70: | ||
<br /> | <br /> | ||
| + | |||
=Descargando SkyBox desde el Asset Store= | =Descargando SkyBox desde el Asset Store= | ||
| Línea 104: | Línea 122: | ||
| + | <br /> | ||
| + | '''[https://wiki.cifprodolfoucha.es/index.php?title=Programacion_de_videojuegos_con_UNITY3D#UNIDAD_3:_Creando_videojuego_3D Enlace a la página principal del curso]''' | ||
| + | <br /> | ||
Revisión actual del 15:17 19 abr 2020
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 el horizonte en 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:
- Para cambiar un SkyBox por otro descargado o hecho por nosotros podemos hacerlo de dos formas:
- Cambiando el SkyBox
- Relacionado con el SkyBox se encuentra la cámara que es la que lo va a visualizar.
- 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:
- Creando un SkyBox con una textura 360 grados descargada de Internet
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.
- Descargando skybox desde el Asset Store
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.
Enlace a la página principal del curso
-- Ángel D. Fernández González -- (2018).