3DSMAX Materiales: Material Standard, mapas de textura

Uno 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 para que después nos puedan servir de referencia o como una textura. Por ello, generar escenas de carácter fotorrealista 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 que utilicemos, pero las principales son: Radiosity (radiosidad), Caustic (cáusticas), Photon map (mapa de fotones), LightTtracer (trazador de luz) y HDRI (High Dynamic Range Image). Todas estas caen dentro de una categoría general llamada Iluminación Indirecta, generalmente llamada GI o Global Ilumination. Todas estas técnicas dependerán del motor de render que usemos ya que por ejemplo, en 3DSMAX tenemos por defecto de un motor de render llamado escaneo de líneas o ”scanline” (Scanline Renderer) el cual podemos utilizar para generar GI mediante las técnicas de Radiosity y de Light Tracer. Alternativamente, tenemos 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.

En esta tercera parte del tutorial sobre materiales veremos los parámetros generales de los canales o mapas y su aplicación práctica, ya que se verán los tipos de mapas principales y también se crearán algunos materiales que incluso podremos utilizar en otros motores de render.

Para desarrollar los temas de este apunte, puede descargar el archivo base realizando clic en el siguiente enlace: descargar archivo base y descargar texturas base.

Definición y tipos de Mapas

Ya hemos visto los parámetros o canales más importantes de los Shaders de 3DSMAX, los cuales son utilizados preferentemente en el motor de render Scanline Renderer ya que hay algunos que son exclusivos para este motor aunque la mayor parte de estos canales también pueden ser utilizados en otros motores de render. Sin embargo, en este tutorial veremos otra persiana muy importante del material Standard la cual es la persiana llamada Maps:

Esta nos permite acceder de forma rápida a todos los canales del material y nos permitirá asignar mapas o texturas a estos. 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, vídeo o secuencia. Sin los canales de mapas, los materiales sólo tendrían un color sólido y uniforme. Además, los mapas nos permitirán representar materiales reales y simular texturas complejas como por ejemplo una alfombra o un mármol, agregar propiedades reflexivas a las superficies, simular relieve, etc. Mediante 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, como por ejemplo en el caso de diffuse el cual puede verse en el ejemplo siguiente:

Veremos los mapas y sus aplicaciones prácticas mediante un ejercicio sencillo el cual está en el archivo base de este tutorial. Al abrirlo, nos encontraremos con lo siguiente:

La escena es una tetera de Newell a la cual se le ha aplicado el modificador Edit Poly y UVW Map además de tener cargado el motor de render por defecto llamado Art Render. Lo único que debemos hacer es invocar al editor de materiales mediante M y al hacerlo, veremos varios mapas ya precargados que invocarán a las texturas de base para el desarrollo del ejercicio. Si estas no se encuentran cargadas, podemos hacerlo de la siguiente manera: haremos doble clic en cada mapa (1) y en los parámetros de configuración haremos clic en la fuente de origen de la imagen (Bitmap) de la la persiana Bitmap Parameters (2).

Una vez realizado lo anterior, nos bastará ir a la carpeta donde descargamos las imágenes y elegir la adecuada a cada mapa:

Repetiremos el proceso con el resto de los mapas hasta completar la carga de todas las imágenes. Si bien en el tutorial anterior ya vimos las propiedades base de cada canal del material Standard, lo que haremos en este tutorial es ver los efectos de las texturas en estos mismos ya que en varios de ellos, podemos cargar un mapa o una textura los cuales modificarán las propiedades o realizarán ciertos efectos especiales que necesitemos en los materiales que creamos. Por ello, comenzaremos por el primer canal y el más utilizado: el canal Diffuse.

Canal Diffuse (Color Difuso)

Si bien ya vimos los aspectos principales del canal Diffuse como el color y la carga de texturas, en este caso la insertaremos mediante los mapas. Si estamos en el editor de materiales Compact, lo primero que haremos será seleccionar el material, luego ir a Maps e insertar la textura llamada textura_diffusse.png en el canal Diffusse. Cliqueamos en el botón None (llamado No Map en las versiones modernas de 3DSMAX) que se encuentra al lado del canal respectivo, luego elegiremos la opción Bitmap para cargar la imagen y la seleccionamos.

