Nodos semánticos de sombreado MaterialX

Nodos semánticos de sombreado MaterialX. La especificación MaterialX describe una serie de nodos estándar que se pueden utilizar para crear gráficos para procesar imágenes, valores generados por procedimientos, coordenadas y otros datos.

Con la adición de nodos personalizados definidos por el usuario, es posible describir sombreadores de representación completos utilizando gráficos de nodos. Hasta este punto, no ha habido estandarización de los nodos semánticos de sombreadores específicos utilizado en estos shaders de gráficos de nodos. Aunque con el cambio generalizado hacia el sombreado basado en la física.

Parece que la industria se está conformando con una serie de BSDF específicas y otras funciones con Parámetros y funcionalidad estandarizados.

Este documento describe una serie de nodos semánticos de sombreado que implementan superficies de uso generalizado. Funciones de dispersión, emisión y distribución de volumen y nodos de utilidad útil es la construcción de complejos sombreadores de renderizado en capas utilizando gráficos de nodos.

Estos nodos en combinación con otros nodos pueden usarse con el sistema de generación de sombreado MaterialX, ShaderGen.

Nodos semánticos de sombreado en MaterialX
Nodos semánticos de sombreado en MaterialX

Modelo de material físico

Esta sección describe el modelo de material utilizado en la biblioteca MaterialX Physically Based Shading (PBS). Y las reglas que debemos seguir para ser físicamente plausibles.

Alcance de los nodos semánticos de sombreado MaterialX

Un material describe las propiedades de una superficie o medio que implica cómo reacciona a la luz. Ser eficiente, un modelo de material se divide en diferentes partes, donde cada parte maneja un tipo específico de luz interacción: luz que se dispersa en la superficie, luz que se emite desde una superficie, luz que se dispersa dentro de un medio, etc.

El objetivo de nuestra definición de modelo de material es describir las interacciones entre el material y la luz típico de los sistemas de reproducción físicamente plausibles. Incluidos los de la producción de largometrajes, en tiempo real vista previa y motores de juegos.

Nuestro modelo tiene soporte para materiales de superficie, que incluye dispersión y emisión de luz desde el superficie de los objetos y materiales volumétricos. Que incluye la dispersión y emisión de luz dentro de un medio participante. Para la iluminación, apoyamos las luces locales y la luz distante de los entornos.

La modificación geométrica se admite en forma de mapeo normal y de relieve, así como de desplazamiento cartografía.

Materiales físicamente pausibles

Los requisitos iniciales para un material físicamente plausible son que 1) debe ahorrar energía y 2) apoyar la reciprocidad.

La conservación de energía dice que la suma de la luz reflejada y transmitida sobre una superficie debe ser menor o igual a la cantidad de luz que llega. La reciprocidad.

El requisito dice que si la dirección de la luz que viaja se invierte, la respuesta del material permanece sin cambios. Es decir, la respuesta es idéntica si las direcciones de entrada y salida son intercambiado.

Todos los materiales implementados para ShaderGen deben respetar estos requisitos y solo en raras ocasiones. Los casos se desvían de ella cuando tiene sentido para el propósito de la libertad artística.

Cantidades y unidades

El modelo de material utiliza las cantidades radiométricas para las interacciones con el renderizador. La cantidad radiométrica fundamental es la irradiancia (medida en Wm − 2sr − 1). Y da la intensidad de la luz llegar o salir de un punto determinado en una dirección determinada.

Si el resplandor incidente se integra sobre todos direcciones en las que obtenemos la irradiancia (medida en Wm − 2). Y si lo integramos sobre el área de superficie obtenemos potencia (medida en W).

Los parámetros de entrada para materiales y luces especificados en unidades fotométricas se pueden convertir a sus contrapartes radiométricas antes de ser enviados al renderizador.

La interpretación de los tipos de datos devueltos por los sombreadores de superficie y volumen no está especificada. Se deja para el renderizador y el generador de sombreado para que ese renderizador decida.

Para un renderizador de tipo OpenGL, ser tuplas de flotadores que contienen irradiancia calculada directamente por el nodo sombreador. Pero para un tipo OSL renderizador pueden ser primitivas de cierre que utiliza el renderizador en la simulación de transporte ligero.

En general, se considera que un color dado como entrada al renderizador representa un espacio de color RGB lineal.

Sin embargo, no hay nada que impida que un renderizador interprete el tipo de color de manera diferente, por ejemplo para mantener valores espectrales. En ese caso, el generador de sombreado para ese renderizador necesita manejar esto en el implementación de los nodos que involucran el tipo de color.

Manejo del color

MaterialX admite el uso de sistemas de gestión del color para asociar colores con espacios de color específicos.

Un documento MaterialX normalmente especifica el espacio de color de trabajo que se utilizará para el documento. Así como el espacio de color en el que se dan los valores de entrada y las texturas.

