Tutorial 05: Materiales y sus propiedades

3dsmax_materialesbUno de los principales objetivos de un artista CG es emular el mundo real pero dentro de un mundo virtual 3D. Para poder lograr hacer esto primero debemos comprender como la luz interactúa con los objetos que nos rodean. Debemos observar detenidamente los resaltes, colores, reflexiones de todas las cosas que estén en nuestro entorno y también fotografiar o escanear superficies de objetos que después nos puedan servir de referencia o como una textura.

Generar escenas de carácter fotorealista dependerá más de cómo configuremos las luces y los materiales que de cómo modelemos los objetos. Una buena iluminación y texturas pueden mejorar enormemente un modelo mediocre y por el contrario, una pobre iluminación y texturas pueden arruinar por completo un excelente modelo.

En el mundo del 3D hay varias de técnicas de iluminación realística que varían dependiendo del programa pero las principales son: Radiosidad (radiosity), Caustic, Photon map, LightTtracer y HDRI (High Dynamic Range Image), todas estas caen dentro de una categoría general llamada Iluminación Indirecta o generalmente llamada GI (Global Ilumination).

Todas estas técnicas dependerán del motor de render que usemos, en 3DSMAX tenemos por defecto un motor de render llamado escaneo de líneas o ”scanline” con el cual podemos utilizar para generar GI la Radiosidad y Light Tracer. Alternativamente está el motor de render denominado Mental Ray con el cual podemos utilizar efectos cáusticos, mapeo de fotones y una gran variedad de efectos, ya que este motor de render cuenta con su propia librería de materiales shaders y mapas procedurales.

Editor de materiales

Podemos activarla presionando el ícono del editor de materiales o directamente con la letra M. Nos aparecerá el cuadro de la imagen derecha. Lo primero que veremos es una serie de Slots o esferas (las cuales van desde 6 a 24) las cuales servirán para alojar nuestros materiales. En cada una de ellas crearemos un material que podremos aplicar a cada objeto u escena en particular.

Cuando tenemos un objeto seleccionado, automáticamente se activarán los botones get material y assign material to selection. Get material nos permite obtener el material que queramos. Para asignar el material al objeto basta arrastrar la esfera hacia el objeto seleccionado, o presionar el botón assign material to selection. También encontramos la siguiente barra:

Aquí podemos colocar un nombre a nuestro material, además de la herramienta gotario que nos permite capturar el material de otro objeto y colocarlo en el slot. A su lado derecho contamos con el botón standard. Si lo presionamos, podremos elegir entre varios tipos de materiales, ya sea para agregar efectos u otras características según necesitemos.

En el editor de materiales notaremos que existe una persiana llamada Shader Basic Parameters donde podremos elegir el tipo de shader o sombreador que queremos para el material:

En un material de 3DSMAX, un shader es lo que determina cómo se comporta un objeto ante la luz y por ello gestiona los tipos de sombreado en la superficie de este. Los shaders disponibles en 3DSMAX son los siguientes:

Anisotropic: El shader Anisotropic crea superficies con resaltes de tipo elíptico. Estos resaltes son útiles para objetos como pelo, vidrio tipo cristal o brushed metal (metal cepillado).

3dsmax_mat_anisotropic

Blinn: Es el shader que aparece por defecto en el material standard. Blinn crea superficies uniformes con algo de brillo, y es un sombreador de uso general.

3dsmax_mat_blinn

Metal: El shader metal nos permite crear superficies metálicas con aspecto real, así como una variedad de materiales de aspecto orgánico.

3dsmax_mat_metal

Multi-Layer: Es similar al Shader Anisotropic pero tiene dos controles para los resaltes especulares. Los resaltes están organizados en capas o layers, lo que permite crear resaltes complejos idóneos para superficies muy pulidas o para efectos especiales específicos.

3dsmax_mat_multilayer

Oren-Nayar-Blinn: Es una variante del sombreador standard Blinn. Contiene controles de “difusa avanzada” adicionales, Nivel difuso y Aspereza, que permiten aplicar un efecto mate al material. Este sombreador resulta idóneo para superficies mates como tejido, terracota, piel, etc.