Si estamos en el editor de materiales Slate esto es mucho más sencillo de realizar puesto que basta tomar el nodo del mapa Diffuse y enlazarlo al nodo del canal respectivo dentro del material.

Al realizar la carga, notaremos que ahora la tetera ya tiene una textura aplicada y gracias a los modificadores aplicados a esta, tendremos un texturizado más o menos aceptable. También notamos que el color que tenía por defecto ha desaparecido y como ya sabemos, en su lugar se nos mostrará la textura recién cargada:

Si realizamos un render a la vista de cámara que viene en el archivo, el resultado es el siguiente:

Tip: si no se muestra nuestra textura en el Viewport, en el material activaremos la opción show shaded material in viewport para verla. Esto vale para cada mapa que insertemos.

Al colocar nuestra textura en el canal respectivo, notamos que el nombre de la textura queda visible en el botón, lo que implica que se ha cargado de forma correcta:

Si presionamos el botón secundario del mouse en el nombre de la textura, nos encontramos con el siguiente menú de opciones:

En este menú tenemos las opciones de edición de la textura ya que la podremos cortar (Cut), Copiar (Copy) para colocarla en algún otro canal o eliminarla de este mediante Clear. También podremos abrir la textura mediante Open y localizarla en el explorador de windows mediante Reveal Location in explorer. Una opción interesante es que podremos hacer un seguimiento de la carga de nuestras texturas en el cuadro Asset Tracking, si elegimos la opción Highlight Assets in ATS dialog:

Ahora bien, si queremos cambiar la textura del canal, bastará hacer clic en el nombre de esta y luego editarla desde los parámetros de la imagen o Bitmap Parameters. En el caso del editor Slate, simplemente seleccionamos el mapa respectivo y vamos a la misma opción. Luego de insertar el mapa podemos ir hacia los parámetros de color de Diffuse, donde notaremos la letra “M” en el lado del canal. Esto implica que el mapa se ha cargado de forma correcta, tal y como se vió en el tutorial de materiales parte 2, por lo que podemos inferir lo siguiente:

a) Es lo mismo cargar la textura en la persiana Maps que cargarla al cliquear en el cuadro del lado de Diffuse, 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 y canales.

b) Si enlazamos nodos de mapas a los nodos de las propiedades del material, es lo mismo que si las cargáramos desde Maps.

Tip: si desde la persiana Maps desactivamos la carga de la textura o mapa deshabilitando la casilla, la letra “M” de los cuadros del lado de los canales ahora será la letra “m” minúscula para indicarlo. Esto es válido para todos los canales del material que posean mapas.

Si en la persiana Maps bajamos el valor de Amount 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. Si este valor es 0, el color reemplazará a la textura.

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

Canal Specular Color (Color Especular)

En este caso generaremos el color y el nivel especular del material desde los mapas. Por ello, en el canal llamado Specular Color insertaremos la textura llamada textura_specular.png. Cliqueamos en el botón None o No Map del lado del canal, elegimos Bitmap y la insertamos. Ahora, ajustaremos el valor de Specular Level en 80 y el Glossiness en 0, para luego realizar un render.

El resultado del renderizado es el siguiente:

Si vemos la textura en 2D notaremos que esta es distinta de la original y que su color es oscuro, por lo que en el render notamos que las zonas menos iluminadas (más oscuras) tienden a impregnarse con la textura. Ahora realizaremos la misma prueba de renderizado, pero esta vez agregando la textura llamada textura_specular_level.png.

El resultado del render es el siguiente:

Si vemos en 2D esta última textura, es la misma de Specular pero tiene líneas en blanco, por lo que podemos concluir que el mapa Specular resaltará las zonas brillantes en tonos que se acerquen al blanco, y las zonas más oscuras estarán pintadas en tonos que se acerquen al negro. En el caso de ocupar una textura en Specular Color, debemos sí o sí ajustar el valor de Specular Level para ver el resultado.

