¿Qué son los nodos del Diseñador de sombras?

El Diseñador de sombras en Visual Studio representa los efectos visuales como un gráfico. Estos gráficos se compilan a partir de nodos que se eligen y se conectan de forma precisa para lograr el efecto buscado. Cada nodo representa un fragmento de información o una función matemática, y las conexiones entre ellos representan cómo fluye la información a través del gráfico para generar el resultado. Los tipos de nodo incluyen filtros, texturas, parámetros, constantes, nodos de utilidad y nodos matemáticos.

Estructura de los nodos

Todos los nodos se componen de una combinación de elementos comunes. Cada nodo tiene al menos un terminal de salida en el lado derecho (excepto el nodo de color final, que representa la salida del sombreador). Los nodos que representan cálculos o muestras de textura tienen terminales de entrada en el lado izquierdo, pero los nodos que representan información no tienen terminales de entrada. Las terminales de salida se conectan a las terminales de entrada para mover información de un nodo a otro.

Promoción de entradas

Dado que en última instancia el Diseñador de sombras debe generar código fuente HLSL para que el efecto se pueda usar en un juego o aplicación, los nodos del Diseñador de sombras están sujetos a las reglas de promoción de tipos que se usan en HLSL. Como el hardware gráfico funciona principalmente sobre valores de punto flotante, no es habitual la promoción entre tipos diferentes, por ejemplo, de int a float o de float a double. En su lugar, como el hardware gráfico usa la misma operación en varios fragmentos de información a la vez, puede producirse un tipo de promoción diferente en la que la entrada más corta de muchas entradas se alarga para que coincida con el tamaño de la entrada más larga. La forma en que se alargue depende del tipo de la entrada y también de la propia operación:

  • Si el tipo más pequeño es un valor escalar, entonces:

    el valor de la expresión escalar se replica en un vector que es del mismo tamaño que la entrada más grande. Por ejemplo, la entrada escalar 5,0 se convierte en el vector (5,0, 5,0, 5,0) cuando la entrada más grande de la operación es un vector de tres elementos, sea cual sea la operación.

  • Si el tipo más pequeño es un vector y la operación es de multiplicación (*, /, %, etc.), entonces:

    el valor del vector se copia en los elementos iniciales de un vector del mismo tamaño que la entrada más grande, y los elementos finales se establecen en 1,0. Por ejemplo, la entrada de vector (5,0, 5,0) se convierte en el vector (5,0, 5,0, 1,0, 1,0) cuando se multiplica por un vector de cuatro elementos. Esto conserva el tercer y cuarto elemento de la salida mediante el uso de la identidad de multiplicación, 1,0.

  • Si el tipo más pequeño es un vector y la operación es de suma (+, -, etc.), entonces:

    el valor del vector se copia en los elementos iniciales de un vector del mismo tamaño que la entrada más grande, y los elementos finales se establecen en 0,0. Por ejemplo, la entrada de vector (5,0, 5,0) se convierte en el vector (5,0, 5,0, 0,0, 0,0) cuando se suma a un vector de cuatro elementos. Esto conserva el tercer y cuarto elemento de la salida mediante el uso de la identidad de suma, 0,0.

Nodos y tipos de nodo

El Diseñador de sombras proporciona seis tipos de nodo diferentes (filtros, nodos de textura, parámetros, constantes, nodos de utilidad y nodos matemáticos) y varios nodos individuales pertenecen a cada tipo.

Nodos de constante

En el Diseñador de sombras, los nodos de constante representan valores literales y atributos de vértice interpolados en los cálculos de sombreador de píxeles. Dado que los atributos de vértice se interpolan, y por tanto son diferentes para cada píxel, cada instancia de sombreador de píxeles recibe una versión diferente de la constante. Esto proporciona a cada píxel una apariencia única.

Interpolación de atributos de vértice

La imagen de una escena 3D en un juego o aplicación se crea mediante la transformación matemática de muchos objetos —que se definen por los vértices, atributos de vértice y definiciones primitivas— en píxeles en pantalla. Toda la información necesaria para proporcionar a un píxel su aspecto único se proporciona a través de los atributos de vértice, que se fusionan según la proximidad del píxel a los vértices diferentes que componen su primitiva. Una primitiva es un elemento de representación básico, es decir, una forma sencilla como un punto, una línea o un triángulo. Un píxel que está muy cerca de solo uno de los vértices recibe constantes que son casi idénticas a ese vértice, pero un píxel que tenga un espaciado uniforme entre todos los vértices de una primitiva recibe constantes que son el promedio de esos vértices. En la programación de gráficos, las constantes que reciben los píxeles se consideran interpoladas. Proporcionar datos constantes a los píxeles de este modo produce buena calidad visual y al mismo tiempo reduce los requisitos de superficie de memoria y ancho de banda.

