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 este apunte 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. Este apunte utiliza un archivo de base además de texturas, los cuales pueden ser descargados desde los siguientes vínculos (en formato MAX 2021):
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 apunte 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 del apunte. 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 Renderer. 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 ya estudiamos las propiedades base de cada canal del material Standard, lo que haremos en este apunte 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 vio en el apunte sobre el editor de materiales, por lo que podemos inferir lo siguiente:
- 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.
- 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.
En la siguiente parte de este apunte estudiaremos los canales que van desde Self-Illumination a Displacement. Ir a la segunda parte.