Nós do Designer de SombreadorShader Designer nodes

Os artigos nesta seção da documentação contêm informações sobre os vários nós do Designer de Sombreador que você pode usar para criar efeitos gráficos.The articles in this section of the documentation contain information about the various Shader Designer nodes that you can use to create graphics effects.

Nós e tipos de nóNodes and node types

O Designer de Sombreador representa os efeitos visuais, como um grafo.The Shader Designer represents visual effects as a graph. Esses grafos são criados com base em nós especificamente escolhidos e conectados de formas precisas, a fim de obter o efeito desejado.These graphs are built from nodes that are specifically chosen and connected in precise ways to achieve the intended effect. 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.Each node represents either a piece of information or a mathematical function, and the connections between them represent how the information flows through the graph to produce the result. 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.The Shader Designer provides six different node types—filters, texture nodes, parameters, constants, utility nodes, and math nodes—and several individual nodes belong to each type. Esses nós e os tipos de nó são descritos nos outros artigos desta seção.These nodes and node types are described in the other articles in this section. Para obter mais informações, confira os links ao final deste documento.For more information, see the links at the end of this document.

Estrutura de nóNode structure

Todos os nós são compostos de uma combinação de elementos comuns.All nodes are made up of a combination of common elements. 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).Every node has at least one output terminal on its right-hand side (except the final color node, which represents the output of the shader). 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.Nodes that represent calculations or texture samplers have input terminals on their left-hand sides, but nodes that represent information have no input terminals. Terminais de saída estão conectados a terminais de entrada para mover informações de um nó para outro.Output terminals are connected to input terminals to move information from one node to another.

Promoção de entradasPromotion of inputs

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.Because the Shader Designer must ultimately generate HLSL source code so that the effect can be used in a game or app, Shader Designer nodes are subject to the type-promotion rules that HLSL uses. 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.Because graphics hardware operates primarily on floating-point values, type promotion between different types—for example, from int to float, or from float to double—is uncommon. 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 um número de entradas é aumentado para corresponder ao tamanho da entrada maior.Instead, because graphics hardware uses the same operation on multiple pieces of information at once, a different kind of promotion can occur in which the shorter of a number of inputs is lengthened to match the size of the longest input. A forma como o aumento é feito depende do tipo de entrada e também da própria operação:How it is lengthened depends on the type of the input, and also on the operation itself:

  • Se o menor tipo for um valor escalar, então:If the smaller type is a scalar value, then:

    O valor escalar será replicado em um vetor que é igual à entrada maior.The value of the scalar is replicated into a vector that is equal in size to the larger input. 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.For example, the scalar input 5.0 becomes the vector (5.0, 5.0, 5.0) when the largest input of the operation is a three-element vector, regardless of what the operation is.

  • Se o menor tipo for um vetor e a operação for de multiplicação (*, /, % e assim por diante), então:If the smaller type is a vector, and the operation is multiplicative (*, /, %, and so on), then:

    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.The value of the vector is copied into the leading elements of a vector that is equal in size to the larger input, and the trailing elements are set to 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.For example, the vector input (5.0, 5.0) becomes the vector (5.0, 5.0, 1.0, 1.0) when it's multiplied by a four-element vector. Isso preserva o terceiro e o quarto elemento da saída usando a identidade de multiplicação, 1.0.This preserves the third and fourth elements of the output by using the multiplicative identity, 1.0.

  • Se o menor tipo for um vetor e a operação for aditiva (+,- e assim por diante), então:If the smaller type is a vector, and the operation is additive (+, -, and so on), then:

    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.The value of the vector is copied into the leading elements of a vector that is equal in size to the larger input, and the trailing elements are set to 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.For example, the vector input (5.0, 5.0) becomes the vector (5.0, 5.0, 0.0, 0.0) when it's added to a four-element vector. Isso preserva o terceiro e o quarto elemento da saída usando a identidade de adição, 0.0.This preserves the third and fourth elements of the output by using the additive identity, 0.0.

TítuloTitle DescriçãoDescription
Nós de constanteConstant nodes Descreve nós que você pode usar para representar valores literais e informações de estado de vértice interpoladas em cálculos do sombreador.Describes nodes that you can use to represent literal values and interpolated vertex-state information in shader calculations. Como o estado do vértice é interpolado — e, portanto, é diferente para cada pixel — cada instância de sombreador de pixel recebe uma versão diferente da constante.Because vertex-state is interpolated—and therefore, is different for each pixel—each pixel-shader instance receives a different version of the constant.
Nós de parâmetroParameter nodes Descreve nós que você pode usar para representar a posição da câmera, as propriedades de material, os parâmetros de iluminação, a hora e outras informações de estado do aplicativo em cálculos do sombreador.Describes nodes that you can use to represent camera position, material properties, lighting parameters, time, and other app-state information in shader calculations.
Nós de texturaTexture nodes Descreve os nós que você pode usar para amostragem de vários tipos de texturas e geometrias, e para produzir ou transformar as coordenadas de textura de maneiras comuns.Describes the nodes that you can use to sample various texture types and geometries, and to produce or transform texture coordinates in common ways.
Nós de matemáticaMath nodes Descreve os nós que você pode usar para executar operações algébricas, lógicas, trigonométricas e outras operações matemáticas que mapeiam diretamente até as instruções do HLSL.Describes the nodes that you can use to perform algebraic, logic, trigonometric, and other mathematical operations that map directly to HLSL instructions.
Nós de utilitárioUtility nodes Descreve os nós que você pode usar para executar cálculos de iluminação comuns e outras operações comuns que não mapeiam diretamente até as instruções do HLSL.Describes the nodes that you can use to perform common lighting calculations and other common operations that do not map directly to HLSL instructions.
Nós de filtroFilter nodes Descreve os nós que você pode usar para executar a filtragem de textura e de cor.Describes the nodes that you can use to perform texture filtering and color filtering.