Aunque cada instancia de sombreador de píxeles recibe solo un conjunto de valores constantes y no puede cambiar estos valores, las instancias de sombreador de píxeles diferentes reciben conjuntos diferentes de datos constantes. Este diseño permite que un programa de sombreador produzca una salida de color diferente para cada píxel de la primitiva.

Referencia de nodos de constante

Nodo Detalles Propiedades
Vector de cámara El vector que se extiende desde el píxel actual a la cámara en el espacio global.

Puede usarlo para calcular los reflejos en el espacio global.

Salida

Output: float3
El vector desde el píxel actual a la cámara.
None
Constante de color Un valor de color constante.

Salida

Output: float4
Valor del color.
Salida
Valor del color.
Constante Un valor escalar constante.

Salida

Output: float
Valor escalar.
Salida
Valor escalar.
Constante 2D Una constante de vector de dos componentes.

Salida

Output: float2
Valor del vector.
Salida
Valor del vector.
Constante 3D Una constante de vector de tres componentes.

Salida

Output: float3
Valor del vector.
Salida
Valor del vector.
Constante 4D Una constante de vector de cuatro componentes.

Salida

Output: float4
Valor del color.
Salida
Valor del vector.
Posición normalizada La posición del píxel actual, expresada en coordenadas de dispositivo normalizadas.

Las coordenadas X e Y tienen valores en el intervalo de [-1, 1], la coordenada Z tiene un valor en el intervalo de [0, 1] y el componente W contiene el valor de profundidad de punto en el espacio de vista y no está normalizado.

Salida

Output: float4
La posición del píxel actual.
None
Color de punto El color difuso del píxel actual, que es una combinación de los atributos de color difuso de material y de color de vértice.

Salida

Output: float4
El color difuso del píxel actual.
None
Profundidad de punto La profundidad del píxel actual en el espacio de la vista.

Salida

Output: float
La profundidad del píxel actual.
None
Profundidad de punto normalizada La profundidad del píxel actual, expresada en coordenadas de dispositivo normalizadas.

El resultado tiene un valor en el intervalo de [0, 1].

Salida

Output: float
La profundidad del píxel actual.
None
Posición de pantalla La posición del píxel actual, expresada en coordenadas de pantalla.

Las coordenadas de pantalla se basan en la ventanilla actual. Los componentes X e Y contienen las coordenadas de pantalla, el componente Z contiene la profundidad normalizada en un intervalo de [0, 1] y el componente W contiene el valor de profundidad en el espacio de vista.

Salida

Output: float4
La posición del píxel actual.
None
Normal a la superficie El valor normal a la superficie del píxel actual en el espacio de objeto.

Se puede usar para calcular las reflexiones y las contribuciones de la iluminación en el espacio de objeto.

Salida

Output: float3
El valor normal a la superficie del píxel actual.
None
Vector de cámara de espacio tangente El vector que se extiende desde el píxel actual a la cámara en el espacio tangente.

Se puede usar para calcular las reflexiones en el espacio tangente.

Salida

Output: float3
El vector desde el píxel actual a la cámara.
None
Dirección de la luz de espacio tangente El vector que define la dirección en la que se proyecta la luz desde una fuente de luz en el espacio tangente del píxel actual.

Se puede usar para calcular las contribuciones de reflexión especular y de iluminación en el espacio tangente.

Salida:

Output: float3
El vector desde el píxel actual a una fuente de luz.
None
Normal global El valor normal a la superficie del píxel actual en el espacio global.

Se puede usar para calcular las reflexiones y las contribuciones de la iluminación en el espacio global.

Salida

Output: float3
El valor normal a la superficie del píxel actual.
None
Posición global Posición del píxel actual en el espacio global.

Salida

Output: float4
La posición del píxel actual.
Ninguno

Nodos de parámetro

En el Diseñador de sombras, los nodos de parámetro representan entradas al sombreador que están bajo el control de la aplicación por cada dibujo, por ejemplo, propiedades de material, luces direccionales, posición de la cámara y tiempo. Dado que se pueden cambiar estos parámetros con cada llamada a draw, se puede usar el mismo sombreador para proporcionar diferentes aspectos a un objeto.

Referencia de nodos de parámetro

Nodo Detalles Propiedades
Posición global de la cámara Posición de la cámara en el espacio global.

Salida:

Output: float4
Posición de la cámara.
None
Dirección de la luz El vector que define la dirección en la que se proyecta la luz desde una fuente de luz en el espacio global.