3dsmax_mat_orennayerblinn

Phong: Este shader suaviza las aristas entre las caras y renderiza con realismo los resaltes en superficies brillantes normales. El shader Phong puede renderizar con precisión mapas de relieve, opacidad, brillo, reflexión y especulares, además de tener en común los mismos parámetros básicos que tiene el shader blinn.

3dsmax_mat_phong

Strauss: Sirve para sombrear superficies metálicas. Utiliza un modelo más simple y tiene una interfaz más sencilla que el sombreador Metal.

3dsmax_mat_strauss

Translucent shader: este shader es utilizado principalmente para generar transparencias.

3dsmax_mat_translucent

Al lado de la barra de selección de shaders tenemos cuatro efectos para estos, los cuales se detallan a continuación:

Wire: al activarlo, generaremos un render con el modelo alámbrico o Wireframe y además este será visible en la viewport:

3dsmax_mat07

3dsmaxtut05_10

2 Sided: al activarlo, generaremos que el material se vea por ambos lados. Podemos comprobar esto en las imágenes siguientes: en la primera la tetera está renderizada sin aplicar 2 sided y notamos que se ven huecos del entorno en ella, en la segunda imagen tenemos la opción habilitada y notamos que el material “rellena” los espacios blancos.

3dsmax_mat07b

3dsmaxtut05_11

tetera normal.

3dsmaxtut05_12

tetera con 2 sided aplicado.

Face Map: al activarlo, haremos que el material se aplique en cada cara del objeto. Esto funciona especialmente en las texturas y podemos verlo en las imágenes siguientes:

3dsmaxtut05_13

tetera normal.

3dsmaxtut05_14

tetera con Face Map aplicado.

Faceted: al activarlo, se eliminan los grupos de suavizado y el render nos mostrará la geometría facetada (en caras) del modelo original.

3dsmax_mat07c

3dsmaxtut05_15

Cabe destacar que todos estos parámetros podemos utilizarlos al mismo tiempo, activando y desactivando cada opción según lo necesitemos.

Parámetros de shader

Estos aparecen según el tipo de shader que necesitemos pero la mayoría comparten parámetros comunes. Para este tutorial ocuparemos los parámetros de Blinn el cual es el shader por defecto y además es uno de los más versátiles. El cuadro de parámetros es el de la imagen izquierda y tenemos las siguientes propiedades:

– Ambient o color ambiente: es el color del material cuando este no está iluminado.

– Diffuse o color difuso: es el color del material cuando este está iluminado, y define el “color” y/o la textura del material.

3dsmax_mat01

– Specular o color especular: es el color del material cuando los rayos de luz inciden en ángulo recto sobre su superficie, según la ley de reflexión. Para que este sea visible debemos activar Specular subiendo el valor de Specular level.

3dsmax_mat05b

Ejemplo de cambio de color de Specular, en este caso a rojo.

– Self-Ilumination o Autoiluminación: simula que el material está iluminado por dentro. Podemos activarlo de dos formas distintas: la primera es elevando el valor de Self-Ilumination y la segunda es activando la opción color, y eligiendo un color.

3dsmax_mat03

Efecto de autoiluminación activado mediante el valor de Self-Ilumination en 100.

3dsmax_mat03b

Efecto de autoiluminación activado mediante la opción Color, y eligiendo el color amarillo.

– Opacity u Opacidad: controla la transparencia del material. El valor de 100 equivale a la máxima opacidad, si disminuimos este valor el material se hará cada vez más transparente.

3dsmax_mat04

– Specular Level o Nivel de Brillo: controla la intensidad del brillo especular. A mayor valor más intensidad del brillo.

3dsmax_mat05

Ejemplo de Specular Level en 200.

– Glossiness o Debilitar: suaviza los bordes del brillo especular con respecto al color difuso ya que es un controlador de la densidad del brillo especular.

3dsmax_mat06

El mismo ejemplo anterior, pero con el parámetro de Glossiness en 30.

