Nodos del Diseñador de sombrasShader Designer nodes

Los artículos de esta sección de la documentación contienen información sobre los distintos nodos del Diseñador de sombras que puede usar para crear efectos 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.

Nodos y tipos de nodoNodes and node types

El Diseñador de sombras representa los efectos visuales como un gráfico.The Shader Designer represents visual effects as a graph. Estos gráficos se compilan a partir de nodos que se eligen de manera específica y se conectan de forma precisa para lograr el efecto buscado.These graphs are built from nodes that are specifically chosen and connected in precise ways to achieve the intended effect. 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.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. 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.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. En el resto de los artículos de esta sección se describen estos nodos y tipos de nodo.These nodes and node types are described in the other articles in this section. Para obtener más información, vea los vínculos del final de este documento.For more information, see the links at the end of this document.

Estructura de los nodosNode structure

Todos los nodos se componen de una combinación de elementos comunes.All nodes are made up of a combination of common elements. 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).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). 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.Nodes that represent calculations or texture samplers have input terminals on their left-hand sides, but nodes that represent information have no input terminals. Las terminales de salida se conectan a las terminales de entrada para mover información de un nodo a otro.Output terminals are connected to input terminals to move information from one node to another.

Promoción de entradasPromotion of inputs

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.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 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.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. 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 varias entradas se alarga para que coincida con el tamaño de la entrada más larga.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. La forma en que se alargue depende del tipo de la entrada y también de la propia operación:How it is lengthened depends on the type of the input, and also on the operation itself:

  • Si el tipo más pequeño es un valor escalar, entonces:If the smaller type is a scalar value, then:

    el valor de la expresión escalar se replica en un vector que es del mismo tamaño que la entrada más grande.The value of the scalar is replicated into a vector that is equal in size to the larger input. 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.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.

  • Si el tipo más pequeño es un vector y la operación es de multiplicación (*, /, %, etc.), entonces:If the smaller type is a vector, and the operation is multiplicative (*, /, %, and so on), then:

    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.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 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.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. Esto conserva el tercer y cuarto elemento de la salida mediante el uso de la identidad de multiplicación, 1,0.This preserves the third and fourth elements of the output by using the multiplicative identity, 1.0.

  • Si el tipo más pequeño es un vector y la operación es de suma (+, -, etc.), entonces:If the smaller type is a vector, and the operation is additive (+, -, and so on), then:

    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.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 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.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. Esto conserva el tercer y cuarto elemento de la salida mediante el uso de la identidad de suma, 0,0.This preserves the third and fourth elements of the output by using the additive identity, 0.0.

TitleTitle DescripciónDescription
Nodos de constanteConstant nodes Describe los nodos que se pueden usar para representar valores literales y la información de estado de vértice interpolada en los cálculos del sombreador.Describes nodes that you can use to represent literal values and interpolated vertex-state information in shader calculations. Como el estado de los vértices se interpola, y por tanto es diferente para cada píxel, cada instancia de sombreador de píxeles recibe una versión diferente de la constante.Because vertex-state is interpolated—and therefore, is different for each pixel—each pixel-shader instance receives a different version of the constant.
Nodos de parámetrosParameter nodes Describe los nodos que se pueden usar para representar la posición de la cámara, propiedades de los materiales, parámetros de iluminación, hora y otra información de estado de la aplicación en los cálculos del sombreador.Describes nodes that you can use to represent camera position, material properties, lighting parameters, time, and other app-state information in shader calculations.
Nodos de texturaTexture nodes Describe los nodos que se pueden usar para muestrear diversos tipos de textura y geometrías, y formas habituales de generar o transformar las coordenadas de textura.Describes the nodes that you can use to sample various texture types and geometries, and to produce or transform texture coordinates in common ways.
Nodos matemáticosMath nodes Describe los nodos que se pueden usar para realizar operaciones algebraicas, lógicas, trigonométricas y otras operaciones matemáticas que se asignan directamente a las instrucciones de HLSL.Describes the nodes that you can use to perform algebraic, logic, trigonometric, and other mathematical operations that map directly to HLSL instructions.
Nodos de utilidadUtility nodes Describe los nodos que se pueden usar para realizar operaciones de iluminación y otras operaciones comunes que no se asignan directamente a las instrucciones de 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.
Nodos de filtroFilter nodes Describe los nodos que se pueden usar para realizar el filtrado de textura y de color.Describes the nodes that you can use to perform texture filtering and color filtering.