O que são nós Designer de Sombreador?

O Designer de Sombreador no Visual Studio representa os efeitos visuais, como um grafo. Esses grafos são criados com base em nós escolhidos e conectados de formas precisas, a fim de obter o efeito desejado. Cada nó representa uma parte das informações ou de uma função matemática e as conexões entre eles representam como as informações fluem através do grafo para produzir o resultado. Os tipos de nó incluem filtros, texturas, parâmetros, constantes, nós de utilitário e nós matemáticos .

Estrutura de nó

Todos os nós são compostos de uma combinação de elementos comuns. Cada nó tem pelo menos um terminal de saída no seu lado direito (exceto o nó de cor final, que representa a saída do sombreador). Nós que representam cálculos ou amostras de textura têm terminais de entrada do lado esquerdo, mas nós que representam informações não têm terminais de entrada. Terminais de saída estão conectados a terminais de entrada para mover informações de um nó para outro.

Promoção de entradas

Como o Designer de Sombreador, em última análise, deve gerar código-fonte HLSL para que o efeito possa ser usado em um jogo ou aplicativo, os nós do Designer de Sombreador são sujeito às regras da promoção de tipos que o HLSL usa. Como o hardware gráfico opera principalmente em valores de ponto flutuante, a promoção de tipos entre tipos diferentes — por exemplo, de int para float ou de float para double — é incomum. Em vez disso, como o hardware gráfico usa a mesma operação em várias partes de informações ao mesmo tempo, um tipo diferente de promoção pode ocorrer, no qual o mais curto de muitas entradas é aumentado para corresponder ao tamanho da entrada maior. A forma como o aumento é feito depende do tipo de entrada e também da própria operação:

  • Se o menor tipo for um valor escalar, então:

    O valor escalar será replicado em um vetor que é igual à entrada maior. Por exemplo, a entrada escalar 5.0 se torna o vetor (5.0, 5.0, 5.0) quando a entrada maior da operação for um vetor de três elementos, independentemente de qual é a operação.

  • Se o menor tipo for um vetor e a operação for de multiplicação (*, /, % e assim por diante), então:

    O valor do vetor será copiado nos elementos à esquerda de um vetor que é igual à entrada maior e os elementos à direita serão definidos como 1.0. Por exemplo, a entrada de vetor (5.0, 5.0) se torna o vetor (5.0, 5.0, 1.0, 1.0) quando ele é multiplicado por um vetor de quatro elementos. Isso preserva o terceiro e o quarto elemento da saída usando a identidade de multiplicação, 1.0.

  • Se o menor tipo for um vetor e a operação for aditiva (+,- e assim por diante), então:

    O valor do vetor será copiado nos elementos à esquerda de um vetor que é igual à entrada maior e os elementos à direita serão definidos como 0.0. Por exemplo, a entrada de vetor (5.0, 5.0) se torna o vetor (5.0, 5.0, 0.0, 0.0) quando ele é adicionado a um vetor de quatro elementos. Isso preserva o terceiro e o quarto elemento da saída usando a identidade de adição, 0.0.

Nós e tipos de nó

O Designer de Sombreador fornece seis tipos de nós diferentes — filtros, nós de textura, parâmetros, constantes, nós de utilitário e nós de matemática — e vários nós individuais pertencem a cada tipo.

Nós de constante

No Designer do Sombreador, nós constantes representam valores literais e atributos de vértice interpolados em cálculos do sombreador de pixel. Como os atributos de vértice são interpolados — e, portanto, são diferentes para cada pixel — cada instância de sombreador de pixel recebe uma versão diferente da constante. Isso dá a cada pixel uma aparência única.

Interpolação de atributo de vértice

A imagem de uma cena 3D em um jogo ou aplicativo é feita por meio da transformação matemática de muitos objetos — definido pelos vértices, atributos de vértice e definições de primitivas — em pixels na tela. Todas as informações necessárias para dar uma aparência exclusiva a um pixel são fornecidas por meio de atributos de vértice, combinados de acordo com a proximidade do pixel para os diferentes vértices que compõem seu primitivo. Um primitivo é um elemento básico de renderização; ou seja, uma forma simples como um ponto, uma linha ou um triângulo. Um pixel muito semelhante a um dos vértices recebe constantes quase idênticas a esse vértice, mas um pixel com espaçamento uniforme entre todos os vértices de um primitivo recebe constantes que são a média desses vértices. Na programação de gráficos, as constantes que os pixels recebem são consideradas interpoladas. Fornecer dados constantes a pixels dessa maneira produz qualidade visual boa e, ao mesmo tempo, reduz a superfície de memória e os requisitos de largura de banda.