– Soften: suaviza el efecto de los reflejos especulares. Cuando el nivel especular es alto y el brillo es bajo, se puede obtener contraluces fuertes para las superficies mediante el manejo de este valor. Su valor máximo es 1.

3dsmax_mat06b

Acerca de los Parámetros extendidos (Extended Parameters)

En el editor de materiales se encuentra una persiana muy poco utilizada que se llama Extended Parameters y que es común a todos los tipos de shaders del material estándar. En esta persiana se encuentran controles de transparencia avanzada con los cuales podemos controlar con mayor precisión las características de opacidad del material mediante los controles de atenuación o “Falloff”. Falloff In aumenta la transparencia hacia el interior de un objeto. Falloff Out por el contrario, aumenta la transparencia hacia el exterior del objeto. La intensidad de la atenuación la controlamos con el parámetro Amt (Cantidad). Además podemos controlar el color que se verá por detrás de una superficie transparente seleccionando un color de filtro.

Por ejemplo: Si quisiéramos simular una botella de vidrio nos convendría aplicar el Falloff en In y Amt. en 100, esto hará que las caras cuya normal este apuntando hacia la cámara se vean más transparentes y aquellas cuya normal esta paralela a la cámara se vean más densas, es decir, los bordes de la botella se verán más densos debido a que hay mas vidrio mientras que el interior se verá más transparente porque hay menos densidad del vidrio. Esto se puede ejemplificar en las imágenes de abajo:

3dsmax_mat08

3dsmax_mat08b

tetera con valores de falloff en In y Amt= 100, y render de la misma.

3dsmax_mat13

3dsmax_mat13b

tetera con valores de falloff en In, Amt= 100 y filter substractive, y render de la misma.

3dsmax_mat14

3dsmax_mat14b

tetera con valores de falloff en In, Amt= 100 y filter additive, y render de la misma.

3dsmax_mat15

3dsmax_mat15b

tetera con valores de falloff en In, Amt= 100 y filter activado, y render de la misma. En filter se ha cambiado el color a rojo.

3dsmax_mat09

3dsmax_mat09b

tetera con valores de falloff en Out y Amt= 100, y render de la misma.

3dsmax_mat10

3dsmax_mat10b

tetera con valores de falloff en Out, Amt= 100 y filter substractive, y render de la misma.

3dsmax_mat11

3dsmax_mat11b

tetera con valores de falloff en Out, Amt= 100 y filter additive, y render de la misma.

3dsmax_mat12

3dsmax_mat12b

tetera con valores de falloff en Out, Amt= 100 y filter activado, y render de la misma. En filter se ha cambiado el color a rojo.

Otra persiana muy poco utilizada es la de “Super Sampling”, con esta persiana podemos realizar un efecto adicional de alisación o antialiasing, es decir alisar los bordes dentados (pixelados).

El SuperSampling es una de las técnicas de antialiasing. Las texturas, sombras, resaltes, así como las reflexiones y refracciones de Raytrace, tienen sus propias técnicas de antialiasing. Si desactivamos la opción Use Global Settings y activamos Enable Local Supersampler podremos escoger desde una lista de supersamplers. Los que tienen mejor resultado son el Adaptative Halton y el Hammersley. Eso sí, activarlos significaría una aumento en el tiempo de render.

Otra persiana muy importante es la persiana llamada Maps. Esta nos permite acceder y asignar mapas a diversos componentes del material. En esta persiana encontramos 12 canales diferentes de mapas que representan las características de la superficie de un objeto que podemos modificar y perfeccionar utilizando cualquier tipo de imagen, video o secuencia. Sin los canales de mapas, los materiales sólo tendrían un color sólido y uniforme.

Los mapas nos permitirán representar materiales reales, simular texturas complejas como una alfombra o un mármol, agregar propiedades reflexivas a las superficies, simular relieve, etc.

En el valor Amount podemos regular la intensidad de los canales, controlando por ejemplo el nivel de transparencia o de reflexión, o también la mezcla entre el color y la textura, en el caso de diffuse por ejemplo.

