Trabajar con Funciones SDF

En la versión 16.0.0, Substance 3D Designer introdujo un potente conjunto de nodos para crear Funciones SDF, que se pueden utilizar para crear y manipular formas 3D procedimientas.

Las Funciones SDF son Substance de funciones que combinan nodos SDF disponibles en el conjunto de herramientas y se aplican a parámetros específicos en nodos que admiten Funciones SDF.

Como punto de partida, tenga en cuenta que el flujo de trabajo básico tiene este aspecto:

  1. Crea una Función SDF en un nodo 3D viewer para visualizar el resultado.
  2. Copie el gráfico de funciones final (o instanciarlo) en el parámetro de Función SDF de un nodo que admita Funciones SDF, como Shape splatter v2.

Mografía de la función de nodos de Funciones SDF 3D en Substance 3D Designer

¿Qué es una Función SDF?

Al igual que las funciones matemáticas se pueden trazar en 2D como curvas, se pueden trazar en 3D como superficies.

Un campo de distancia firmado es una función matemática que define una superficie en el espacio 3D calculando la distancia desde cualquier punto del espacio hasta el punto más cercano de la superficie.

Vamos a desglosar el nombre 'campo de distancia firmado' para entenderlo mejor:

  • Firmado significa que la función devuelve un valor positivo si el punto está fuera/delante de la superficie, un valor negativo si el punto está dentro/detrás de la superficie y cero si el punto está exactamente en la superficie.
  • Distancia se refiere al hecho de que la función calcula la distancia desde cualquier punto en el espacio hasta el punto *más cercano* de la superficie.
  • Campo significa que la función describe un campo de valores, ya que cada punto del espacio tiene un valor correspondiente que representa su distancia a la superficie más cercana.
Visualización de la forma producida por una Función SDF, con cepas de barrido.

Estas funciones tienen muchas aplicaciones en gráficos de ordenador, como superficies de dibujo, fundición de sombras, enmascaramiento de contornos, detección de colisión y más.

En Substance 3D Designer, las Funciones SDF se utilizan para crear y manipular formas 3D de forma procedimienta.

Resultado y uso previsto de una Función SDF

Los nodos de Función SDF generan un único valor flotante: la distancia firmada a la superficie más cercana.

Sin embargo, hay más para ellos: internamente obtienen y establecen los valores de las variables que los nodos host necesitan definir y/o conocer para manipular y dibujar las formas resultantes.

Esto significa que estos nodos deben usarse en el contexto de nodos que admiten Funciones SDF porque conoce estas variables y las integra de forma nativa.

Los nodos incluyen Shape splatter v2 y 3D viewer.

Gráfico de funciones del Substance

Los nodos de Función SDF están pensados para utilizarse en gráficas de funciones de Substance dedicadas y, por lo tanto, solo están disponibles en ese tipo de gráfica.
Los parámetros de nodo que se deben expresar como una función utilizan un botón ‘Editar función’.

Lo que necesita saber sobre las gráficas de funciones de Substance:

  • De forma similar a los gráficos de Substance, los conectores de nodos son especializados, lo que significa que solo se pueden conectar a otros conectores de color coincidente que representen su tipo.
  • Los nodos no tienen parámetros, solo pueden tener entradas. (Con algunas excepciones específicas)
  • El gráfico tiene un único nodo de salida. Haga clic con el botón secundario en un nodo y seleccione Set as output para designarlo como nodo de salida.
  • Del mismo modo que los Substance, hay nodos atómicos, los bloques de creación base, y nodos de instancia que representan otros gráficos de funciones de Substance.
  • Hay operadores independientes (algebraicos, lógicos y de comparación) que le permiten realizar operaciones en los valores del gráfico; sin embargo, los nodos SDF tienen sus propios operadores
Ejemplo de un gráfico de funciones que define una Función SDF
working-with-sdf-function-graph.png

Introducción

Para crear Funciones SDF, primero tenemos que visualizarlas para poder entender el efecto de los nodos y parámetros que estamos ajustando.

El nodo 3D viewer tiene un modo dedicado para visualizar formas creadas con Funciones SDF: Establezca el parámetro Scene type del nodo en SDF function y haga clic en el botón Editar función para abrir el gráfico de funciones que alojará la propia Función SDF.

El nodo ofrece características específicas para visualizar aspectos de la Función SDF que nos permitirán construirlos de manera más intuitiva y eficiente, como un marco delimitador y aislamientos.

El nodo Cielo/sol físico se puede usar para configurar rápidamente la iluminación del entorno en el visor 3D.

Configuración del nodo del visor 3D para la visualización de la Función SDF.

TIP
table 0-row-2 0-border-none 1-border-none 2-border-none html-authored no-header

Todos los nodos de Función SDF, así como sus conectores de entrada, tienen información sobre herramientas que le permitirá saber más sobre su propósito y cómo utilizarlos.

¡Asegúrate de echarles un vistazo!

Información sobre herramientas para el conector de entrada en el nodo de Función SDF.

Configuración de valores de nodo

Al igual que con todos los nodos de las gráficas de funciones del Substance, los nodos de Función SDF no tienen parámetros, sino sólo conectores de entrada que se utilizan como parámetros.