Se puede usar para calcular las contribuciones de reflexión especular y de iluminación en el espacio global.

Salida:

Output: float3
El vector desde el píxel actual a una fuente de luz.
None
Color ambiental de material La contribución de color difuso del píxel actual que se atribuye a la iluminación indirecta.

El color difuso de un píxel simula cómo interactúa la iluminación con superficies desiguales. Se puede usar el parámetro Color ambiental de material para determinar aproximadamente cómo contribuye la iluminación indirecta a la apariencia de un objeto en el mundo real.

Salida:

Output: float4
El color difuso del píxel actual debido a la iluminación indirecta o ambiental.
Acceso
Público para que esta propiedad se pueda establecer desde el Editor de modelos. De lo contrario, Privado.

Valor
El color difuso del píxel actual debido a la iluminación indirecta o ambiental.
Color difuso de material Un color que describe cómo difumina la iluminación directa el píxel actual.

El color difuso de un píxel simula cómo interactúa la iluminación con superficies desiguales. Se puede usar el parámetro Color difuso de material para cambiar cómo difumina el píxel actual la iluminación directa, es decir, la luz direccional, puntual y focal.

Salida:

Output: float4
Un color que describe cómo difumina la iluminación directa el píxel actual.
Acceder
Público para que esta propiedad se pueda establecer desde el Editor de modelos. De lo contrario, Privado.

Valor
Un color que describe cómo difumina la iluminación directa el píxel actual.
Color emisor de luz de material La contribución de color del píxel actual que se atribuye a la iluminación que se le proporciona.

Se puede usar para simular un objeto resplandeciente, es decir, aquel que proporciona su propia luz. Esta luz no afecta a otros objetos.

Salida:

Output: float4
La contribución de color del píxel actual debida a la iluminación propia proporcionada.
Acceder
Público para que esta propiedad se pueda establecer desde el Editor de modelos. De lo contrario, Privado.

Valor
La contribución de color del píxel actual debida a la iluminación propia proporcionada.
Reflexión especular de material Un color que describe cómo refleja la iluminación directa el píxel actual.

El color especular de un píxel simula cómo interactúa la iluminación con superficies suaves y reflectantes. Se puede usar el parámetro Reflexión especular de material para cambiar cómo refleja el píxel actual la iluminación directa, es decir, la luz direccional, puntual y focal.

Salida:

Output: float4
Un color que describe cómo refleja la iluminación directa el píxel actual.
Acceder
Público para que esta propiedad se pueda establecer desde el Editor de modelos. De lo contrario, Privado.

Valor
Un color que describe cómo refleja la iluminación directa el píxel actual.
Potencia especular de material Valor escalar que describe la intensidad de los reflejos especulares.

Cuanto mayor sea la potencia especular, más intensidad y alcance tiene la iluminación especular.

Salida:

Output: float
Un término exponencial que describe la intensidad de los reflejos especulares en el píxel actual.
Acceder
Público para que esta propiedad se pueda establecer desde el Editor de modelos. De lo contrario, Privado.

Valor
El exponente que define la intensidad de los reflejos especulares en el píxel actual.
Tiempo normalizado El tiempo en segundos, normalizado en el intervalo [0, 1], de forma que cuando el tiempo llega a 1, se restablece en 0.

Se puede usar como parámetro en los cálculos del sombreador, por ejemplo, para animar coordenadas de textura, valores de color u otros atributos.

Salida:

Output: float
El tiempo normalizado, en segundos.
None
Time Tiempo en segundos.

Se puede usar como parámetro en los cálculos del sombreador, por ejemplo, para animar coordenadas de textura, valores de color u otros atributos.

Salida:

Output: float
El tiempo, en segundos.
Ninguno

Nodos de textura

En el Diseñador de sombras, los nodos de textura muestrean diversos tipos de textura y geometrías, y generan o transforman las coordenadas de textura. Las texturas proporcionan detalles de color e iluminación a los objetos.

Referencia de nodos de textura

Nodo Detalles Propiedades
Muestra de mapa de cubo Toma una muestra de color de un mapa de cubo en las coordenadas especificadas.

Un mapa de cubo se puede usar para proporcionar detalles de color para efectos de reflexión o para aplicar textura a un objeto esférico con menor distorsión que una textura 2D.

Entrada:

UVW: float3
Un vector que especifica la ubicación en el cubo de textura de la que se toma la muestra. La muestra se toma en la intersección de este vector y el cubo.

Salida:

Output: float4
El ejemplo de color.
Textura
El registro de textura asociado a la muestra.
Muestra de mapa normal Toma una muestra de un mapa 2D normal en las coordenadas especificadas.