3dsmax_mat18diffusedVeremos esto con el ejercicio siguiente. Dibujaremos una tetera, aplicamos un material standard y comenzaremos insertando texturas. Lo primero que haremos será insertar la textura llamada textura_diffusse.jpg en el canal Diffusse. Clickeamos en el botón none al lado del canal, elegimos la opción bitmap para cargar la imagen y la insertamos.

3dsmax_mat16

Notaremos que ahora la tetera tiene una textura aplicada y se verá como la imagen de abajo. También notamos que el color que habíamos aplicado ha desaparecido y como ya sabemos, en su lugar nos muestra la textura:

3dsmax_mat18diffuse

3dsmax_mat18diffuseb

3dsmax_mat17Tip: si no se ve nuestra textura en el Viewport, en el material activaremos la opción show shaded material in viewport (imagen derecha) para verla. Esto vale para cada mapa que insertemos.

3dsmax_mat18diffusecSi luego de insertar el mapa subimos hacia el color de diffuse, notaremos una letra “M” en el lado del cuadro lo que indica que se ha cargado el mapa de forma correcta, por lo que podemos inferir que es lo mismo cargar la textura en la persiana Maps que cargarla al clickear en ese cuadro ya que al hacerlo podremos cargar el mapa o editarlo si ya lo hemos cargado. Este mismo principio es válido para todos los mapas.

Si en la persiana maps bajamos el valor de diffuse, haremos la textura más transparente y podremos mezclarla con el color original de este canal (similar a la opción fade de AutoCAD).

3dsmax_mat18diffusee

3dsmax_mat18diffusef

tetera con valores de diffuse en 50, donde notamos que la textura se mezcla con el color original verde.

En el canal llamado Specular Color, insertaremos la textura llamada textura_specular.jpg. Clickeamos en el botón none al lado del canal, elegimos bitmap y la insertamos. Ahora dejaremos el Specular Level en 80 y el glossiness en 0, para luego realizar un render. El resultado es el de la imagen de abajo:

3dsmax_mat19specularcolor

3dsmax_mat19specularcolorb

Si vemos la textura en 2D notaremos que esta tiene manchas blancas y está en modo Grayscale (escala de grises) por lo que podemos concluir que el mapa specular resaltará las zonas brillantes en blanco y las zonas más oscuras estarán pintadas de negro. en el caso de specular color, debemos sí o sí ajustar el valor de Specular level para ver el resultado.

Si quitamos la imagen del mapa del canal Specular Color y la insertamos directamente en el canal Specular level, notaremos que el mapa se aplica automáticamente y sin que definamos ningún parámetro de Specular LevelEl resultado es el de la imagen de abajo:

3dsmax_mat20specular

3dsmax_mat20specularb

Si aplicamos la misma textura en los dos canales de specular, nos dará un efecto similar a glossiness ya que las manchas blancas estarán un poco más controladas:

3dsmax_mat20specularc

3dsmax_mat20speculard

Para aplicar el efectode Glossiness, primeramente dejaremos activado el mapa specular level y luego insertaremos la textura llamada textura_glossiness.jpg en el canal Glossiness. Clickeamos en el botón none al lado del canal, elegimos bitmap y la insertamos. Ahora dejaremos el Specular Level en 80 y el glossiness en 0, para luego realizar un render. El resultado es el siguiente:

3dsmax_mat21glossiness

3dsmax_mat21glossinessb

Si vemos la textura 2D notaremos que esta está invertida respecto al de la de Specular, por lo que podemos concluir que el límite de las zonas brillantes las resaltaremos en negro y las zonas más oscuras estarán pintadas de blanco.

Ahora aplicaremos una textura en el canal Self-Ilumination y para ello desactivamos los mapas de Specular y Glossiness. Insertaremos la textura llamada textura_selfilumination.jpg. Clickeamos en el botón none al lado del canal, elegimos bitmap y la insertamos. El resultado es el siguiente:

3dsmax_mat22selfilumination

3dsmax_mat22selfiluminationb

Si vemos la textura 2D y la comparamos con la de Diffuse, notaremos que es mucho más clara por lo que podemos concluir que a medida que nos acerquemos al “blanco” mayor será la autoiluminación del objeto, ya que este mapa aplica el efecto en base a la intensidad de los pixeles del mapa.