Para establecer el valor de esas entradas, puede usar nodos constantes como Flotante, Flotante y entero.
Puede crearlos de la forma habitual a través del menú de nodos, o puede arrastrar una nueva conexión desde los conectores para beneficiarse de una lista filtrada de nodos de tipos coincidentes.

La mayoría de los conectores de entrada de nodos de Función SDF tienen un valor predeterminado, que se muestra en la información sobre herramientas.

Nodos constantes utilizados para editar primitivas SDF.

TIP
table 0-row-2 0-border-none 1-border-none 2-border-none html-authored no-header

Si no necesita mantener algunos valores visibles en todo momento, acople nodos con la clave D para ahorrar espacio y desordenar el gráfico.

También puede utilizar comentarios para realizar un seguimiento de los valores.

Información sobre herramientas para el conector de entrada en el nodo de Función SDF.

El marco delimitador

El marco delimitador es un cuadro en el espacio 3D que define los límites en los que se evalúa y dibuja la Función SDF en el nodo Shape splatter v2.

Si el marco delimitador es demasiado pequeño, se pueden recortar partes de la forma. Si es demasiado grande, puede provocar cálculos innecesarios y tiempos de procesamiento más largos.

El parámetro marco delimitador le permite habilitar la visualización del marco delimitador. A continuación, puede ajustar el tamaño del marco delimitador cambiando los valores del parámetro Tamaño de marco delimitador.

Usa el parámetro Colorear fuera del marco para visualizar las áreas fuera del marco delimitador en rojo brillante para que puedas ajustar el marco en consecuencia.

Función de marco delimitador del nodo del visor 3D, para Funciones SDF.

Aislamientos

Como transformar formas implica en realidad *transformar el espacio* en el que se dibujan, el resultado de los nodos utilizados después de algunas transformaciones puede ser sorprendente.
En esos casos, es útil visualizar el espacio en sí, y eso se puede hacer visualizando el campo de distancia de la forma.

Para ello, el nodo del visor 3D utiliza isolines, que son líneas de contorno repetidas que representan una distancia determinada de la superficie de la forma. El parámetro SDF isolines habilita esa visualización.
Las isolíneas se dibujan en un plano horizontal situado en el height especificado por el parámetro posición de las isolíneas SDF.

Ver cómo se deforman las isolíneas por las transformaciones aplicadas a la forma puede ayudar a comprender cómo se transforma la propia forma y ajustar los parámetros de los nodos en consecuencia.

Función de marco delimitador del nodo del visor 3D, para Funciones SDF.

categorías de nodos de Función SDF

Los nodos de Funciones SDF se clasifican en la biblioteca en función de su función y propósito.

Puede crear tantas vistas de biblioteca como sea necesario para organizar el espacio de trabajo de forma que el conjunto de herramientas Funciones SDF se organice por categoría, manteniendo todo a mano. Vaya a la vista Windows > Nueva biblioteca para agregar vistas independientes independientes de la biblioteca.

Espacio de trabajo de ejemplo
working-with-sdf-workspace.png

Primitivos

Los bloques de construcción base de las Funciones SDF, que le permiten crear formas básicas como esferas, cajas, cilindros y más.

Operadores

Estos nodos permiten combinar y modificar formas creadas con formas simples. Entre ellos se incluyen:

  • Operadores booleanos rectos como Union, Intersection y Subtraction que te permiten combinar formas de varias maneras.
  • Deformando operadores booleanos como Rounding y Morph que te permiten combinar formas con un efecto de fusión.
  • Otros operadores especializados, como Shell y Simetría, que permiten modificar o duplicar una forma.

Transformaciones

Las formas se pueden transformar de varias maneras, como ser traducidas, rotadas, escaladas, retorcidas y más.
Estos nodos permiten realizar estas transformaciones transformando el espacio en sí en el que se definen las superficies.

Ese espacio se conoce como P; vaya a la siguiente sección para obtener más información sobre lo que significa y cómo funciona la transformación del espacio.

Material

La gestión de materiales básica está disponible para las formas creadas mediante Funciones SDF.

Puede definir atributos de material básicos: color, rugosidad y metalidad, que se utilizarán para la visualización directa en el nodo del visualizador 3D o como base para el trabajo de materiales en los nodos Shape splatter v2.
También puede asignar identificadores de material a diferentes partes de una forma para separarlas.

Obtenga más información sobre las aplicaciones de estos nodos debajo.

La entrada ‘P’

Cuando aplicamos una transformación a una forma, como un desplazamiento o un giro, en realidad transformamos el espacio en el que está definida la forma.

Si queremos que una transformación se propague a otras formas (por ejemplo, si queremos rotar varias formas de la misma forma), tenemos que asegurarnos de que todas utilicen el mismo espacio transformado.

Un espacio transformado se comparte entre nodos mediante su entrada P dedicada, que puede encontrar en la mayoría de los nodos SDF.
La ‘P’ significa posición P del espacio mundial: Vector 3D que representa las coordenadas de un punto en el espacio mundial.