Embora cada instância de sombreador de pixel receba apenas um conjunto de valores constantes e não possa alterar esses valores, instâncias diferentes de sombreador de pixel recebem diferentes conjuntos de dados constantes. Esse design permite que um programa sombreador produza uma saída de cor diferente para cada pixel no primitivo.

Referência de nó constante

Detalhes Propriedades
Vetor de Câmera O vetor que se estende do pixel atual para a câmera no espaço de mundo.

É possível usar isso para calcular reflexões no espaço de mundo.

Saída

Output: float3
O vetor do pixel atual da câmera.
Nenhum
Constante de Cor Um valor de cor constante.

Saída

Output: float4
O valor da cor.
Saída
O valor da cor.
Constante Um valor escalar constante.

Saída

Output: float
O valor escalar.
Saída
O valor escalar.
Constante 2D Uma constante de vetor de dois componentes.

Saída

Output: float2
O valor do vetor.
Saída
O valor do vetor.
Constante 3D Uma constante de vetor de três componentes.

Saída

Output: float3
O valor do vetor.
Saída
O valor do vetor.
Constante 4D Uma constante de vetor de quatro componentes.

Saída

Output: float4
O valor da cor.
Saída
O valor do vetor.
Posição Normalizada A posição do pixel atual, expressa em coordenadas de dispositivo normalizadas.

A coordenada X e Y têm valores no intervalo de [-1, 1], a coordenada Z tem um valor no intervalo de [0, 1] e o componente w contém o valor de profundidade de ponto no espaço de modo de exibição; w não é normalizado.

Saída

Output: float4
A posição do pixel atual.
Nenhum
Ponto de cor A cor difusa do pixel atual, que é uma combinação da cor difusa do material e dos atributos de cor do vértice.

Saída

Output: float4
A cor difusa do pixel atual.
Nenhum
Profundidade do Ponto A profundidade do pixel atual no espaço de exibição.

Saída

Output: float
A profundidade do pixel atual.
Nenhum
Profundidade do Ponto Normalizado A profundidade do pixel atual, expresso em coordenadas do dispositivo normalizado.

O resultado tem um valor no intervalo [0, 1].

Saída

Output: float
A profundidade do pixel atual.
Nenhum
Posição da Tela A posição do pixel atual, expresso em coordenadas de tela.

As coordenadas de tela se baseiam no visor atual. Os componentes X e Y contêm as coordenadas de tela, o componente Z contém a profundidade normalizada a um intervalo de [0, 1] e o componente w contém o valor de profundidade no espaço de exibição.

Saída

Output: float4
A posição do pixel atual.
Nenhum
Vetor Perpendicular à Superfície O vetor perpendicular à superfície do pixel atual no espaço de objeto.

É possível usar isso para calcular as contribuições de iluminação e os reflexos no espaço de objeto.

Saída

Output: float3
A superfície normal do pixel atual.
Nenhum
Vetor de Câmera do Espaço Tangente O vetor que se estende de pixel atual para a câmera no espaço tangente.

É possível usar isso para calcular reflexões no espaço tangente.

Saída

Output: float3
O vetor do pixel atual da câmera.
Nenhum
Direção da Luz do Espaço Tangente O vetor que define a direção na qual a luz é lançada de uma fonte de luz no espaço tangente do pixel atual.

É possível usar isso para calcular as contribuições de iluminação e especulares no espaço tangente.

Saída:

Output: float3
O vetor do pixel atual para uma fonte de luz.
Nenhum
Vetor Perpendicular ao Mundo O vetor perpendicular à superfície do pixel atual no espaço de mundo.

É possível usar isso para calcular as contribuições de iluminação e os reflexos no espaço de mundo.

Saída

Output: float3
A superfície normal do pixel atual.
Nenhum
Posição do Mundo A posição do pixel atual no espaço de mundo.

Saída

Output: float4
A posição do pixel atual.
Nenhum

Nós de parâmetro

No Designer de Sombreador, os nós de parâmetro representam entradas no sombreador que estão sob o controle do aplicativo em uma base por draw, por exemplo, propriedades de material, luzes direcionais, posição da câmera e tempo. Como você pode alterar esses parâmetros a cada chamada draw, é possível usar o mesmo sombreador para conceder aparências diferentes a um objeto.

Referência do nó de parâmetro

Detalhes Propriedades
Posição mundial da câmera A posição da câmera no espaço de mundo.

Saída:

Output: float4
A posição da câmera.
Nenhum
Direção da Luz O vetor que define a direção na qual a luz é emitida de uma fonte de luz no espaço do mundo.

Você pode usar isso para calcular as contribuições de iluminação e especulares no espaço do mundo.