Un mapa normal se puede usar para simular la apariencia de un detalle geométrico adicional en la superficie de un objeto. Los mapas normales contienen datos empaquetados que representan un vector unitario en lugar de datos de color.

Entrada:

UV: float2
Las coordenadas en las que se toma la muestra.

Salida:

Output: float3
La muestra normal.
Ajuste de ejes
El factor que se usa para ajustar la muestra de mapa normal para diestros o zurdos.

Textura
El registro de textura asociado a la muestra.
UV de panorámica Mueve en panorámica las coordenadas de textura especificadas como una función de tiempo.

Se puede usar para mover una textura o un mapa normal a través de la superficie de un objeto.

Entrada:

UV: float2
Las coordenadas para el movimiento panorámico.

Time: float
La duración del movimiento panorámico, en segundos.

Salida:

Output: float2
Las coordenadas de la panorámica.
Velocidad X
Número de elementos de textura distribuidos en el eje x por segundo.

Velocidad Y
Número de elementos de textura distribuidos en el eje y por segundo.
UV de paralaje Desplaza las coordenadas de textura especificadas como una función del alto y el ángulo de visión.

El efecto se conoce como asignación de paralaje o de desplazamiento virtual. Se puede usar para crear una ilusión de profundidad en una superficie plana.

Entrada:

UV: float2
Las coordenadas para el desplazamiento.

Height: float
El valor de mapa de elevación que está asociado a las coordenadas UV.

Salida:

Output: float2
Las coordenadas desplazadas.
Plano de profundidad
La profundidad del efecto de paralaje. De forma predeterminada, el valor es 0,5. Los valores menores levantan la textura y los valores mayores la hunden en la superficie.

Escala de profundidad
La escala del efecto de paralaje. Esto hace que la profundidad aparente sea más o menos pronunciada. Los valores típicos oscilan entre 0,02 y 0,1.
UV de rotación Gira las coordenadas de textura especificadas alrededor de un punto central como una función de tiempo.

Se puede usar para girar una textura o un mapa normal en la superficie de un objeto.

Entrada:

UV: float2
Las coordenadas para la rotación.

Time: float
La duración del movimiento panorámico, en segundos.

Salida:

Output: float2
Las coordenadas giradas.
Centrar X
Coordenada x que define el centro de rotación.

Centrar Y
Coordenada y que define el centro de rotación.

Velocidad
Ángulo, en radianes, por el que la textura rota por segundo.
Coordenada de textura Las coordenadas de textura del píxel actual.

Las coordenadas de textura determinadas al interpolar entre los atributos de coordenada de textura de los vértices cercanos. Puede considerarse como la posición del píxel actual en el espacio de textura.

Salida:

Output: float2
Las coordenadas de textura.
None
Dimensiones de textura Muestra el ancho y el alto de un mapa de textura 2D.

Se pueden usar las dimensiones de textura para tener en cuenta el ancho y el alto de la textura en un sombreador.

Salida:

Output: float2
El ancho y el alto de la textura, expresados como un vector. El ancho se almacena en el primer elemento del vector. El alto se almacena en el segundo elemento.
Textura
El registro de textura que está asociado con las dimensiones de textura.
Delta del elemento de textura Muestra el delta (distancia) entre los elementos de textura de un mapa de textura 2D.

Se puede usar el delta del elemento de textura para muestrear valores de elemento de textura contiguos de un sombreador.

Salida:

Output: float2
El delta (distancia) desde un elemento de textura al siguiente (con movimiento diagonal en la dirección positiva), expresado como un vector en el espacio de textura normalizado. Se pueden derivar las posiciones de todos los elementos de textura contiguos omitiendo o negando de forma selectiva las coordenadas U o V del delta.
Textura
El registro de textura asociado al delta del elemento de textura.
Muestra de textura Toma una muestra de color de un mapa de texturas en 2D en las coordenadas especificadas.

Se puede usar un mapa de texturas para proporcionar detalles de color en la superficie de un objeto.

Entrada:

UV: float2
Las coordenadas en las que se toma la muestra.

Salida:

Output: float4
El ejemplo de color.
Textura
El registro de textura asociado a la muestra.

Nodos matemáticos

En el Diseñador de sombras, los nodos matemáticos realizan operaciones algebraicas, lógicas, trigonométricas y otras operaciones matemáticas.

Nota

Cuando se trabaja con nodos matemáticos en el Diseñador de sombras, la promoción de tipos es especialmente evidente. Para obtener información sobre cómo afecta la promoción de tipos a los parámetros de entrada, vea la sección Promoción de entradas.

Referencia de nodos matemáticos