Si estos espacios de color son diferentes desde el espacio de color de trabajo. Es responsabilidad de la aplicación y del generador de sombreado transformar ellos.

El módulo ShaderGen tiene una interfaz que se puede utilizar para integrar soporte para diferentes colores sistemas de gestión. Una implementación simplificada con algunos colores populares y de uso común las transformaciones se proporcionan y habilitan de forma predeterminada.

Sistema de sombreado

En este modelo de sombreado de superficies, la dispersión y emisión de luz se controla mediante funciones de distribución.

La luz incidente puede reflejarse, transmitirse o absorberse por una superficie. Esto está representado por un Función de distribución de dispersión bidireccional (BSDF).

La luz también puede emitirse desde una superficie, por ejemplo de una fuente de luz o material brillante. Esto está representado por una distribución de emisiones Función (EDF).

La biblioteca PBS presenta los tipos de datos BSDF y EDF para representar la distribución funciones, y existen nodos para construirlas, combinarlas y manipularlas.

Otra propiedad importante es el índice de refracción (IOR), que describe cómo se propaga la luz a través de un medio. Controla cuánto se dobla un rayo de luz al cruzar la interfaz entre dos medios de diferentes índices de refracción.

La importancia de la luz que se refleja

También determina la cantidad de luz que se refleja y transmitido al llegar a la interfaz, como se describe en las ecuaciones de Fresnel.

Un sombreador de superficie se representa con el tipo de datos Surface Shader. En la biblioteca de PBS hay nodos que construyen un sombreador de superficie a partir de un BSDF y un EDF.

Dado que hay nodos para combinar y modificarlos, puede crear fácilmente sombreadores de superficie a partir de diferentes combinaciones de funciones de distribución.

Las entradas en los nodos de la función de distribución se pueden conectar, y los nodos de la biblioteca estándar se pueden combinar en cálculos complejos. Lo que le da al artista flexibilidad para crear variaciones de material sobre el superficies.

Capas en MaterialX

Para simplificar la creación de materiales complejos, nuestro modelo apoya la noción de capas. Típico los ejemplos incluyen: agregar una capa de capa transparente sobre el material de pintura de un automóvil o poner una capa de suciedad u óxido sobre una superficie metálica.

La estratificación se puede realizar de dos formas diferentes:

Capas horizontales en los nodos semánticos de sombreado MaterialX

Una forma sencilla de crear capas es utilizar una mezcla lineal por punto de sombreado de diferentes BSDF. Donde se da un factor de mezcla por BSDF controlando su contribución.

Desde el El peso se calcula por punto de sombreado, se puede usar como máscara para ocultar contribuciones en diferentes partes de una superficie. El peso también se puede calcular dependiendo del ángulo de visión para simular comportamiento de Fresnel aproximado.

Este tipo de estratificación se puede realizar tanto a nivel BSDF como a nivel nivel de sombreado de superficie. Este último es útil para mezclar sombreadores completos que contienen internamente muchos BSDF.

Por ejemplo para poner tierra sobre la pintura de un coche, engrasar sobre un metal oxidado o agregar calcomanías a un superficie de plástico.

Nos referimos a este tipo de capas como capas horizontales y las diversas mix Los nodos de la biblioteca PBS se pueden utilizar para lograr esto (ver más abajo).

Capas Verticales en los nodos semánticos de sombreado MaterialX

También se admite una forma más correcta físicamente de capas donde una parte superior. La capa BSDF se coloca sobre otra capa BSDF base y la luz no se refleja en la capa superior se supone que se transmite a la capa base; por ejemplo, agregando una capa de recubrimiento dieléctrico sobre un sustrato.

El índice de refracción y la rugosidad del recubrimiento afectarán entonces la atenuación de luz que llega al sustrato. El sustrato puede ser un BSDF transmisivo para transmitir la luz, además, o un BSDF reflectante para reflejar la luz a través del revestimiento.

El sustrato puede en a su vez sea un BSDF reflectante para simular múltiples lóbulos especulares. Nos referimos a este tipo de capas como capas verticales y se puede lograr utilizando el nodo layer en la biblioteca PBS. Ver dielectric_bsdf, sheen_bsdf y thin_film_bsdf a continuación.

Mezcla de entrada de sombreado: calcular y combinar muchos BSDF o sombreadores de superficie separados puede ser caro.

En algunas situaciones, se pueden lograr buenos resultados mezclando la textura / valor entradas en su lugar, antes de cualquier cálculo de iluminación.

Normalmente uno usaría esto con un über-shader que puede simular muchos materiales diferentes. Enmascarando o mezclando sus entradas sobre la superficie se obtiene la apariencia de tener múltiples capas, pero con una textura menos costosa o mezcla de valor. Se dan ejemplos de esto en la especificación principal de MaterialX pre-shader composición ejemplo.

Mapeo de golpes y normales en MaterialX

La normal de superficie utilizada para los cálculos de sombreado se proporciona como entrada para cada BSDF que lo requiera. Los normales puede ser perturbado por bump o mapeo normal, antes de que sea entregado al BSDF.