Saída:

Output: float3
O vetor do pixel atual para uma fonte de luz.
Nenhum
Material Ambiente A contribuição de cor difusa do pixel atual que é atribuída à iluminação indireta.

A cor de um pixel difusa simula como a iluminação interage com superfícies ásperas. Você pode usar o parâmetro Material Ambiente para calcular aproximadamente como a iluminação indireta contribui para a aparência de um objeto no mundo real.

Saída:

Output: float4
A cor difusa do pixel atual é devido à luz indireta, ou seja, ambiente.
Acesso
Public para permitir que esta propriedade possa ser configurada pelo Editor de Modelo; caso contrário, Private.

Valor
A cor difusa do pixel atual é devido à luz indireta, ou seja, ambiente.
Material Difuso Uma cor que descreve como o pixel atual difunde a iluminação direta.

A cor de um pixel difusa simula como a iluminação interage com superfícies ásperas. Você pode usar o parâmetro Material Difuso para alterar como o pixel atual difunde a iluminação direta, ou seja, bidirecional, ponto e spot lights.

Saída:

Output: float4
Uma cor que descreve como o pixel atual difunde a iluminação direta.
Acesso
Public para permitir que esta propriedade possa ser configurada pelo Editor de Modelo; caso contrário, Private.

Valor
Uma cor que descreve como o pixel atual difunde a iluminação direta.
Material Emissivo A contribuição da cor difusa do pixel atual que é atribuída à iluminação fornecido a si mesmo.

Você pode usar isso para simular um objeto brilhante, isto é, um objeto que fornece sua própria luz. Essa luz não afeta os outros objetos.

Saída:

Output: float4
A contribuição de cor do pixel atual é devido à iluminação própria.
Acesso
Public para permitir que esta propriedade possa ser configurada pelo Editor de Modelo; caso contrário, Private.

Valor
A contribuição de cor do pixel atual é devido à iluminação própria.
Material Especular Uma cor que descreve como o pixel atual reflete a iluminação direta.

A cor especular de um pixel simula como a iluminação interage com superfícies lisas e espelhadas. Você pode usar o parâmetro Material Especular para alterar como o pixel atual reflete a iluminação direta, ou seja, direcional, ponto e spot lights.

Saída:

Output: float4
Uma cor que descreve como o pixel atual reflete a iluminação direta.
Acesso
Public para permitir que esta propriedade possa ser configurada pelo Editor de Modelo; caso contrário, Private.

Valor
Uma cor que descreve como o pixel atual reflete a iluminação direta.
Material Energia Especular Um valor escalar que descreve a intensidade dos realces especulares.

Quanto maior a energia especular, mais intensa e abrangente se tornam os realces especulares.

Saída:

Output: float
O termo exponencial que define a intensidade dos realces especulares no do pixel atual.
Acesso
Public para permitir que esta propriedade possa ser configurada pelo Editor de Modelo; caso contrário, Private.

Valor
O expoente que define a intensidade dos realces especulares no pixel atual.
Tempo Normalizado O tempo, em segundos, normalizado no intervalo [0, 1], de modo que quando tempo atinge 1, ele é redefinido como 0.

Você pode usar isso como um parâmetro em cálculos de sombreamento, por exemplo, para animar coordenadas de textura, valores de cor ou outros atributos.

Saída:

Output: float
O tempo normalizado, em segundos.
Nenhum
Hora O tempo em segundos.

Você pode usar isso como um parâmetro em cálculos de sombreamento, por exemplo, para animar coordenadas de textura, valores de cor ou outros atributos.

Saída:

Output: float
O tempo em segundos.
Nenhum

Nós de textura

No Designer de Sombreador, os nós de textura coletam amostram de vários tipos de textura e geometrias e produzem ou transformam as coordenadas de textura. As texturas fornecem detalhes de cor e iluminação dos objetos.

Referência do nó de textura

Detalhes Propriedades
Amostra de Cubemap Usa uma amostra de cor de um cubemap nas coordenadas especificadas.

É possível usar um cubemap para fornecer detalhes de cor para efeitos de reflexão ou para aplicar a um objeto esférico uma textura que tem menos distorção do que uma textura 2D.

Entrada:

UVW: float3
Um vetor que especifica o local no cubo de textura em que a amostra é coletada. A amostra é coletada no ponto em que esse vetor intersecciona o cubo.

Saída:

Output: float4
A amostra de cor.
Textura
O registro de textura associado à amostra.
Amostra de mapa normal Usa uma amostra normal de um mapa normal 2D nas coordenadas especificadas