Los nodos Offset P y Rotate P transforman el espacio y permiten propagar esa transformación a todos los nodos que deberían heredarlo.
Por ejemplo, varias formas se pueden girar juntas conectando su entrada P al mismo nodo Rotar P.

Esto no es meramente una cuestión de conveniencia, es asegurarse de que los nodos SDF trabajan con las mismas posiciones en el espacio.

A continuación se muestra un ejemplo:

working-with-sdf-p-input.gif

Se repite una esfera para visualizar el espacio como una cuadrícula 3D. repitiendo el espacio.
Sin un P compartido, el cilindro doblado utiliza el espacio repetido utilizado por la esfera.
Con un P compartido, las formas se pueden definir correctamente en un espacio rotado compartido.

Uso de Funciones SDF en los nodos “Shape splatter v2”

Una vez que haya completado una Función SDF en el contexto del nodo del visor 3D, puede copiar toda la función y pegarla en el nodo Shape splatter v2 para utilizarla como generador de formas para ese nodo.

Establezca el parámetro Shape type en SDF function, vaya al parámetro Pattern Función SDF y haga clic en el botón Edit function para abrir el gráfico de funciones del parámetro.
A continuación, puede pegar la función copiada desde el nodo del visor 3D en ese gráfico. (¡No olvide volver a configurar el nodo de salida del gráfico de funciones!)

Asegúrate de ajustar el parámetro Tamaño de marco delimitador de SDF para que coincida con el marco delimitador que estabas utilizando en el nodo del visor 3D y asegúrate de que la forma se dibuja correctamente.

working-with-sdf-shape-splatter-v2.png
Shape splatter v2 con un tipo de forma​establecido en SDF function. Tenga en cuenta que el tamaño del marco delimitador SDF​se ajustó para ajustarse a la forma.

TIP
Para reutilizar fácilmente una Función SDF, cópiela en un nuevo gráfico de funciones de Substance y utilícelo como nodo de instancia tanto en el visor 3D como en los nodos Shape splatter v2.
Esto proporciona varias ventajas:
  • Cualquier actualización que realice en la función se reflejará en ambos nodos sin necesidad de volver a copiarla y pegarla. Se trata de una gran mejora de la calidad de vida de las formas complejas.
  • El gráfico puede tener un nombre descriptivo que será visible en los nodos de instancia, lo que hará que el uso de su propia biblioteca de formas SDF sea mucho más manejable y sus gráficos más legibles.
  • Puede crear entradas para el gráfico de funciones que puede usar con nodos Get. Estas entradas se expondrán como conectores de entrada en el nodo de instancia y le permitirán modificar fácilmente sus formas.

ID de material

Una forma SDF puede tener asignado un ID de material, que es un valor entero que se puede usar para diferenciar partes de la forma y asignarles diferentes materiales en los nodos 3D viewer y Shape splatter v2.

Tenga en cuenta que las superficies con diferentes ID de material se dividen con una arista definida en las formas mezcladas, como se puede ver en el ejemplo siguiente.

Use el nodo Set material ID después de la parte de una forma que desee etiquetar con un identificador de material específico y use un nodo de constante Integer para establecer el valor de identificador de material deseado.
En el nodo del visor 3D, establezca el parámetro Output en Material ID para visualizar los identificadores de material de las formas.

working-with-sdf-material-id.png
A la derecha, la salida de dos nodos del visor 3D se componen para mostrar la forma (izquierda) y sus identificadores de material (derecha) para ilustrar cómo, en formas mezcladas, los materiales se interpolan mientras se dividen los identificadores de material.

Los ID de material se pueden aprovechar mediante nodos de complemento Shape splatter v2:

ID de material SDF para la asignación de color en el nodo de color del asignador de salpicaduras de formas v2 . ID de material utilizados para la asignación de color
en el color del asignador de salpicaduras de formas v2
ID de material SDF para la asignación triplanar en el nodo de color del asignador de salpicaduras de formas v2. Id. de material utilizados para la asignación triplanar
en el color del asignador de salpicaduras de formas v2
ID de material SDF para enmascaramiento en Forma salpicadura v2 para enmascarar nodo.
Id. de material usados para enmascarar
en Forma salpicada v2 para enmascarar

Color, rugosidad y metalidad

Los nodos Set color, Set roughness y Set metalness le permiten definir estos atributos de material para las formas de la Función SDF.

Luego, al usar esa Función SDF como un tipo de forma en el nodo Shape splatter v2, estos atributos de material estarán disponibles como mapas en las salidas SDF color, SDF roughness y SDF metalness del nodo. Estos mapas pueden servir como base para trabajos de materiales más complejos utilizando otros nodos.

Tenga en cuenta que, a diferencia de los ID de material, los valores se interpolan en las formas mezcladas como un degradado, como se puede ver en los ejemplos siguientes.

Salida de color SDF del nodo Shape splatter v2. Salida de color SDF
Rugosidad SDF del nodo Shape splatter v2.
Salida de rugosidad SDF
Metalidad SDF del nodo Shape splatter v2. Salida de metal SDF

Muestra de material

recommendation-more-help
substance-3d-designer-help-guide