Renderizado anterior pero esta vez con el valor 150 en Specular Level.

Al igual que en el caso de Diffuse, si en la persiana Maps bajamos el valor de Amount haremos la textura más transparente y por ello, se irá mezclando con el color especular.

Canal Specular Level (Nivel Especular)

Si quitamos la textura llamada textura_specular_level.png 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 Level.

El resultado del render es el siguiente:

Si en la persiana Maps bajamos el valor de Amount de este canal, haremos la textura más transparente y por ello, se irá mezclando con el nivel especular. Ahora bien, si aplicamos la misma textura en los dos canales de Specular, nos dará un efecto similar a Glossiness ya que las líneas blancas estarán un poco más controladas:

Canal Glossiness (Brillo)

Para aplicar el efecto de brillo, insertaremos la textura llamada textura_glossiness.png en el canal Glossiness. Ahora, dejaremos el Specular Level en 200 y en Glossiness no haremos nada, ya que no importa el valor que le demos puesto que el mapa se aplica automáticamente sin que definamos ningún parámetro de Glossiness:

El resultado del render es el siguiente:

Si vemos la textura en 2D notaremos que esta está invertida respecto al de la de Specular Level, 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.

Si en la persiana Maps bajamos el valor de Amount de este canal, haremos la textura más transparente y por ello, se irá mezclando con el valor de Glossiness.

Canal Self-Illumination (Auto-iluminación)

Ahora aplicaremos una textura en el canal Self-Illumination y para ello, desactivamos los mapas de Specular y Glossiness. Ahora insertaremos la textura llamada textura_selfillumination.png de forma similar a como lo hicimos con los otros canales, para luego realizar un render:

El resultado del render es el siguiente:

Si vemos la textura 2D y la comparamos con la de Diffuse, notaremos que es la misma pero que posee líneas blancas, por lo que podemos concluir que a medida que nos acerquemos al blanco mayor será la auto-iluminación del objeto, ya que este mapa aplica el efecto en base a la intensidad de los pixeles del mapa.

Un aspecto interesante de este canal es que la intensidad de Self-Illumination no tendrá efecto si cargamos una textura, pero si elegimos cualquier color para la auto-iluminación el render será diferente al del valor aunque siempre será el mismo, tal como se aprecia en el siguiente ejemplo:

Render de la textura en el canal Self-Illumination, pero en este caso se activa la opción color de la auto-iluminación en lugar de su intensidad.

Si en la persiana Maps bajamos el valor de Amount de este canal, haremos la textura más transparente y por ello, se irá mezclando con el color o el valor de Self-Illumination según lo que hayamos elegido.

Canal Opacity (Opacidad o Transparencia)

Ahora aplicaremos el efecto de transparencia u opacity a nuestro material mediante la carga de una textura. Para este caso, dejamos solamente la textura del canal Diffuse y en el canal Opacity, insertaremos la textura llamada textura_opacity.png y luego realizaremos un render.

El resultado es el siguiente:

Si vemos la textura 2D, notaremos que es del mismo tamaño que la de Diffuse pero tenemos dos líneas blancas y una principal negra. Si nos fijamos en el render, ocurre algo muy interesante puesto que las zonas en las que se ve nuestra textura son justamente las que están en blanco mientras que las zonas negras la harán transparente o invisible, por lo que podemos concluir que las zonas oscuras o negras tenderán a ser transparentes y las zonas que tiendan a ser blancas serán opacas. Las zonas intermedias serán semitransparentes. Si agregamos un valor a Specular Level, podremos ver el “contorno” del objeto en el que están contenidas las texturas:

Renderizado anterior pero con el valor de Specular Level en 20.

Un aspecto interesante de este canal es que la intensidad de Opacity no tendrá efecto si cargamos una textura ya que por defecto es esta la que genera la transparencia. Si en la persiana Maps bajamos el valor de Amount de este canal, haremos la textura más opaca y por ello, se irá mezclando con el valor de Opacity. En este caso, 100 representa la transparencia máxima mientras que el valor 0 es opacidad pura:

Renderizado anterior pero con el valor de Opacity en 100, mientras que en Maps su valor es 80.

El mapa Opacity (conocido como Cutouts en AutoCAD) es uno de los más importantes pues nos permite, por ejemplo, colocar árboles 2D en nuestra escena 3D y al renderizarla 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.

Arbol 2D realizado mediante mapas Diffuse y Opacity. El árbol está contenido en un plano vertical.

El mismo árbol 2D anterior renderizado en Art Render, 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.

Canal Bump (Relieve)

Ahora en el canal Bump generaremos el efecto de relieve. Para ello, desactivamos todos los mapas dejando sólo Diffuse para luego insertar la textura llamada textura_bump.png. Para que se aprecie bien el efecto, modificaremos el valor de Bump a 100 y realizamos un render.

El resultado es el siguiente:

Si nos fijamos bien en el render, podemos concluir que Bump utiliza la imagen en escala de grises para simular un efecto de relieve sobre una superficie aunque este NO mpdifica la geometría del objeto. Con esto podemos simular ralladuras, detalles de terminaciones, baldosas, etc. y por ello, este es otro de los mapas importantes pues podremos generar materiales porosos como la piedra, el hormigón, la madera sin pulir o el ladrillo. si bien se puede utilizar incluso la textura base (Diffuse), se recomienda que la textura Bump sea en escala de grises ya que el efecto es más realista.

A diferencia de los otros canales, Bump no posee un parámetro asociado y por lo tanto, solamente se puede aumentar o disminuir el efecto de relieve mediante Amount:

El renderizado anterior pero en este caso, se ha aumentado el valor de Bump a 500.

Canal Displacement (Desplazamiento)

En el canal Displacement, insertaremos la textura llamada textura_displacement.png y realizamos un render.

El resultado es el de la imagen siguiente:

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 o que lo tengan aplicado como modificador como en el caso del archivo base. Además, el objeto debe tener un número de subdivisiones importante para que se aprecie mejor el efecto de este mapa. Al igual que en el caso de Bump, Displacement no posee un parámetro asociado y por lo tanto, solamente se puede aumentar o disminuir el efecto mediante Amount:

El renderizado anterior pero en este caso, se ha disminuido el valor de Displacement a 30.

Sin embargo, podemos cambiar el tipo de deformación si aplicamos al objeto el modificador llamado Displacement Approx, ya que este permite elegir entre cuatro tipos de subdivisión que son: Regular, Spatial, Curvature o Spatial and Curvature. En cada tipo podremos modificar parámetros específicos para obtener diferentes efectos.

El renderizado anterior pero en este caso, se ha modificado el tipo de deformación mediante el modificador Disp. Approx.

Canales Filter Color, Reflexión y Refracción (disponible en motor de render Scanline Renderer)

Los canales de Filter Color, Reflection y Refraction solamente están disponibles en el motor de render Scanline renderer, ya que están relacionados con el parámetro Falloff. Por ello, cambiamos el motor de render a Scanline Renderer y en el archivo de nuestro ejercicio, cargaremos la textura usada en diffuse en Filter Color y además modificaremos los parámetros de Falloff, de tal modo que tanto In como en Out el valor de Amount sea 100.

El resultado de los renderizados es el siguiente:

Renderizado con Falloff In en 100.

Renderizado con Falloff Out en 100.

Si nos fijamos bien en los renders podemos concluir que el Filter Color es el que se transmite a través de los materiales transparentes o semitransparentes (falloff), por lo que la textura aplicada reemplazará al color asignado en Filter color de Falloff.

En cuanto al Canal de Reflexión o Reflection, este utiliza un mapa para simular el tipo y el nivel de reflexión sobre una superficie. La Reflexión se define como el reflejo de los rayos de luz en la superficie de los objetos, y este canal determina cuan reflexivo y en qué zonas lo es un objeto. También 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. En 3DSMAX, podemos definir 3 tipos de mapas de reflexión:

