Documente Academic
Documente Profesional
Documente Cultură
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 1
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Haz clic en el botn Import, abajo a la derecha, para que comience la carga de recursos en el
proyecto.
Observa que el paquete que acabamos de importar es uno de los que vienen por defecto con Unity, habrs
comprobado que en la lista de paquetes para importar haba muchos ms. Si quieres conocerlos todos no
dudes en tomarte un tiempo en importarlos uno a uno y examinar su contenido al finalizar este tutorial.
Ahora vamos a acceder al men de configuracin del
render para hacer uso de las cajas de cielo:
Asegrate de tener el Layout de visualizacin en
modo 2 by3 (Botn superior derecho de la interfaz
de Unity). Entonces, en las pestaas superiores haz
clic en Edit Render Settings. Vers que la Vista
de Inspector ahora muestra un breve men como
el de la captura.
Pg. 2
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Un problema frecuente del men Render Settings es que deja de ser visible en la Vista de Inspector en el
momento que seleccionemos un objeto de la escena o del proyecto, o tambin cuando hagamos clic en una
zona vaca y cancelemos la seleccin.
Aunque podemos volver a abrirlo de la misma forma siempre que queramos, vamos a utilizar una sencilla
opcin para evitar que el men Render Settings se nos oculte accidentalmente.
Con el men Render Settings visible en la Vista de Inspector, observa que en su esquina superior
derecha hay un pequeo icono con forma de candado. Haz clic sobre l para cerrarlo y as anclar el
men en la Vista de Inspector, no desaparecer hasta que vuelvas a hacer clic sobre el candado.
Una vez tomada esta precaucin, vamos a comenzar asignando el material de la caja de cielo (Skybox
Material).
En el men Render Settings, haz clic en el pequeo icono en forma de disco que hay a la derecha del
campo Skybox Material, se abrir una nueva ventana con todos los recursos de materiales cargados
en nuestro proyecto.
Pg. 3
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Observa que la ventana anterior muestra todos los recursos de materiales cargados en nuestro proyecto y
no slo los de las cajas de cielo que acabamos de cargar. Un truco sencillo para que nos muestre solamente
las cajas de cielo es el siguiente:
En la barra de bsqueda en la parte superior de la ventana de materiales, escribe la palabra sky
(Cielo). De esta forma la ventana slo mostrar aquellos materiales cuyo nombre contenga esa
palabra.
Una vez hecho sto, puedes ir haciendo clic en los materiales de las cajas de cielo para previsualizar
su aspecto en la Vista de Escena. Cuando te hayas decidido por una pulsa Intro para finalizar.
Ya slo nos falta configurar la niebla de la escena, se trata de un elemento presente en cualquier entorno
natural en mayor o menor medida y la configuraremos de una forma muy sencilla.
Asegrate de tener el men de Render Settings en la Vista de Inspector.
Dirgete al modo de niebla (Fog mode) y despliega el men para seleccionar la opcin Linear.
La niebla de tipo lineal es la ms sencilla de configurar, ya que se basa en una distancia inicial desde la
cmara (Linear Fog Start), medida en metros, en la que la niebla comienza a afectar a la escena y una
distancia final (Linear Fog End) en la que la niebla produce una saturacin total y no deja ver nada.
Tutorial de Unity 3D Introduccin a los Shaders de Unity3D
Pg. 4
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Establece unos valores para el inicio y el fin de la niebla en funcin de tu escena, puedes hacer una
escena con muy poca niebla asignando valores de inicio y fin muy altos (De 1000 a 1500 metros por
ejemplo) o recrear una escena de montaa en un ambiente hmedo con unos valores bajos (De 0 a
300 metros por ejemplo).
Activa ahora la primera casilla del men Render Settings, denominada Fog. Es la encargada de que la
niebla se active finalmente y se muestre, puedes comprobar su efecto tanto en la Vista de Escena
como en la Vista de Juego.
En la captura anterior puedes ver una escena con una configuracin de niebla relativamente alta, observa
cmo apenas se consigue distinguir el color de los rboles.
Existe un problema y es que el color de la niebla es gris y no resulta natural, vamos a solucionarlo.
Vuelve de nuevo al men Render Settings. El segundo parmetro es una celda de color y determina el
color de la niebla (Fog color). Haz clic sobre l para abrir la ventana de colores.
En la parte superior izquierda de la ventana de colores observars un icono en forma de
cuentagotas. Su utilidad es obtener un color directamente desde la Vista de Escena o la Vista de
Juego. Haremos clic sobre la parte de la caja de cielo que se junta con el horizonte, ya que salvo
raras excepciones es generalmente azulado y resulta uno de los colores ms apropiados para la
niebla.
Pg. 5
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Tu escena ya debera tener una luz direccional. Seleccionla en la Vista de Escena, y si no la tienes
recuerda que puedes crear una clicando en la pestaa superior Game Object Create Other
Directional Light.
Caso de seguir visualizndose el men Render Settings en la Vista de Inspector, recuerda abrir el
candado de su parte superior izquierda para que desaparezca y podamos ver los parmetros de la
luz direccional.
Con la luz direccional seleccionada, utiliza la
herramienta de rotacin (Botones superiores
izquierdos o atajo de teclado E) para dirigir la luz en
la direccin que desees.
Con la luz direccional seleccionada, observa en la
vista de inspector sus parmetros. El campo Color
es una caja de color donde podemos establecer un
color distinto del blanco mientras que el campo
Intensidad (Intensity) nos permite modificar su
intensidad base.
Pg. 6
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Dedica ahora unos minutos a seleccionar una caja de cielo, configurar una niebla y una luz
direccional acorde con la escena que deseas ambientar. Puedes plantearte hacer una escena de
noche, un amanecer, un da de espesa niebla...
3. Modelos 3D de Turbosquid
La web http://turbosquid.com es un valioso recurso para localizar todo tipo de objetos 3D para
aadir a nuestro videojuego. Vamos a dedicar unos minutos a configurar nuestras cuentas de usuario para
poder descargar contenido gratuito de todo tipo.
Pg. 7
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Rellena el formulario de inscripcin con tus datos de correo electrnico, nombre de usuario y
contrasea. Finalmente pulsa el botn inferior izquierdo Create Account para crear finalmente tu
cuenta de usuario.
En el paso anterior no olvides poner un correo electrnico vlido para poder recuperar tu contrasea en
caso de prdida, y recuerda que habr nombres de usuario no disponibles o utilizados por otras personas,
as que evita utilizar nombres sencillos como por ejemplo Juan o Laura.
Una vez finalizado el proceso de inscripcin, el texto superior izquierdo de la pgina web pasar a mostrar el
texto Account. Eso nos indica que ests dentro de tu cuenta y ya puedes comenzar a descargar contenido.
Turbosquid tiene un buscador muy similar al de Google, slo que los resultados de la bsqueda nos llevarn a
objetos 3D disponibles para descargar. Podemos buscar cualquier tipo de vehculo, objeto, personaje, etc.
Vamos a hacer una sencilla prueba con la que descargaremos una motocicleta y la incluiremos en nuestro
videojuego.
Con tu cuenta ya creada, dirgete a la barra de bsqueda en la parte superior de la web de
Turbosquid. Generalmente encontraremos ms objetos buscando en ingls, as que escribiremos el
texto motorbike (Motocicleta) y pulsaremos Intro.
Pg. 8
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
El navegador nos mostrar los resultados de la bsqueda en una ventana similar a la siguiente:
El principal problema es que por defecto nos localizar tanto los objetos gratuitos como los de pago, adems
de mostrarnos algunos resultados que no son compatibles con Unity 3D.
Vamos a configurar la bsqueda para que automticamente nos localice
nicamente los objetos compatibles con Unity 3D.
En la columna lateral izquierda de la web, localiza la celda de
Compatibilidad (Compatibility). Haz clic en su ltimo botn para
especificar desde lista (Specify file formats from list).
Se abrir una nueva ventana dentro de la pgina web donde
debemos seleccionar los tipos de archivo que queremos buscar.
Unity es compatible con prcticamente cualquier tipo de archivo 3D,
pero si no queremos instalar ningna extensin tendremos que
marcar nicamente los formatos .fbx, .3ds y .obj y ninguno ms,
segn la imagen que viene a continuacin.
Pg. 9
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Para finalizar aplicando el filtro de bsqueda pulsa el botn Apply abajo a la derecha. El resultado de
la bsqueda ahora slo mostrar objetos compatibles con Unity 3D.
Slo nos falta indicar que queremos nicamente objetos gratuitos:
Localiza en la columna lateral izquierda la celda de Precio
(Price). Haz clic en el texto de abajo para establecer un rango
de precios personalizado (Set custom price range).
Se abrirn 2 celdas donde escribir el precio mnimo y mximo,
escribiremos 0 en ambas y pulsaremos Apply para continuar.
Una vez establecidos ambos filtros de bsqueda, la pgina web nos mostrar los resultados. En este caso
tenemos un par de resultados de bsqueda, uno de ellos es una motocicleta con buen aspecto para
comenzar a trabajar con ella.
Pg. 10
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Haz clic en el icono de la motocicleta para abrir su pgina de descarga. En ella podrs ver una serie
de capturas con el aspecto aproximado que ofrecer el objeto en nuestro juego.
Dentro de la pgina de descarga y antes de descargar, es importante echar un vistazo a la informacin de
especificaciones (3D Model Specifications) que podemos ver en el lateral derecho. En el apartado con el
nmero de polgonos (Polygons) intenta evitar modelos que sobrepasen los 15,000 polgonos. En el caso de
nuestra moto podemos contar 6,721, as que funcionar correctamente.
Pulsa el botn verde de descarga (Download) en la parte superior derecha de la pgina de descarga
de la motocicleta. sto nos llevar a nuestro historial personal de descargas, donde podemos
descargar tanto la motocicleta como cualquier otro objeto que ya hayamos descargado
previamente.
Generalmente, cada objeto puede estar disponible para descargar en varios formatos, entre los que se
encontrarn los que hemos establecido mediante filtrado de bsqueda.
Para mostrar todos los formatos disponibles haz clic en el botn Show all, segn puedes ver en la
siguiente imagen.
Pg. 11
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Los formatos compatibles con Unity, por orden de mayor a menor compatibilidad, son .fbx, .3ds y .obj. En
nuestro caso slo tenemos disponible el formato .3ds (No confundir con el formato .max de 3dsmax).
Hacemos clic sobre l para comenzar la descarga tal y como figura en la captura siguiente.
La descarga comenzar automticamente. Asegrate de indicar una ubicacin conocida, como por ejemplo el
Escritorio.
El archivo que hemos descargado est comprimido en formato .zip. Antes de poder importarlo como recurso
de nuestro proyecto Unity necesitamos descomprimirlo.
Haz clic derecho en el archivo que acabas de descargar y selecciona la opcin de descompresin
(Generalmente Extract to...). El contenido del archivo se extraer.
Para conseguir grandes tasas de compresin, es frecuente que el archivo haya sido comprimido varias
veces, si te encontrases con un archivo similar tendrs que extraerlo de nuevo hasta que aparezcan los
archivos que guarda.
En nuestro caso terminamos encontrando una carpeta llamada Vespa donde podemos ver tanto el archivo
vespa.3ds (El objeto 3D) como un par de carpetas ms con imgenes y texturas, tal y como podemos ver en
la siguiente captura.
Pg. 12
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Antes de aadir el objeto 3D como recurso para nuestro proyecto, vamos a recordar que debemos mantener
una buena organizacin en la Vista de Proyecto. Por tanto vamos a crear un directorio especfico donde
guardar los distintos modelos 3D que vayamos importando.
Ve a la Vista de Proyecto de Unity 3D, haz clic derecho en una zona vaca y selecciona Create
Folder para crear una nueva carpeta. Llmala Modelos.
Haz clic derecho sobre la carpeta Modelos que acabas de crear y crea una carpeta ms llamada
Motocicleta. Haremos lo mismo con los sucesivos modelos 3D que descarguemos, teniendo
siempre cada uno de ellos en su carpeta correspondiente.
Haz clic derecho sobre la carpeta Motocicleta y selecciona la opcin Import New Asset... Se abrir
una ventana de navegador con la que debemos llegar hasta el archivo Vespa.3DS que acabamos de
descargar y descomprimir. Lo seleccionamos y pulsamos el botn Import para importarlo como
recurso de proyecto.
Una vez finalice la carga, la Vista de
Proyecto mostrar el nuevo recurso junto
con una carpeta de materiales (Materials)
asociados. En la Vista de Proyecto
seleccionamos la Vespa podemos ver su
previsualizacin en la parte inferior de la
Vista de Inspector tal y como muestra la
siguiente imagen.
Pg. 13
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Ya slo nos falta aadir nuestra motocicleta a la escena. Para ello debemos asegurarnos de que tenemos el
Layout en modo 2 by 3 y que en la Vista de Escena tenemos visible el terreno y la posicin donde queremos
colocarla.
Desde la Vista de Proyecto selecciona y arrastra la motocicleta hasta la posicin deseada del
terreno en la Vista de Escena.
Observars que la moto aparece tambin en la Vista de Jerarqua, haz doble clic sobre su nombre
(Vespa) para centrarla en la Vista de Escena, deberas ver algo as:
Existe un problema con los modelos gratuitos que descargamos de internet, y es que generalmente su
tamao es arbitrario. En nuestro caso vamos a comprobar el tamao que tiene ahora mismo nuestra
motocicleta comparndola con un cubo de 1 metro de arista.
Con la motocicleta centrada en la Vista de Escena, ve a la pestaa superior GameObject Create
Other Cube. sto crear un cubo con 1 metro de arista exactamente en la misma posicin que la
motocicleta.
Pg. 14
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
En la Vista de Jerarqia, localiza el cubo (Cube) y haz doble clic sobre l para centrarlo. Observars
que la cmara de la Vista de Escena se mueve hacia atrs, sto es debido a que el cubo de 1 metro
de arista es mayor que nuestra motocicleta.
Vuelve a seleccionar la motocicleta en la Vista de Jerarqua y utiliza los botones superiores
izquierdos para cambiar la escala de nuestra moto (Botn de escala o atajo de teclado R). Modifica
la escala de la moto para que tenga un tamao aproximadamente real en comparacin con el cubo.
Aprovecha tambin para posicionarla (Botn de posicionamiento o atajo de teclado W) por encima
del terreno.
Pg. 15
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
4. Texturas
Vamos a volver de nuevo a las texturas para aprender a utilizarlas sobre objetos que hayamos
descargado de internet. Para facilitar las cosas empezaremos trabajando sobre simples cubos, pero todo lo
aprendido ser aplicable ms adelante a objetos complejos.
En primer lugar necesitamos aadir texturas como recurso en nuestro proyecto.
Ve a la Vista de Proyecto, haz clic derecho en una zona vaca y selecciona Create Folder para
crear una nueva carpeta. Ponle como nombre Texturas.
Abre tu navegador web y accede a Google Imgenes. Puedes acceder simplemente a Google y
seleccionar Imgenes en la parte superior de la web tal y como se muestra en la siguiente captura.
En el buscador escribe la palabra texture, en ingls para asegurar ms resultados y espera los
resultados de bsqueda. Puedes concretar ms el tipo de textura que buscas aadiendo alguna
palabra ms como por ejemplo leather (Cuero), si queremos buscar texturas de cuero.
En nuestro caso obtenemos los siguientes resultados de bsqueda:
Pg. 16
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 17
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Localiza la textura que acabas de importar en la Vista de Proyecto, dentro de la carpeta Texturas.
Arrstrala directamente sobre el cubo, bien sea en la Vista de Escena o en la Vista de Jerarqua.
Observars que el cubo aplica automticamente la textura sobre todas sus caras as:
Pg. 18
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
5. Materiales
Ahora que ya nos hemos familiarizado con el manejo de texturas y su aplicacin sobre objetos vamos
a pasar a trabajar con un aspecto visual ms avanzado de Unity. Los materiales indican el aspecto visual que
nos muestra finalmente el objeto, atendiendo especialmente a su reaccin frente a las fuentes de luz y los
reflejos del entorno que lo rodea.
En la Vista de Jerarqua, busca el cubo texturizado que hemos creado anteriormente y haz doble clic
sobre su nombre para centrarlo en la Vista de Escena.
Si observas ahora en la Vista de Inspector, abajo del todo,
comprobars que hay una pequea previsualizacin en
forma de esfera con el aspecto exterior del cubo, una caja
de color y su textura segn la siguiente captura. Se trata de
la ventana del material del objeto y vamos a trabajarla en
profundidad.
La caja de color nos permite aplicar un color de teido en
caso de que queramos ofrecer un aspecto distinto.
Prueba a modificar el color y observa el resultado.
Tambin son interesantes los valores de repeticin (Tiling), que indican la cantidad de veces que la textura
se proyecta sobre las caras del cubo.
Prueba a modificar los valores de la columna Tiling poniendo valores como 2, 5 10 y observa el
cubo de cerca en la Vista de Escena. Vers cmo la textura ahora se muestra repetidas veces sobre
cada cara del cubo. sto resulta especialmente til para por ejemplo componer suelos y paredes con
una nica textura de baldosa y un plano sobre el que se repite varias veces.
Una vez entendido sto es hora de configurar la reaccin que nuestro material tiene con la luz. Los
materiales pueden reflejarla o absorberla en distinta medida, los materiales que absorben la luz se
denominan difusos (Diffuse), mientras que los que la reflejan se denominan especulares (Specular).
Pg. 19
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Segn la captura anterior, observa que en el apartado Shader hay una lista
desplegable en la que ahora mismo figura como seleccin Diffuse.
Haz clic en la lista desplegable del Shader y selecciona Specular
para hacer que el material del cubo pase a reflejar la luz que le
llega. Es normal que el men tarde un poco en responder.
En este punto es importante que sepas que aunque Unity incluye por defecto
aproximadamente unos 50 shaders distintos para materiales, la gran
mayora de ellos parten de ser o bien difusos o bien especulares. Observa la
lista de la derecha, incluso si accedes a las categoras desplegables, vers
que todos los shaders se caracterizan por ser difusos (Absorben la luz) o
ser especulares (Reflejan la luz).
Habrs notado tambin que, en la Vista de Inspector, abajo del todo, la
ventana del material ha cambiado ligeramente despus de haber
seleccionado el shader especular. Ahora tenemos una caja de color
adicional en la que podremos dar un color de teido especular para los
reflejos de luz (Specular Color) y una barra que podemos arrastrar de
izquierda a derecha para indicar el brillo (Shininess), que indicar en qu
medida el material refleja la luz que recibe.
Salvo raras excepciones, en el color especular deberas
asignar algn tipo de gris, consiguiendo as que la luz
reflejada pierda un poco de intensidad sin modificar su color
original. En cuanto a la barra de brillo, ponindola a la
izquierda conseguimos el mximo brillo, mientras que
ponindola a la derecha conseguimos un efecto muy similar
al del shader difuso.
Haz unas pruebas con diferentes texturas aplicando el shader difuso y el especular. Observars que
el especular resulta ms apropiado para texturas metalizadas.
Pg. 20
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
El shader especular que acabamos de usar es el ms bsico de los que trae Unity y no resulta para nada
realista, pero s es importante comprender su funcionamiento antes de pasar a utilizar otros tipos de
shader ms avanzados. Antes de continuar echa un vistazo a la siguiente captura en la que podemos ver el
resultado visual de un objeto a medida que modificamos la cantidad de luz (De derecha a izquierda) y la
cantidad de brillo (De arriba a abajo) de su material.
Otra conclusin importante que podemos sacar de sto es que con una nica textura podemos obtener
infinidad de materiales distintos.
Vamos a dar paso ahora a los materiales ms avanzados de Unity. Si vuelves a echar un vistazo a la lista
completa de shaders disponibles en la Vista de Inspector, observars tambin que gran parte de ellos vienen
prefijados con la palabra Bumped. Este trmino hace referencia a un efecto de profundidad que se aplicar
sobre la superficie del material dando la sensacin de que no es totalmente plana, si no que realmente las
irregularidades dibujadas en la textura tienen una profundidad real.
La mejor manera de entender esto ltimo es configurando un shader de este tipo.
Despliega la lista de shaders y selecciona Bumped Specular. Observa que podramos utilizar tambin
Bumped Diffuse, pero la nica diferencia ser si reflejar o no la luz, y en este caso queremos ver en
todo su esplendor el efecto de profundidad en la superficie.
Tutorial de Unity 3D Introduccin a los Shaders de Unity3D
Pg. 21
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 22
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 23
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 24
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
6. Iluminacin
Un material con mapa de normales como el que hemos creado anteriormente simula la presencia de
irregularidades en una superficie que realmente es plana. Generalmente no apreciaremos con gran detalle el
resultado si permanecemos quietos o si no tenemos luces en movimiento.
Vamos a aadir una luz sobre nuestro cubo y moverla sobre su superficie para ver el resultado.
En la Vista de Jerarqua, haz doble clic en el cubo para centrarlo en la Vista de Escena.
En las pestaas superiores, haz clic en GameObject Create Other Point Light para crear una luz
puntual en la misma posicin que el cubo.
Utiliza el botn Mover que se encuentra arriba a la izquierda del interfaz (Atajo de teclado W) y
coloca la luz puntual justo sobre la superficie del cubo.
Desplaza la Vista de Escena hasta la superficie del cubo para ver el efecto, mueve de nuevo la luz de
punto para comprobar cmo las irregularidades ganan realismo con el movimiento de la cmara o
de las luces en la escena.
Pg. 25
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 26
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 27
Tutorial de Unity 3D
Tema 10
Introduccin a los Shaders de Unity3D
Pg. 28