É possível usar um mapa normal para simular a aparência de detalhes geométricos adicionais na superfície de um objeto. Mapas normais contêm dados compactados que representam um vetor de unidade em vez de dados de cor

Entrada:

UV: float2
As coordenadas nas quais a amostra é coletada.

Saída:

Output: float3
A amostra normal.
Ajuste de eixo
O fator usado para ajustar a direção da amostra do mapa normal.

Textura
O registro de textura associado à amostra.
Pan UV Aplica a panorâmica às coordenadas de textura especificadas como uma função de tempo.

É possível usar essa opção para mover uma textura ou um mapa normal na superfície de um objeto.

Entrada:

UV: float2
As coordenadas às quais aplicar a panorâmica.

Time: float
O tempo durante o qual será aplicada uma panorâmica, em segundos.

Saída:

Output: float2
As coordenadas com panorâmica aplicada.
Velocidade X
O número de texels estendidos ao longo do eixo x, por segundo.

Velocidade Y
O número de texels estendido ao longo do eixo y, por segundo.
Parallax UV Desloca as coordenadas de textura especificadas como uma função de altura e um ângulo de visão.

O efeito que isso cria é conhecido como mapeamento parallax ou mapeamento de deslocamento virtual. É possível usá-lo para criar a ilusão de profundidade em uma superfície plana.

Entrada:

UV: float2
As coordenadas a serem deslocadas.

Height: float
O valor de heightmap associado às coordenadas UV.

Saída:

Output: float2
As coordenadas deslocadas.
Plano de profundidade
A profundidade de referência do efeito parallax. Por padrão, o valor é 0,5. Valores menores elevam a textura; valores maiores a afundam na superfície.

Escala de profundidade
A escala do efeito parallax. Isso torna a profundidade aparente mais ou menos acentuada. Os valores típicos variam de 0,02 a 0,1.
Girar UV Gira as coordenadas de textura especificadas em torno de um ponto central como uma função de tempo.

É possível usar essa opção para girar uma textura ou um mapa normal na superfície de um objeto.

Entrada:

UV: float2
As coordenadas a serem giradas.

Time: float
O tempo durante o qual será aplicada uma panorâmica, em segundos.

Saída:

Output: float2
As coordenadas giradas.
X central
A coordenada x que define o centro de rotação.

Y central
A coordenada y que define o centro de rotação.

Velocidade
O ângulo em radianos, pelo qual a textura gira por segundo.
Coordenada de textura As coordenadas de textura do pixel atual.

As coordenadas de textura são determinadas pela interpolação entre os atributos de coordenadas de textura de vértices próximos. É possível considerar isso como a posição do pixel atual no espaço de textura.

Saída:

Output: float2
As coordenadas de textura.
Nenhum
Dimensões de textura Gera a largura e a altura de um mapa de textura 2D.

É possível usar as dimensões de textura para considerar a largura e a altura da textura em um sombreador.

Saída:

Output: float2
A largura e a altura da textura, expressas como um vetor. A largura é armazenada no primeiro elemento do vetor. A altura é armazenada no segundo elemento.
Textura
O registro de textura associado às dimensões de textura.
Texel Delta Gera o delta (distância) entre os texels de um mapa de textura 2D.

É possível usar o texel delta para coletar amostras de valores de texel vizinhos em um sombreador.

Saída:

Output: float2
O delta (distância) de um texel até o próximo texel (movendo diagonalmente na direção positiva), expresso como um vetor no espaço de textura normalizado. É possível derivar as posições de todos os texels vizinhos ignorando ou negando seletivamente as coordenadas U ou V do delta.
Textura
O registro de textura associado ao textel delta.
Amostra de textura Usa uma amostra de cor de um mapa de textura 2D nas coordenadas especificadas.

É possível usar um mapa de textura para fornecer detalhes de cor na superfície de um objeto.

Entrada:

UV: float2
As coordenadas nas quais a amostra é coletada.

Saída:

Output: float4
A amostra de cor.
Textura
O registro de textura associado à amostra.

Nós de matemática

No Designer de Sombreador, os nós de matemática realizam álgebra, lógica, trigonometria e outras operações matemáticas.

Observação

Quando você trabalha com nós de matemática no Designer de Sombreador, a promoção de tipos é especialmente evidente. Para mais informações sobre como a promoção de tipos afeta os parâmetros de entrada, confira a seção Promoção de entradas.

Referência do nó de matemática

Detalhes Propriedades
Abs Calcula o valor absoluto da entrada especificada por componente.

Para cada componente da entrada X, os valores negativos são transformados em positivos para que cada componente do resultado tenha um valor positivo.

Entrada:

X: float, float2, float3 ou float4
Os valores para os quais determinar o valor absoluto.

Output:

Output: igual à entrada X
O valor absoluto, por componente.
Nenhum
Adicionar Calcula a soma do componente inteiro das entradas especificadas por componente.

Para cada componente do resultado, os componentes correspondentes das entradas X e Y são adicionados juntos.

Entrada:

X: float, float2, float3 ou float4
Um dos valores a ser somado.

Y: igual à entrada X
Um dos valores a ser somado.

Saída:

Output: igual à entrada X
A soma, por componente.
Nenhum
Ceil Calcula o limite máximo da entrada especificada por componente.

O limite máximo de um valor é o menor inteiro, que é maior ou igual ao valor.

Entrada:

X: float, float2, float3 ou float4
Os valores para os quais calcular o limite máximo.

Saída:

Output: igual à entrada X
O limite, por componente.
Nenhum
Clamp Prende cada componente da entrada especificada a um intervalo predefinido.

Para cada componente do resultado, os valores que estão abaixo do intervalo definido são igualados ao valor mínimo do intervalo, os valores que estão acima do intervalo definido são igualados ao valor máximo do intervalo e os valores que estão no intervalo não são alterados.

Entrada:

X: float, float2, float3 ou float4
Os valores a serem fixados.

Saída:

Output: igual à entrada X
O valor fixado, por componente.
Max
O maior valor possível no intervalo.

Min
O menor valor possível no intervalo.
Cos Calcula o cosseno da entrada especificada, em radianos, por componente.

Para cada componente do resultado, o cosseno do componente correspondente, que é fornecido em radianos, é calculado. O resultado tem componentes cujos valores estão no intervalo de [-1, 1].

Entrada:

X: float, float2, float3 ou float4
Os valores cujo cosseno será calculado, em radianos.

Saída:

Output: igual à entrada X
O cosseno, por componente.
Nenhum
Cross Calcula o produto cruzado dos vetores especificados de três componentes.

Você pode usar o produto cruzado para calcular o normal de uma superfície, que é definido por dois vetores.

Entrada:

X: float3
O vetor à esquerda do produto cruzado.

Y: float3
O vetor à direita do produto cruzado.

Saída:

Output: float3
O produto cruzado.
Nenhum
Distância Calcula a distância entre pontos especificados.

O resultado é um valor escalar positivo.

Entrada:

X: float, float2, float3 ou float4
Um dos pontos entre os quais a distância será determinada.

Y: igual à entrada X
Um dos pontos entre os quais a distância será determinada.

Saída:

Output: igual à entrada X
A distância.
Nenhum
Divide Calcula o quociente do componente inteiro das entradas especificadas.

Para cada componente do resultado, o componente correspondente da entrada X é dividido pelo componente correspondente da entrada Y.

Entrada:

X: float, float2, float3 ou float4
Os valores do dividendo.

Y: igual à entrada X
Os valores do divisor.

Saída:

Output: igual à entrada X
O quociente, por componente.
Nenhum
Ponto Calcula o produto de ponto dos vetores especificados.

O resultado é um valor escalar. Você pode usar o produto de ponto para determinar o ângulo entre dois vetores.

Entrada:

X: float, float2, float3 ou float4
Um dos termos.

Y: igual à entrada X
Um dos termos.

Saída:

Output: float
O produto escalar.
Nenhum
Floor Calcula a base da entrada especificada por componente.

Para cada componente do resultado, seu valor é o maior valor de inteiro, que é menor ou igual ao componente correspondente da entrada. Cada componente do resultado é um inteiro.

Entrada:

X: float, float2, float3 ou float4
Os valores para os quais calcular a base.

Saída:

Output: igual à entrada X
A base, por componente.
Nenhum
Fmod Calcula o módulo do componente inteiro (sobra) das entradas especificadas.

Para cada componente do resultado, alguns múltiplos integrais (número inteiro), m, do componente correspondente da entrada Y são subtraídos do componente correspondente da entrada X, deixando uma sobra. O múltiplo, m, é escolhido, de modo que a sobra seja menor que o componente correspondente da entrada Y e tenha o mesmo sinal que o componente correspondente da entrada X. Por exemplo, fmod(-3,14, 1,5) é -0,14.

Entrada:

X: float, float2, float3 ou float4
Os valores do dividendo.

Y: igual à entrada X
Os valores do divisor.

Saída:

Output: igual à entrada X
O módulo, por componente.
Nenhum
Frac Remove a parte integral de (número inteiro) da entrada especificada por componente.

Para cada componente do resultado, a parte integral do componente correspondente da entrada é removida, mas a parte fracionária e o sinal são mantidos. Esse valor fracionário cai no intervalo [0, 1). Por exemplo, o valor -3,14 se torna o valor -0,14.