Nodo Detalles Propiedades
Abs Calcula el valor absoluto de la entrada especificada por componente.

Por cada componente de entrada X, los valores negativos se convierten en positivos de forma que todos los componentes del resultado tengan un valor positivo.

Entrada:

X: float, float2, float3 o float4
Los valores para los que se va a determinar el valor absoluto.

Output:

Output: igual que la entrada X
El valor absoluto, por componente.
None
Add (Agregar) Calcula la suma por componente de las entradas especificadas por componente.

Para cada componente del resultado se suman los componentes correspondientes de entrada X y entrada Y.

Entrada:

X: float, float2, float3 o float4
Uno de los valores que se va a sumar.

Y: igual que la entrada X
Uno de los valores que se va a sumar.

Salida:

Output: igual que la entrada X
La suma, por componente.
None
Ceil Calcula el límite superior de la entrada especificada por componente.

El límite superior de un valor es el entero más pequeño que es mayor o igual a ese valor.

Entrada:

X: float, float2, float3 o float4
Los valores para los que se va a calcular el límite superior.

Salida:

Output: igual que la entrada X
El límite superior, por componente.
None
Clamp Fija cada componente de la entrada especificada a un intervalo predefinido.

Para cada componente del resultado, los valores por debajo del intervalo definido se igualan al valor mínimo del intervalo, los valores por encima del intervalo definido se igualan al valor máximo del intervalo y los valores comprendidos en el intervalo no se modifican.

Entrada:

X: float, float2, float3 o float4
Los valores que se van a fijar.

Salida:

Output: igual que la entrada X
El valor fijado, por componente.
Máx.
El mayor valor posible en el intervalo.

Mín.
El menor valor posible en el intervalo.
Cos Calcula el coseno de la entrada especificada, en radianes, por componente.

Para cada componente del resultado, se calcula el coseno del componente correspondiente, que se proporciona en radianes. El resultado tiene componentes con valores en el intervalo de [-1, 1].

Entrada:

X: float, float2, float3 o float4
Los valores de los que calcular el coseno, en radianes.

Salida:

Output: igual que la entrada X
El coseno, por componente.
None
Cross Calcula el producto cruzado de los vectores de tres componentes especificados.

Se puede usar el producto cruzado para calcular el valor normal de una superficie que se define mediante dos vectores.

Entrada:

X: float3
El vector del lado izquierdo del producto cruzado.

Y: float3
El vector del lado derecho del producto cruzado.

Salida:

Output: float3
Producto cruzado.
None
Distancia Calcula la distancia entre los objetos especificados.

El resultado es un valor escalar positivo.

Entrada:

X: float, float2, float3 o float4
Uno de los puntos entre los que se va a determinar la distancia.

Y: igual que la entrada X
Uno de los puntos entre los que se va a determinar la distancia.

Salida:

Output: igual que la entrada X
Distancia.
None
Dividir Calcula el cociente por componente de las entradas especificadas.

Para todos los componentes del resultado, el componente correspondiente de la entrada X se divide por el componente correspondiente de la entrada Y.

Entrada:

X: float, float2, float3 o float4
Los valores del dividendo.

Y: igual que la entrada X
Los valores del divisor.

Salida:

Output: igual que la entrada X
El cociente, por componente.
None
Punto Calcula el producto escalar de los vectores especificados.

El resultado es un valor escalar. Se puede usar el producto escalar para determinar el ángulo entre dos vectores.

Entrada:

X: float, float2, float3 o float4
Uno de los términos.

Y: igual que la entrada X
Uno de los términos.

Salida:

Output: float
Producto escalar.
None
Floor Calcula el límite inferior de la entrada especificada por componente.

Para todos los componentes del resultado, su valor es el valor entero mayor que sea inferior o igual al componente correspondiente de la entrada. Todos los componentes del resultado son números enteros.

Entrada:

X: float, float2, float3 o float4
Los valores para los que se va a calcular el límite inferior.

Salida:

Output: igual que la entrada X
El límite inferior, por componente.
None
Fmod Calcula el módulo (cociente) por componente de las entradas especificadas.

Para todos los componentes del resultado, se resta un múltiplo entero (un número entero), m, del componente correspondiente de la entrada Y del componente correspondiente de la entrada X, dejando un resto. El múltiplo, m, se elige de forma que el resto es menor que el componente correspondiente de la entrada Y y tiene el mismo signo que el componente correspondiente de la entrada X. Por ejemplo, fmod(-3,14, 1,5) es -0,14.

Entrada:

X: float, float2, float3 o float4
Los valores del dividendo.

Y: igual que la entrada X
Los valores del divisor.

Salida:

Output: igual que la entrada X
El módulo, por componente.
None
Frac Quita la parte entera (un número entero) de la entrada especificada por componente.

Para todos los componentes del resultado, se quita la parte entera del componente correspondiente de la entrada, pero se conservan la parte fraccionaria y el signo. Este valor fraccionario se encuentra en el intervalo [0, 1). Por ejemplo, el valor -3,14 se convierte en el valor -0,14.

Entrada:

X: float, float2, float3 o float4
Los valores para los que se va a calcular la parte fraccionaria.

Salida:

Output: igual que la entrada X
La parte fraccionaria, por componente.
None
Lerp Interpolación lineal. Calcula la media ponderada por componente de las entradas especificadas.

Para todos los componentes del resultado, la media ponderada de los componentes correspondientes de las entrada X e Y. La media la proporciona Percent, un valor escalar, y se aplica uniformemente a todos los componentes. Se puede usar para interpolar entre puntos, colores, atributos y otros valores.

Entrada:

X: float, float2, float3 o float4
El valor de origen. Cuando Percent es cero, el resultado es igual a esta entrada.

Y: igual que la entrada X
El valor terminal. Cuando Percent es uno, el resultado es igual a esta entrada.

Percent: float
Una ponderación escalar que se expresa como un porcentaje de la distancia desde la entrada X a la entrada Y.

Salida:

Output: igual que la entrada X
Un valor que es colineal con las entradas especificadas.
None
Multiply Add Calcula la multiplicación-suma por componente de las entradas especificadas.

Para todos los componentes del resultado, el producto de los componentes correspondientes de las entradas M e A se suman al componente correspondiente de la entrada B. Esta secuencia de operaciones se encuentra en fórmulas comunes, por ejemplo, en la fórmula de punto-pendiente de una línea y en la fórmula para escalar y después desviar una entrada.

Entrada:

M: float, float2, float3 o float4
Uno de los valores que se va a multiplicar.

A: igual que la entrada M
Uno de los valores que se va a multiplicar.

B: igual que la entrada M
Los valores para sumar al producto de las dos entradas.

Salida:

Output: igual que la entrada M
El resultado de la multiplicación-suma, por componente.
None
Máx. Calcula el máximo por componente de las entradas especificadas.

Para todos los componentes del resultado, se toma el mayor de los componentes correspondientes de las entradas.

Entrada:

X: float, float2, float3 o float4
Uno de los valores para el que se va a calcular el valor máximo.

Y: igual que la entrada X
Uno de los valores para el que se va a calcular el valor máximo.

Salida:

Output: igual que la entrada X
El valor máximo, por componente.
None
Mín. Calcula el mínimo por componente de las entradas especificadas.

Para todos los componentes del resultado, se toma el menor de los componentes correspondientes de las entradas.

Entrada:

X: float, float2, float3 o float4
Uno de los valores para el que se va a calcular el mínimo.

Y: igual que la entrada X
Uno de los valores para el que se va a calcular el mínimo.

Salida:

Output: igual que la entrada X
El valor mínimo, por componente.
None
Multiplicar Calcula el producto por componente de las entradas especificadas.

Para todos los componentes del resultado, se multiplican los componentes correspondientes de las entradas X e Y.

Entrada:

X: float, float2, float3 o float4
Uno de los valores que se va a multiplicar.

Y: igual que la entrada X
Uno de los valores que se va a multiplicar.

Salida:

Output: igual que la entrada X
El producto, por componente.
None
Normalize Normaliza el vector especificado.

Un vector normalizado mantiene la dirección del vector original, pero no su magnitud. Se pueden usar vectores normalizados para simplificar los cálculos en los que no es importante la magnitud de un vector.

Entrada:

X: float2, float3 o float4
Vector que se va a normalizar.

Salida:

Output: igual que la entrada X
Valor normalizado.
None
One Minus Calcula la diferencia entre 1 y la entrada especificada por componente.

Para todos los componentes del resultado, el componente correspondiente de la entrada se resta de 1.

Entrada:

X: float, float2, float3 o float4
Los valores que se van a restar de 1.

Salida:

Output: igual que la entrada X
La diferencia entre 1 y la entrada especificada por componente.
None
Power Calcula la exponenciación (potencia) por componente de las entradas especificadas.

Para todos los componentes del resultado, el componente correspondiente de la entrada X se eleva a la potencia del componente correspondiente de la entrada Y.

Entrada:

X: float, float2, float3 o float4
Los valores de base

Y: igual que la entrada X
Los valores de exponente.

Salida:

Output: igual que la entrada X
La exponenciación, por componente.
None
Saturate Fija cada componente de la entrada especificada al intervalo [0, 1].

