Características de sombreadores (shaders) PDF

Title Características de sombreadores (shaders)
Course Generalidad 3D I
Institution Universidad Siglo 21
Pages 35
File Size 2.3 MB
File Type PDF
Total Downloads 30
Total Views 152

Summary

apuntes de clase modulo 1 para preparación de examen primer parcial...


Description

&DUDFWHUtVWLFDVGHVRPEUHDGRUHVVKDGHUV Materiales y sus propiedades

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 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).

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.

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

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.

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.

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.

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

Translucent shader: este transparencias.

shader

es utilizado

principalmente

para

generar

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:

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.

tetera normal.

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:

tetera normal.

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.

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.

– 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.

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 SelfIlumination y la segunda es activando la opción color, y eligiendo un color.

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

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.

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

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.

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.

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:

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

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

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

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.

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

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

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

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.

Veremos 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.

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:

Tip: 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.

Si 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).

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:

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 Level. El resultado es el de la imagen de abajo:

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:

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:

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:

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.

Tip: 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:

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.

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

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:

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.

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:

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:

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:

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ó...


Similar Free PDFs