Como resultado, uno puede suministrar diferentes normales para diferentes BSDF para el mismo punto de sombreado. Al aplicar capas de BSDF, cada capa puede usar diferentes mapas normales y de relieve.

Espesor superficial en MaterialX

Es común que los modelos de sombreado diferencien entre superficies gruesas y delgadas. Definimos un grueso superficie como un objeto donde la superficie representa una interfaz cerrada hermética con un interior sólido hecho del mismo material. Un ejemplo típico es un objeto de vidrio sólido.

Por otro lado, una superficie delgada es definida como un objeto que no tiene ningún grosor o volumen, como una hoja de árbol o una hoja de papel.

Para una superficie gruesa, no se ve la parte trasera si el material es opaco. Si un trasero es golpeado por accidente en este caso, el sombreador debe volver en negro para evitar cálculos innecesarios y posible luz fuga.

En el caso de una superficie gruesa transparente, un golpe en la parte trasera debe tratarse como luz que sale del interfaz cerrada.

Para una superficie delgada, tanto el anverso como el reverso son visibles y puede tener diferentes materiales en cada lado.

Si el material es transparente en este caso, la pared delgada hace que la luz transmita sin refracción, como una ventana de vidrio o una burbuja.

Nodos de material necesarios para sombreadores

Se utilizan dos nodos en nuestro modelo de material para construir sombreadores de superficie para estos casos. La superficie El nodo construye superficies gruesas y es el nodo principal a utilizar.

Ya que la mayoría de los objetos que nos rodean tienen superficies. El nodo thin_surface puede usarse para construir superficies delgadas, y aquí un BSDF diferente y EDF se puede establecer en cada lado.

Consulte la sección Nodos de sombreado a continuación para obtener más información.

Volúmenes en los nodos semánticos de sombreado MaterialX

En nuestro modelo de sombreado de volumen, la dispersión de la luz en un medio participante está controlada por un volumen función de distribución (VDF). Con coeficientes que controlan la tasa de absorción y dispersión.

El VDF representa lo que los físicos llaman una función de fase, que describe cómo se distribuye la luz de su corriente dirección cuando se dispersa en el medio.

Esto es análogo a cómo un BSDF describe la dispersión en un superficie, pero con una diferencia importante: un VDF está normalizado, sumando 1.0 si todas las direcciones están considerado.

Además, la cantidad de absorción y dispersión se controla mediante coeficientes que dan la tasa (probabilidad) por distancia recorrida en el espacio mundial.

El coeficiente de absorción establece la tasa de absorción de la luz que viaja a través del medio. Y el coeficiente de dispersión establece la tasa de la luz se dispersa desde su dirección actual.

La luz también puede emitirse desde un volumen. Esto está representado por un EDF análogo a la emisión de superficies. Pero en este contexto la emisión se da como radiancia por distancia recorrida a través del medio.

La distribución de emisiones

El nodo volume en la biblioteca PBS construye un sombreador de volumen a partir de VDF y EDF individuales componentes. También hay nodos para construir varios VDF, así como nodos para combinarlos para construir los más complejos.

Los VDF también se pueden utilizar para describir el interior de una superficie. Un ejemplo típico sería modelar cómo la luz se absorbe o se dispersa cuando se transmite a través de vidrio coloreado o agua turbia. Esto es hecho por capas de un BSDF para la transmisión de superficie sobre el VDF usando un nodo capa.

Luces en los Nodos semánticos de sombreado MaterialX

Las fuentes de luz se pueden dividir en luces ambientales y luces locales. Las luces ambientales representan contribuciones que vienen de infinitamente lejanas. Todas las demás luces son luces locales y tienen una posición y extensión en el espacio.

Las luces locales se especifican como sombreadores de luz asignados a un localizador, modelando una fuente de luz explícita o en la forma de geometría emisiva utilizando un sombreador de superficie emisiva.

El nodo light en la biblioteca de PBS construye un sombreador de luz a partir de un EDF. También hay nodos para construir varios EDF, así como nodos. para combinarlos para construir otros más complejos.

También se modelan las propiedades emisoras de los sombreadores de superficie, utilizando FED, consulte la sección Nodos EDF a continuación para obtener más información.

Las contribuciones de luz que vienen de lejos son manejadas por luces ambientales en los nodos semánticos de sombreado MaterialX. Estos son típicamente Imágenes capturadas fotográficamente o generadas por procedimientos que rodean toda la escena.

Esta La categoría de luces también incluye fuentes como el sol, donde la larga distancia recorrida hace que la luz esencialmente direccional y sin caída.

Para todos los puntos de sombreado, un entorno se considera infinitamente lejos. Los entornos están en progreso y aún no están definidos en la biblioteca de PBS.

Más información y comentarios sobre los nodos semánticos de sombreado MaterialX en el foro, sigue leyendo…