Se puede usar este intervalo para representar porcentajes y otras medidas relativas en los cálculos. Para todos los componentes del resultado, los valores correspondientes de componente de la entrada que son menores que 0 se igualan a 0, los valores mayores que 1 se igualan a 1, y los valores que están en el intervalo no se cambian.

Entrada:

X: float, float2, float3 o float4
Los valores que se van a saturar.

Salida:

Output: igual que la entrada X
El valor saturado, por componente.
None
Sin Calcula el seno de la entrada especificada, en radianes, por componente.

Para todos los componentes del resultado, se calcula el seno del componente correspondiente, que se proporciona en radianes. El resultado tiene componentes que tienen valores en el intervalo [-1, 1].

Entrada:

X: float, float2, float3 o float4
Los valores de los que calcular el seno, en radianes.

Salida:

Output: igual que la entrada X
El seno, por componente.
None
Sqrt Calcula la raíz cuadrada de la entrada especificada, por componente.

Para todos los componentes del resultado, se calcula la raíz cuadrada del componente correspondiente.

Entrada:

X: float, float2, float3 o float4
Los valores para los que se va a calcular la raíz cuadrada.

Salida:

Output: igual que la entrada X
La raíz cuadrada, por componente.
None
Restar Calcula la diferencia por componente de las entradas especificadas.

Para todos los componentes del resultado, el componente correspondiente de la entrada Y se resta del componente correspondiente de la entrada X. Se puede usar para calcular el vector que se extiende desde la primera entrada a la segunda.

Entrada:

X: float, float2, float3 o float4
Los valores de los que se va a restar.

Y: igual que la entrada X
Los valores que se van a restar de la entrada X.

Salida:

Output: igual que la entrada X
La diferencia, por componente.
None
Transform 3D Vector Transforma el vector 3D especificado en un espacio diferente.

Se puede usar para poner puntos o vectores en un espacio común para que se puedan usar para realizar cálculos significativos.

Entrada:

Vector: float3
Vector que se va a transformar.

Salida:

Output: float3
Valor transformado.
Desde el sistema
Espacio nativo del vector.

Al sistema
Espacio en el que transformar el vector.

Nodos de utilidad

En el Diseñador de sombras, los nodos de utilidad representan cálculos de sombreador habituales y útiles que no se ajustan perfectamente a las demás categorías. Algunos nodos de utilidad realizan operaciones simples como anexar vectores o elegir resultados condicionalmente y otros realizan operaciones complejas, como calcular contribuciones de iluminación según los modelos de iluminación populares.

Referencia de nodos de utilidad

Nodo Detalles Propiedades
Anexar vector Crea un vector anexando las entradas especificadas.

Entrada:

Vector: float, float2 o float3
Los valores a los que se va a anexar.

Value to Append: float
Valor que se va a anexar.

Salida:

Output: float2, float3 o float4, en función del tipo de entrada Vector
El nuevo vector.
None
Fresnel Calcula la reducción de Fresnel según el normal de superficie especificado.

El valor de la reducción de Fresnel expresa en qué medida coincide el valor normal de superficie del píxel actual con el vector de visualización. Cuando los vectores están alineados, el resultado de la función es 0; el resultado se incrementa a medida que los vectores son menos similares y alcanza su valor máximo cuando los vectores son ortogonales. Se puede usar para hacer que un efecto sea más o menos aparente en función de la relación entre la orientación del píxel actual y la cámara.

Entrada:

Surface Normal: float3
La normal de superficie del píxel actual, definida en el espacio tangente del píxel actual. Se puede usar para alterar la normal de superficie aparente, como en la asignación normal.

Salida:

Output: float
La capacidad de reflexión del píxel actual.
Exponente
El exponente que se usa para calcular la reducción de Fresnel.
If Elige condicionalmente uno de los tres resultados posibles por componente. La condición se define por la relación entre otras dos entradas especificadas.

Para cada componente del resultado, se elige el componente correspondiente de uno de los tres resultados potenciales en función de la relación entre los componentes correspondientes de las dos primeras entradas.

Entrada:

X: float, float2, float3 o float4
El valor del lado izquierdo para comparar.

Y: el mismo tipo que la entrada X
El valor del lado derecho para comparar.

X > Y: el mismo tipo que la entrada X
Los valores que se eligen cuando X es mayor que Y.

X = Y: el mismo tipo que la entrada X
Los valores que se eligen cuando X es igual a Y.

X < Y: el mismo tipo que la entrada X
Los valores que se eligen cuando X es menor que a Y.

Salida:

Output: float3
El resultado elegido, por componente.
None
Lambert Calcula el color del píxel actual según el modelo de iluminación Lambert, mediante el normal de superficie especificado.