Entrada:

X: float, float2, float3 ou float4
Os valores para os quais calcular a parte fracionária.

Saída:

Output: igual à entrada X
A parte fracionária, por componente.
Nenhum
Lerp Interpolação linear. Calcula a média ponderada do componente inteiro das entradas especificadas.

Para cada componente do resultado, a média ponderada dos componentes correspondentes das entradas X e Y. O peso é fornecido por Percent, um escalar e é aplicado de modo uniforme a todos os componentes. Você pode usá-lo para fazer a interpolação entre pontos, cores, atributos e outros valores.

Entrada:

X: float, float2, float3 ou float4
O valor de origem. Quando Percent for zero, o resultado será igual a essa entrada.

Y: igual à entrada X
O valor do terminal. Quando Percent for um, o resultado será igual a essa entrada.

Percent: float
Um peso escalar que é expresso como um percentual da distância da entrada X em direção à entrada Y.

Saída:

Output: igual à entrada X
Um valor que é colinear com as entradas especificadas.
Nenhum
Multiplicar Adição Calcula a operação multiply-add do componente inteiro das entradas especificadas.

Para cada componente do resultado, o produto dos componentes correspondentes das entradas M e A é adicionado ao componente correspondente da entrada B. Essa sequência de operação é encontrada em fórmulas comuns — por exemplo, na fórmula do ponto inclinação de uma linha e na fórmula para dimensionar e, então, desviar uma entrada.

Entrada:

M: float, float2, float3 ou float4
Um dos valores a serem multiplicados juntos.

A: igual à entrada M
Um dos valores a serem multiplicados juntos.

B: igual à entrada M
Os valores para adicionar o produto das duas entradas.

Saída:

Output: igual à entrada M
O resultado da operação multiply-add, por componente.
Nenhum
Max Calcula o máximo do componente inteiro das entradas especificadas.

Para cada componente do resultado, o maior dos componentes correspondentes das entradas é escolhido.

Entrada:

X: float, float2, float3 ou float4
Um dos valores para o qual calcular o máximo.

Y: igual à entrada X
Um dos valores para o qual calcular o máximo.

Saída:

Output: igual à entrada X
O valor máximo, por componente.
Nenhum
Min Calcula o mínimo do componente inteiro das entradas especificadas.

Para cada componente do resultado, o menor dos componentes correspondentes das entradas é escolhido.

Entrada:

X: float, float2, float3 ou float4
Um dos valores para o qual calcular o mínimo.

Y: igual à entrada X
Um dos valores para o qual calcular o mínimo.

Saída:

Output: igual à entrada X
O valor mínimo, por componente.
Nenhum
Multiply Calcula o produto do componente inteiro das entradas especificadas.

Para cada componente do resultado, os componentes correspondentes das entradas X e Y são multiplicados juntos.

Entrada:

X: float, float2, float3 ou float4
Um dos valores a serem multiplicados juntos.

Y: igual à entrada X
Um dos valores a serem multiplicados juntos.

Saída:

Output: igual à entrada X
O produto, por componente.
Nenhum
Normalizar Normaliza o vetor especificado.

Um vetor normalizado retém a direção do vetor original, mas não sua magnitude. Você pode usar vetores normalizados para simplificar cálculos, nos quais a magnitude de um vetor não é importante.

Entrada:

X: float2, float3 ou float4
O vetor a ser normalizado.

Saída:

Output: igual à entrada X
O vetor normalizado.
Nenhum
Um Menos Calcula a diferença entre 1 e a entrada especificada por componente.

Para cada componente do resultado, o componente correspondente da entrada é subtraído de 1.

Entrada:

X: float, float2, float3 ou float4
Os valores a serem subtraídos de 1.

Saída:

Output: igual à entrada X
A diferença entre 1 e a entrada especificada, por componente.
Nenhum
Energia Calcula a exponenciação do componente inteiro (potência) das entradas especificadas.

Para cada componente do resultado, o componente correspondente da entrada X é elevado à potência do componente correspondente da entrada Y.

Entrada:

X: float, float2, float3 ou float4
Os valores de base

Y: igual à entrada X
Os valores do expoente.

Saída:

Output: igual à entrada X
A exponenciação, por componente.
Nenhum
Saturar Prende cada componente da entrada especificada ao intervalo [0, 1].

Você pode usar esse intervalo para representar os percentuais e outras medições relativas em cálculos. Para cada componente do resultado, os valores correspondentes do componente de entrada menores que 0 são igualados a 0, os valores maiores que 1 são igualados a 1 e os valores que estão no intervalo não são alterados.