3dsmax_mat24Tip: si desactivamos los mapas desde la persiana maps, la letra “M” de los cuadros del lado de los canales ahora será la letra “m” minúscula para indicarlo (imagen derecha).

Ahora aplicaremos el efecto de transparencia u opacity mediante una textura. En el canal Opacity, insertaremos la textura llamada textura_opacity.jpg. El resultado es el siguiente:

3dsmax_mat23opacity

3dsmax_mat23opacityb

Si vemos la textura 2D notaremos que es un degradado que va desde negro a blanco. Si nos fijamos en el render, las zonas que se renderean de forma opaca son justamente las que están en blanco, por lo que podemos concluir que las zonas oscuras o negras serán transparentes y las blancas, opacas. Las zonas intermedias serán semitransparentes.

El mapa opacity es uno de los más importantes pues nos permite, por ejemplo, colocar árboles 2D en nuestra escena 3D y al renderearlo se verá el árbol sin el fondo, gracias a que en estos casos tendremos un mapa de opacity en que el árbol está representado en blanco mientras su fondo será negro y por ende provocará la transparencia.

Mapas diffuse y opacity de un árbol 2D.

3dsmax_mat25b

Arbol 2D realizado mediante mapas diffuse y opacity. El árbol està contenido en un plano vertical e iluminado mediante Sunlight.

3dsmax_mat25

El mismo árbol 2D anterior renderizado, donde notamos que gracias al mapa opacity el fondo es transparente y por ende la sombra respeta el árbol original,  a pesar de estar contenido en un plano 2D.

Ahora aplicaremos una textura en el canal Filter Color colocando la textura llamada textura_filtercolor.jpg. El resultado es el siguiente:

3dsmax_mat26filtercolor

3dsmax_mat26filtercolorb

Si nos fijamos en el render podemos concluir que filter color es el que transmite a través de los materiales transparentes o semitransparentes (falloff), por lo que no puede funcionar si no está aplicado el mapa Opacity o se ha disminuido el valor del mismo. Si el mapa de Opacity no estuviera aplicado pero el valor de opacity es menor a 100, podremos ver el mapa de Filter Color en toda la tetera.

3dsmax_mat26filtercolorc

3dsmax_mat26filtercolord

tetera con mapa opacity desactivado pero con nivel de opacidad de 34, y render de la misma.

Ahora en el canal Bump generaremos el efecto de relieve. Para ello desactivamos los otros mapas dejando sólo el mapa diffuse para luego insertar la textura llamada textura_bump.jpg. Para que se vea el efecto, modificaremos el valor de bump a 400 y realizamos un render. El resultado es el siguiente:

3dsmax_mat27bump

3dsmax_mat27bumpb

Si nos fijamos en el render podemos concluir que bump utiliza la imagen en escala de grises para simular el efecto de relieve sobre una superficie. Con esto podemos simular ralladuras, detalles de terminaciones, baldosas, etc. y por ello es otro de los mapas importantes pues podremos generar materiales porosos como piedra o ladrillo.

En el canal Displacement, insertaremos la textura llamada textura_displacement.jpg. Para que se vea el efecto, aplicamos el modificador edit poly a la tetera y realizamos un render. El resultado es el de la imagen siguiente:

3dsmax_mat28displacement

3dsmax_mat28displacementb

Si nos fijamos en el render podemos concluir que este mapa es el ùnico que modifica la geometría del objeto 3D, pero sólo funciona en objetos de tipo editable poly. Podemos cambiar el tipo de deformación si aplicamos al objeto el modificador Disp Approx.

Canales de Reflexión y Refracción

El Canal de Reflexión (Reflection) utiliza un mapa para simular el tipo y el nivel de reflexión sobre una superficie. La reflexión es el reflejo de la luz en la superficie de los objetos, y este canal determina cuan reflexivo y en qué zonas lo es un objeto. En 3DSMAX podemos definir 3 tipos de mapas de reflexión:

Reflexión básica: Se puede utilizar una imagen bitmap u otro mapa procedural como puede ser un falloff. En el caso de nuestro ejercicio, probemos a aplicar el mapa de diffuse en el canal de Reflection. El resultado es el de la imagen:

3dsmax_mat29reflection

3dsmax_mat29reflectionb

El mapa de Reflexión por lo general se realiza en escala de grises y las zonas más claras generarán la reflexión mientras las zonas oscuras harán todo lo contrario.

Reflexión de Flat mirror: Como su nombre lo indica, se utiliza el mapa denominado flat mirror como mapa de reflexión, pero sólo funciona con caras coplanares, es decir, que sean parte de un mismo plano (ejemplo: un espejo). No funcionara en un objeto no coplanar como puede ser una esfera o en el caso del tutorial, con nuestra tetera.

Reflexión automática: En este caso se utilizan mapas procedurales como Raytrace o Reflect/Refract. Estos mapas nos dan una aproximación bastante realista y bastante más precisa que la reflexión básica. Si aplicamos estos mapas en el canal de Reflection podemos ver los resultados en las imágenes de abajo, en la primera se ha aplicado reflect/refract y en la segunda Raytrace. Debemos tomar en cuenta que la reflexión nunca es del 100% ya que en la realidad siempre hay distorsiones o hay daños en las superficies a reflejar.

3dsmax_mat29reflectionc

tetera con Reflect/Refract aplicado.

3dsmax_mat29reflectiond

tetera con Raytrace aplicado.

Los mapas de reflexión automática y flat mirror no necesitan “coordenadas de mapeo” pero si las necesitaría un mapa de reflexión básica ya que es una textura. Respecto al canal de Refracción (Refraction), este utiliza un mapa para simular el cambio de dirección de la luz al pasar a través de un material. Materiales como el cristal, el vidrio o el agua necesitan de este canal para verse de manera realista. El tipo de mapeado es similar al del canal de reflexión. Podemos utilizar mapas de imágenes, así como también mapas de tipo Reflect/refract o también un mapa llamado The Wall Refraction.

Si aplicamos el mapa diffusse a nuestra tetera en el canal refraction y luego ejecutamos un render, el resultado sería el de la imagen de abajo:

3dsmax_mat30refraction

3dsmax_mat30refractionb

Podemos mejorar la refracción aplicando mapas como Raytrace o reflect/refract, que nos dará un resultado más preciso y realista. Las imágenes de abajo nos muestran la tetera con los mapas de Refrect/Refract y Raytrace aplicados en el canal Refraction, con un valor de 40 (ya que 100 hará el objeto invisible).

3dsmax_mat30refractionc

tetera con Reflect/Refract aplicado.

3dsmax_mat30refractiond

tetera con Raytrace aplicado.

3dsmax_mat31

tetera con Raytrace aplicado en ambos canales, con una reflexión de 50 y una refracción de 40.

Como las propiedades físicas de los objetos refractarios distorsionan la imagen que hay detrás del objeto, hay un parámetro especial que controla esto y se llama IOR o Index of Refraction (índice de Refracción). Este controla el grado en que el material refracta la luz transmitida, además que en la realidad los materiales traslúcidos lo poseen. Con el valor 1 no hay distorsión, en valores superiores a 1 sí existe distorsión.

3dsmax_mat31b

el ejemplo anterior pero se ha modificado el valor de index of refraction a 5.

Debemos tener en cuenta que si rendereamos ambos canales con mapas de Raytrace aplicados el tiempo de render se hará considerablemente largo, pero el resultado es mucho más real y preciso que con otros métodos, aunque debemos tener en cuenta el valor de reflexión y refracción que le damos al modelo. El render de abajo, por ejemplo, fue realizado sólo con los mapas de Reflection y Refraction, además de un color azulado en Diffusse y un Opacity de 88, activando la opción 2 sided.

3dsmaxtut05_31

Este es el fin del tutorial 05.

Descargar Tutorial (PDF) y Texturas del tutorial (JPG):

file_download

image_pdfimage_print

Deja un comentario