Este color es la suma de las contribuciones del color ambiental y la iluminación difusa bajo iluminación directa. El color ambiental se aproxima a la contribución total de iluminación indirecta, pero tiene un aspecto plano y apagado sin ayuda de iluminación adicional. La iluminación difusa hace que sea más fácil agregar forma y profundidad a un objeto.

Entrada:

Surface Normal: float3
La normal de superficie del píxel actual, definida en el espacio tangente del píxel actual. Se puede usar para alterar la normal de superficie aparente, como en la asignación normal.

Diffuse Color: float3
El color difuso del píxel actual, normalmente el Color de punto. Si no se proporciona ninguna entrada, el valor predeterminado es blanco.

Salida:

Output: float3
El color difuso del píxel actual.
None
Vector de máscara Enmascara los componentes de vector especificado.

Se puede usar para quitar canales de color específicos de un valor de color o bien para evitar que determinados componentes afecten a cálculos subsiguientes.

Entrada:

Vector: float4
El vector que se va a enmascarar.

Salida:

Output: float4
El vector enmascarado.
Rojo / X
False para desenmascarar el componente rojo (X). De lo contrario, True.

Verde / Y
False para desenmascarar el componente verde (Y). De lo contrario, True.

Azul / Z
False para desenmascarar el componente azul (Z). De lo contrario, True.

Alfa / W
False para desenmascarar el componente alfa (W). De lo contrario, True.
Vector de reflexión Calcula el vector de la reflexión del píxel actual en el espacio tangente en función de la posición de la cámara.

Se puede usar para calcular reflexiones, coordenadas de mapa de cubo y contribuciones de la iluminación especular.

Entrada:

Tangent Space Surface Normal: float3
La normal de superficie del píxel actual, definida en el espacio tangente del píxel actual. Se puede usar para alterar la normal de superficie aparente, como en la asignación normal.

Salida:

Output: float3
El vector de reflexión.
None
Especular Calcula la contribución de iluminación especular según el modelo de iluminación Phong, mediante el normal de superficie especificado.

La iluminación especular proporciona una apariencia reluciente y reflectante a un objeto, por ejemplo, agua, plástico o metales.

Entrada:

Surface Normal: float3
La normal de superficie del píxel actual, definida en el espacio tangente del píxel actual. Se puede usar para alterar la normal de superficie aparente, como en la asignación normal.

Salida:

Output: float3
La contribución de color de los reflejos especulares.
Ninguno

Nodos de filtro

En el Diseñador de sombras, los nodos de filtro transforman una entrada, por ejemplo, una muestra de color o de textura, en un valor de color figurativo. Estos valores de color figurativo se usan normalmente en representación no fotorrealista o como componentes en otros efectos visuales.

Referencia de nodos de filtro

Nodo Detalles Propiedades
Desenfoque Desenfoca píxeles en una textura mediante una función gausiana.

Se puede usar para reducir el detalle de color y el ruido de la textura.

Entrada:

UV: float2
Las coordenadas de la textura para probar.

Salida:

Output: float4
El valor de color difuminado.
Textura
El registro de textura asociado a la muestra que se usa durante el desenfoque.
Desaturar Reduce la cantidad de color en el color especificado.

A medida que se elimina color, el valor de color se aproxima a su equivalente de escala de grises.

Entrada:

RGB: float3
El color que se va a desaturar.

Percent: float
El porcentaje de color que se va a quitar, expresado como un valor normalizado en el intervalo [0, 1].

Salida:

Output: float3
El color desaturado.
Luminancia
Las ponderaciones asignadas a los componentes de color rojo, verde y azul.
Detección de bordes Detecta los bordes de una textura mediante un detector de bordes Canny. Los píxeles del borde se representan como blanco y los píxeles que no son del borde se representan como negro.

Se puede usar para identificar los bordes de una textura para poder usar efectos adicionales para tratar los píxeles del borde.

Entrada:

UV: float2
Las coordenadas de la textura para probar.

Salida:

Output: float4
Blanco si la textura está en un borde. De lo contrario, negro.
Textura
El registro de textura asociado a la muestra que se usa durante la detección de bordes.
Dar nitidez Da nitidez a una textura.

Se puede usar para resaltar detalles finos en una textura.

Entrada:

UV: float2
Las coordenadas de la textura para probar.

Salida:

Output: float4
El valor de color difuminado.
Textura
El registro de textura asociado a la muestra que se usa durante la operación de dar nitidez.

Pasos siguientes

Para obtener más información, consulte Crear sombreadores con el Diseñador de sombras en Visual Studio.