Entrada:

X: float, float2, float3 ou float4
Os valores a serem saturados.

Saída:

Output: igual à entrada X
O valor saturado, por componente.
Nenhum
Sin Calcula o seno da entrada especificada, em radianos, por componente.

Para cada componente do resultado, o seno do componente correspondente, que é fornecido em radianos, é calculado. O resultado tem componentes cujos valores estão no intervalo [-1, 1].

Entrada:

X: float, float2, float3 ou float4
Os valores para calcular o seno, em radianos.

Saída:

Output: igual à entrada X
O seno, por componente.
Nenhum
Sqrt Calcula a raiz quadrada da entrada especificada, por componente.

Para cada componente do resultado, a raiz quadrada do componente correspondente é calculada.

Entrada:

X: float, float2, float3 ou float4
Os valores para os quais calcular a raiz quadrada.

Saída:

Output: igual à entrada X
A raiz quadrada, por componente.
Nenhum
Subtract Calcula a diferença do componente inteiro das entradas especificadas.

Para cada componente do resultado, o componente correspondente da entrada Y é subtraído do componente correspondente da entrada X. Você pode usá-lo para calcular o vetor que se estende da primeira entrada para a segunda.

Entrada:

X: float, float2, float3 ou float4
Os valores a serem subtraídos.

Y: igual à entrada X
Os valores a serem subtraídos da entrada X.

Saída:

Output: igual à entrada X
A diferença, por componente.
Nenhum
Transformar Vetor 3D Transforma o vetor 3D especificado em um espaço diferente.

Você pode usar essa opção para colocar pontos ou vetores em um espaço comum para que você possa usá-los para executar cálculos significativos.

Entrada:

Vector: float3
O vetor a ser transformado.

Saída:

Output: float3
O vetor transformado.
Do Sistema
O espaço nativo do vetor.

Para o Sistema
O espaço no qual transformar o vetor.

Nós de utilitário

No Designer de Sombreador, nós de utilitário representam cálculos comuns e úteis de sombreador que não se enquadram em outras categorias. Alguns nós de utilitário realizam operações simples como acrescentar vetores ou escolher resultados condicionalmente; outros executam operações complexas, como calcular contribuições de iluminação de acordo com modelos populares de iluminação.

Referência do nó de utilitário

Detalhes Propriedades
Vetor de Acréscimo Cria um vetor acrescentando as entradas especificadas.

Entrada:

Vector: float, float2 ou float3
Os valores a se acrescentar.

Value to Append: float
O valor a ser acrescentado.

Saída:

Output: float2, float3 ou float4 dependendo do tipo de entrada Vector
O novo vetor.
Nenhum
Fresnel Calcula a queda de Fresnel com base no vetor perpendicular à superfície especificado.

O valor da queda de Fresnel expressa a proximidade do vetor perpendicular à superfície do pixel atual ao vetor de exibição. Quando os vetores estão alinhados, o resultado da função é 0; o resultado aumenta à medida que os vetores se tornam menos semelhantes e atingem o máximo quando os vetores são ortogonais. Você pode usar esses vetores para tornar um efeito mais ou menos aparente com base na relação entre a orientação do pixel atual e da câmera.

Entrada:

Surface Normal: float3
O vetor perpendicular à superfície do pixel atual, definido no espaço tangente do pixel atual. É possível usar isso para perturbar vetor perpendicular à superfície aparente, como no mapeamento normal.

Saída:

Output: float
A reflexibilidade do pixel atual.
Expoente
O expoente usado para calcular a queda do Fresnel.
If De forma condicional, escolhe um dos três resultados possíveis por componente. A condição é definida pela relação entre duas outras entradas especificadas.

Para cada componente do resultado, o componente correspondente de um dos três resultados possível é escolhido, com base na relação entre os componentes correspondentes das duas primeiras entradas.

Entrada:

X: float, float2, float3 ou float4
O valor do lado esquerdo a se comparar.

Y: mesmo tipo como entrada X
O valor do lado direito a se comparar.

X > Y: mesmo tipo como entrada X
Os valores escolhidos quando X é maior do que Y.

X = Y: mesmo tipo como entrada X
Os valores escolhidos quando X é igual a Y.

X < Y: mesmo tipo como entrada X
Os valores escolhidos quando X é menor que Y.

Saída:

Output: float3
O resultado escolhido, por componente.
Nenhum
Lambert Calcula a cor do pixel atual de acordo com o modelo de iluminação de Lambert, usando o vetor perpendicular à superfície especificado.

