Nœuds du concepteur ShaderShader Designer Nodes

Les articles de cette section de la documentation contiennent des informations sur les différents nœuds du concepteur Shader pour créer des effets graphiques.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œuds et types de nœudsNodes and node types

Le concepteur Shader représente des effets visuels sous forme de graphique.The Shader Designer represents visual effects as a graph. Ces graphiques sont générés à partir de nœuds spécifiquement sélectionnés et connectés de façon précise afin d’obtenir l’effet prévu.These graphs are built from nodes that are specifically chosen and connected in precise ways to achieve the intended affect. Chaque nœud représente une information ou une fonction mathématique, et les connexions entre elles représentent le flux d’informations dans le graphique pour produire le résultat.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. Le concepteur Shader fournit six types de nœuds différents (filtres, nœuds de texture, paramètres, constantes, nœuds d’utilitaire et nœuds mathématiques). Plusieurs nœuds individuels appartiennent à chaque type.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. Ces nœuds et types de nœuds sont décrits dans les autres articles dans cette section. Consultez les liens à la fin de ce document.These nodes and node types are described in the other articles in this section—see the links at the end of this document.

Structure de nœudsNode structure

Tous les nœuds sont composés d’une combinaison d’éléments communs.All nodes are made up of a combination of common elements. Chaque nœud a au moins un terminal de sortie sur son côté droit (sauf le nœud de couleur finale, qui représente la sortie du nuanceur).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). Les nœuds qui représentent des calculs ou des échantillonneurs de texture ont des terminaux d’entrée sur leur côté gauche, mais les nœuds qui représentent des informations n’ont aucun terminal d’entrée.Nodes that represent calculations or texture samplers have input terminals on their left-hand sides, but nodes that represent information have no input terminals. Les terminaux de sortie sont connectés aux terminaux d’entrée pour déplacer des informations d’un nœud vers un autre.Output terminals are connected to input terminals to move information from one node to another.

Promotion des entréesPromotion of inputs

Comme le concepteur Shader doit finalement générer le code source HLSL afin que l’effet puisse être utilisé dans un jeu ou une application, les nœuds du concepteur Shader sont soumis aux règles de la promotion de type utilisées par 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. Comme le matériel graphique s’exécute principalement sur des valeurs à virgule flottante, une promotion de type entre différents types, par exemple entre int et float ou entre float et double, est rare.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. Au lieu de cela, étant donné que le matériel graphique utilise la même opération simultanée sur plusieurs informations, un type différent de promotion peut se produire dans lequel le nombre le plus court d’entrées est rallongé pour le faire correspondre à la taille de l’entrée la plus longue.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 façon dont il est rallongé dépend du type de l’entrée et également de l’opération proprement dite :How it is lengthened depends on the type of the input, and also on the operation itself:

  • Si le plus petit type est une valeur scalaire, alors :If the smaller type is a scalar value, then:

    La valeur scalaire est répliquée dans un vecteur dont la taille est égale à l’entrée la plus grande.The value of the scalar is replicated into a vector that is equal in size to the larger input. Par exemple, l’entrée scalaire 5.0 devient le vecteur (5.0, 5.0, 5.0) quand la plus grande entrée de l’opération est un vecteur à trois éléments, indépendamment des caractéristiques de l’opération.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 le plus petit type est un vecteur et que l’opération relève d’une multiplication (*, /, %, etc.), alors :If the smaller type is a vector, and the operation is multiplicative (*, /, %, and so on), then:

    La valeur du vecteur est copiée dans les éléments de début d’un vecteur dont la taille est égale à l’entrée la plus grande, et les éléments de fin sont définis sur 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. Par exemple, l’entrée vectorielle (5.0, 5.0) devient le vecteur (5.0, 5.0, 1.0, 1.0) lors d’une multiplication par un vecteur à quatre éléments.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. Cela permet de conserver le troisième et le quatrième éléments de la sortie à l’aide de l’identité de multiplication, 1.0.This preserves the third and fourth elements of the output by using the multiplicative identity, 1.0.

  • Si le plus petit type est un vecteur et que l’opération relève d’une addition (+, -, etc.), alors :If the smaller type is a vector, and the operation is additive (+, -, and so on), then:

    La valeur du vecteur est copiée dans les éléments de début d’un vecteur dont la taille est égale à l’entrée la plus grande, et les éléments de fin sont définis sur 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. Par exemple, l’entrée vectorielle (5.0, 5.0) devient le vecteur (5.0, 5.0, 0.0, 0.0) lors d’un ajout à un vecteur à quatre éléments.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. Cela permet de conserver le troisième et le quatrième éléments de la sortie à l’aide de l’identité d’addition, 0.0.This preserves the third and fourth elements of the output by using the additive identity, 0.0.

TitreTitle DescriptionDescription
Nœuds de constanteConstant Nodes Décrit les nœuds que vous pouvez utiliser pour représenter des valeurs littérales et des informations d’état de vertex interpolées dans les calculs de nuanceurs.Describes nodes that you can use to represent literal values and interpolated vertex-state information in shader calculations. Comme l’état de vertex est interpolé, et donc différent pour chaque pixel, chaque instance du nuanceur de pixels reçoit une version différente 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.
Nœuds de paramètreParameter Nodes Décrit les nœuds que vous pouvez utiliser pour représenter la position de l’appareil-photo, les propriétés matérielles, les paramètres d’éclairage, l’heure et d’autres informations sur l’état de l’application dans les calculs de nuanceurs.Describes nodes that you can use to represent camera position, material properties, lighting parameters, time, and other app-state information in shader calculations.
Nœuds de textureTexture Nodes Décrit les nœuds que vous pouvez utiliser pour échantillonner différents types de texture, ainsi que des géométries, et pour produire ou transformer des coordonnées de texture avec des techniques courantes.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œuds mathématiquesMath Nodes Décrit les nœuds que vous pouvez utiliser pour effectuer des opérations d’algèbre, de logique, de trigonométrie, et d’autres opérations mathématiques qui correspondent directement aux instructions HLSL.Describes the nodes that you can use to perform algebraic, logic, trigonometric, and other mathematical operations that map directly to HLSL instructions.
Nœuds utilitairesUtility Nodes Décrit les nœuds que vous pouvez utiliser pour exécuter des calculs d’éclairage courants et d’autres opérations courantes qui ne correspondent pas directement aux instructions 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œuds de filtreFilter Nodes Décrit les nœuds que vous pouvez utiliser pour effectuer le filtrage de la texture et le filtrage des couleurs.Describes the nodes that you can use to perform texture filtering and color filtering.