a) Reflexión básica: en este caso, se puede utilizar una imagen de tipo Bitmap u otro mapa procedural (como por ejemplo Falloff) para simular la reflexión. En el caso de nuestro ejercicio, aplicaremos el mapa de Specular en el canal de Reflection para luego bajar su valor a 20 en la persiana Maps. Luego, hacemos un render:

El resultado es el siguiente:

Por lo general, el mapa de Reflexión se realiza en escala de grises ya que las zonas más claras generarán la reflexión mientras las zonas oscuras harán todo lo contrario. Podemos probar con las otras texturas para lograr diversos resultados en el render.

Renderizado utilizando la textura Displacement.

b) Reflexión de Flat mirror: como su nombre lo indica, para generar esta reflexión se utiliza el mapa denominado Flat Mirror como mapa de reflexión pero este posee una limitación: sólo funciona con caras coplanares, es decir, que sean parte de un mismo plano (como por ejemplo un espejo). No funcionará en un objeto no coplanar como puede ser una esfera o en el caso de este tutorial, con nuestra tetera. Para que el efecto funcione, el color Diffuse debe ser diferente al gris y se debe cargar el mapa en el mapa correspondiente.

Renderizado mediante Flat Mirror, con un color cargado en Diffuse.

Renderizado mediante Flat Mirror, con una textura cargada en Diffuse.

c) 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 más precisa que la reflexión básica, y no tienen las limitaciones del mapa Flat Mirror.

Renderizado con el mapa Raytrace aplicado en el canal Reflection.

como corolario podemos decir que los mapas de reflexión automática como Reflect/Refract, Raytrace y también Flat Mirror no necesitan “coordenadas de mapeo”, pero sí las necesitaría un mapa de reflexión básica ya que este básicamente es una textura.

Respecto al canal de Refracción o Refraction, esta se define como el cambio de dirección de los rayos de luz al traspasar un material. Este efecto lo podemos ver en piscinas, el interior de una botella o un vaso, donde se produce distorsión al mirar entre estos debido justamente a este fenómeno. En el caso de 3DSMAX, este utiliza un mapa para simularla y por ello, 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 tanto mapas de imágenes, como también mapas de tipo Reflect/refract, Raytrace o también un mapa especialmente diseñado para muros llamado The Wall Refraction. Por ejemplo, si aplicamos el mapa Diffuse a nuestra tetera en el canal Refraction y luego ejecutamos un render, el resultado sería el de la imagen de abajo:

Podemos mejorar la refracción aplicando mapas como Raytrace o reflect/refract, que nos dará un resultado más preciso y realista. Eso sí, al igual que en la reflexión, la refracción nunca es 100% ya que este valor haría al objeto totalmente invisible.

Renderizado con el mapa Raytrace aplicado, con valor de refracción en 40.

Como las propiedades físicas de los objetos refractarios distorsionan la imagen que hay detrás del objeto, en Falloff existe un parámetro especial que controla esto y se llama IOR o Index of Refraction (índice de Refracción) y que la mayor parte de los materiales traslúcidos reales lo poseen. 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 (IOR del aire) no hay distorsión, en valores superiores a 1 sí existe distorsión.

El ejemplo anterior pero se ha modificado el valor de Index Of Refraction (IOR) a 2. En este caso además, se ha ajustado el valor de Falloff In en 100 para apreciar la deformación.

También es importante destacar que para que los materiales traslúcidos tengan realismo, se debe aplicar tanto reflexión como refracción aunque esto dependerá del tipo de material ya que, por ejemplo, un vidrio al ácido no tendrá el mismo valor de refracción que el cristal puro.

El ejemplo anterior con el mapa Raytrace aplicado en ambos canales, con una reflexión de 50 y una refracción de 40.

Debemos tener en cuenta que, si renderizamos 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 90, activando la opción 2 sided.

Este es el fin de este tutorial.

Print Friendly, PDF & Email

¿Qué tan útil fue este artículo? Haga click en una estrella para puntuarlo

Puntuación media 5 / 5. contador de votos: 1

No hay votos. Sea el primero en calificar esta publicación.

5
(1)

Deje un comentario en este artículo