Diferencia entre revisiones de «UNITY Materiales»
Ir a la navegación
Ir a la búsqueda
| Línea 59: | Línea 59: | ||
</gallery> | </gallery> | ||
| + | |||
| + | |||
| + | * La propiedad Albedo también tiene una propiedad '''color''' que: | ||
| + | :* Si tenemos una textura asociada, lo que va a hacer es 'tintarla' del color elegido. | ||
| + | :* Si no tenemos una textura asociada, coloreará el Mesh del color elegido. | ||
| + | <gallery caption="Propiedad Color en Albero" widths="350" heights="300px" perrow="2"> | ||
| + | Image:Unity3d_materials_7.jpg| Con una textura asociada, la tinta. | ||
| + | Image:Unity3d_materials_8.jpg| Sin una textura asociada, lo colorea. | ||
| + | </gallery> | ||
<br /> | <br /> | ||
| + | |||
==Normal Map== | ==Normal Map== | ||
Revisión del 10:57 2 nov 2018
Sumario
Introducción
- Mas información en este enlace.
- Los materiales van a estar asociados a figuras 3D.
- Los materiales van a:
- Guardar la textura asociada a el material creado, que después será aplicado a un Mesh (objecto 3D). Esta sería la textura sin ningún tipo de fuente de luz aplicada al material.
- Guardar la información necesaria para determinar como una fuente de luz va a reflejarse sobre el Mesh (son los Normal Vector, lo veremos después).
- Características del material que hacen que la luz se refleje de forma diferente (haciendo que el material adapte características como transparencia, metálico,...)
- Pensemos en el mundo real.
- Un objeto metálico refleja la luz de forma diferentes a un trozo de madera.
- Un cristal permite ver lo que está a través de él...
- Todas estas características físicas son modelizadas haciendo uso de materiales.
- Un aspecto importante a tener en cuenta cuando trabajamos con materiales es la luz que se va a aplicar sobre el material.
- El material debe 'reaccionar' a la iluminación de una forma adecuada. Por ejemplo, un material metálico debe de dar esa apariencia cuando la luz lo ilumine.
- La luz debe de estar configurada para mostrar los materiales de la forma mas fidedigna posible. La configuración de la luz sobre el material está determinada por una serie de parámetros que veremos a continuación.
Creando un material
- Creando un material
- Vimos anteriormente en esta Wiki cómo podíamos asociar una textura a un modelo 3D.
- Comenté que para hacerlo solo teníamos que arrastrar la textura al modelo y que aparecía una propiedad denominada Shader en la que se guardaba la imagen de la textura.
- Realmente lo que hacemos con esa operación es crear un material en el que guardamos la textura que va a visualizar el modelo 3D.
Propiedad Albedo
- Guarda la información de color del objeto 3D sin aplicar ningún efecto de luz al mismo.
- Traducido, guarda la textura que va a visualizar el modelo 3D sin aplicar ningún efecto que haga que el material se comporte de forma diferente al aplicar una luz sobre él.
- Nota:
- Recordar que estamos usando una luz de 'tipo ambiental' sobre nuestro proyecto.
- Ahora vamos a hacer uso de una textura previamente descargada en un ejemplo anterior de la Wiki.
- Vamos a cambiar la propiedad Albero y asociarle una de las texturas que disponemos:
- Propiedad Albero
- La propiedad Albedo también tiene una propiedad color que:
- Si tenemos una textura asociada, lo que va a hacer es 'tintarla' del color elegido.
- Si no tenemos una textura asociada, coloreará el Mesh del color elegido.
- Propiedad Color en Albero
Normal Map
- Alguna de las imágenes de esta sección han sido obtenidas del manual de Unity.
- Este mapa representa la forma en como los rayos de luz se reflejan sobre la superficie de un objeto.
- Si no disponemos de él, Unity hará uso del Mesh empleado para el diseño del objeto3D y hará que la luz se refleje siguiendo dicho modelo:
- Normal Map aplicado a un cilindro
- Estaréis pensando: Vale, ¿ pero en qué me influye a mi el reflejo de la luz sobre una figura 3D ? ¿ Cual puede ser la aplicación práctica ?
- Imagináis que tenéis un muro hecho con piedras.
- La figura 3D que representa el muro es plana, como un cubo alargado o cualquier otra combinación de figuras 3D que podemos tener en un programa de diseño 3D.
- Si aplicamos sobre dicha figura una textura de piedras, tendremos algo parecido a esto:
- Como podemos apreciar, las piedras aparecen 'planas' sobre la superficie.
- Esto es así ya que el modelo 3D no 'incorpora' este tipo de detalle. Hacerlo supondría tener que dibujar muchos más triángulos con el consiguiente coste de CPU-Memoria.
- Gracias a los 'Normal Map' podemos 'simular' que las piedras realmente tienen un volumen 3D, como en la siguiente imagen:
- Otro efecto que podemos conseguir haciendo uso de los Normal Map es el de incluir formas sobre una superficie, sin necesidad de modelizarlas en el modelo 3D.
- Veamos un ejemplo:
- Normal Map con formas aplicado a un cilindro
- Debemos de tener claro que esas formas no existen realmente no existen en el modelo. Lo que hace Unity es aplicar una fuente de luz sobre el objeto 3D y los rayos reflejados sobre la superficie del Normal Map hacen que parezca que esas formas existen. Si nos acercáramos mucho al modelo veríamos que realmente no existen en el 3D.
- Nota:Lo que se hace normalmente es tener un modelo 3D con un nivel de detalle altísimo sobre el que se extrae el 'Normal Map'.
- Después se realiza otro modelo más sencillo (sin tanto nivel de detalle) y sobre dicho modelo se aplica el 'Normal Map' extraído del paso anterior.
- 'Normal Map' es un tipo de Bump Maps, el cual es una técnica de programación para dar un aspecto rugoso a superficies.
- Dentro de Bump Maps tenemos dos tipos de mapas:
- Normal Maps , el cual es el visto hasta ahora. Cada pixel de esta textura indica la dirección que tiene que seguir la luz cuando se refleja sobre su superficie.
- Hieght Maps, guarda la misma información que el anterior pero de forma diferente. En este tipo de mapa se usa una textura en blanco y negro, la cual indica la elevación que tiene que tener cada pixel en la textura.
- Podéis descargar ejemplos de texturas junto con su 'normal map' desde https://3dtextures.me/
Ejemplo de uso
- Descargar la textura y el normal map de este sitio web.
- Modelo realizado por João Paulo.
- Aplicando un Normal Map
Creando un Normal Map
- Vamos a ver un ejemplo haciendo uso del programa GIMP.
- Para poder crear un Normal Map debemos descargarnos un 'plugin' para Gimp deste este enlace.
- Instalando el plugin NormalMap para Gimp
- Existen en Internet multitud de páginas que muestran como crear un Normal Map en Gimp.
- Un ejemplo es este vídeo.
- Instrucciones concretas de cómo crear un Normal Map en este enlace.
- Recursos a descargar:
- El archivo de textura de madera desde: https://3dtextures.me/2018/04/27/old-wood-001/.
- Solo descargar la textura. El enlace del mismo es https://meocloud.pt/link/985fb169-076e-4842-adc3-a30a32948ccd/Old_Wood_001_SD/.
- La imagen que vamos a emplear para crear el Normal Map. Es una imagen creada con GIMP, podéis crear una propia personalizada: Media:Unity3D_normalmap_ej_1.png
- Lo que vamos a obtener será lo siguiente:
- Creando un Normal Map propio
Como se comenta en este enlace es necesario realizar un ajuste antes de guardar el Normal Map. Debemos ir a la sección de canales y desmarcar el canal azul (no aparece el texto).
-- Ángel D. Fernández González -- (2018).