Essa cor é a soma da cor ambiente e contribuições de iluminação difusa em luminosidade direta. A cor ambiente aproxima a contribuição total da luminosidade indireta, mas parece simples e fosca sem a ajuda de iluminação adicional. A iluminação difusa ajuda a adicionar forma e a profundidade a um objeto.

Entrada:

Surface Normal: float3
O vetor perpendicular à superfície do pixel atual, definido no espaço tangente do pixel atual. É possível usar isso para perturbar vetor perpendicular à superfície aparente, como no mapeamento normal.

Diffuse Color: float3
A cor difusa do pixel atual, normalmente o Ponto de Cor. Se nenhuma entrada for fornecida, o valor padrão será branco.

Saída:

Output: float3
A cor difusa do pixel atual.
Nenhum
Vetor de Máscara Componentes de máscaras de vetor especificado.

É possível usá-lo para remover canais de cores específicos de um valor de cor ou para impedir que componentes específicos tenham um efeito em cálculos subsequentes.

Entrada:

Vector: float4
O vetor a ser mascarado.

Saída:

Output: float4
O vetor mascarado.
Vermelho / X
False para mascarar o componente vermelho (x); caso contrário, True.

Verde / Y
False para mascarar o componente verde (y); caso contrário, True.

Azul / Z
False para mascarar o componente azul (z); caso contrário, True.

Alfa / W
False para mascarar o componente alfa (w); caso contrário, True.
Vetor de Reflexão Calcula o vetor de reflexão do pixel atual no espaço tangente, com base na posição da câmera.

Pode ser usado para calcular reflexões, coordenadas de cubemap e contribuições de iluminação especular

Entrada:

Tangent Space Surface Normal: float3
O vetor perpendicular à superfície do pixel atual, definido no espaço tangente do pixel atual. É possível usar isso para perturbar vetor perpendicular à superfície aparente, como no mapeamento normal.

Saída:

Output: float3
O vetor de reflexão.
Nenhum
Especular Calcula a contribuição de iluminação especular acordo com o modelo de iluminação de Phong, usando o vetor perpendicular à superfície especificado.

A iluminação especular dá uma aparência brilhante e refletora a um objeto, por exemplo, água, plástico ou metais.

Entrada:

Surface Normal: float3
O vetor perpendicular à superfície do pixel atual, definido no espaço tangente do pixel atual. É possível usar isso para perturbar vetor perpendicular à superfície aparente, como no mapeamento normal.

Saída:

Output: float3
A contribuição de cor de realces especulares.
Nenhum

Nós de filtro

No Designer de Sombreador, nós de filtro transformam uma entrada — por exemplo, uma amostra de cor ou textura — em um valor de cor figurativo. Esses valores de cor figurativos normalmente são usados na renderização não fotorrealista ou como componentes de outros efeitos visuais.

Referência do nó de filtro

Detalhes Propriedades
Desfoque Desfoca os pixels em uma textura usando uma função gaussiana.

É possível usá-lo para reduzir o ruído ou os detalhes de cor em uma textura.

Entrada:

UV: float2
As coordenadas o texel a ser testado.

Saída:

Output: float4
O valor da cor desfocada.
Textura
O registro de textura associado à amostra usada durante o desfoque.
Remover Saturação Reduz a quantidade de cor na cor especificada.

Conforme a cor é removida, o valor da cor se aproxima de seu equivalente na escala de cinza.

Entrada:

RGB: float3
A cor cuja saturação será removida.

Percent: float
A porcentagem de cor a ser removida, expressa como um valor normalizado no intervalo [0, 1].

Saída:

Output: float3
A cor cuja saturação foi removida.
Luminância
Os pesos dados aos componentes de cor vermelho, verde e azul.
Detecção de Borda Detecta bordas em uma textura usando um detector de bordas de Canny. Os pixels da borda são transformados em branco e os pixels que não são da borda são transformados em preto.

É possível usá-lo para identificar bordas em uma textura para que você possa usar efeitos adicionais para tratar os pixels da borda.

Entrada:

UV: float2
As coordenadas o texel a ser testado.

Saída:

Output: float4
Branco se o texel estiver em uma borda; caso contrário, preto.
Textura
O registro de textura que está associado à amostra usada durante a detecção de borda.
Ajustar Nitidez Ajusta a nitidez de uma textura.

É possível usá-lo para destacar os detalhes de uma textura.

Entrada:

UV: float2
As coordenadas o texel a ser testado.

Saída:

Output: float4
O valor da cor desfocada.
Textura
O registro de textura associado à amostra usada durante o ajuste de nitidez.

Próximas etapas

Para saber mais, confira, Criar sombreadores com o Designer do Sombreador no Visual Studio.