Que sont les nœuds du Concepteur de nuanceur ?
Le Concepteur de nuanceur dans Visual Studio correspond à des effets visuels sous forme de graphique. Ces graphiques sont générés à partir de nœuds choisis et connectés de façon précise afin d’obtenir l’effet prévu. 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. Les types de nœuds incluent des filtres, des textures, des paramètres, des constantes, des nœuds utilitaires et des nœuds mathématiques.
Structure de nœuds
Tous les nœuds sont composés d’une combinaison d’éléments communs. 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). 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. Les terminaux de sortie sont connectés aux terminaux d’entrée pour déplacer des informations d’un nœud vers un autre.
Promotion des entrées
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. 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. Comme le matériel graphique utilise la même opération simultanée sur plusieurs informations, un type différent de promotion peut se produire à la place dans lequel le nombre le plus court d’entrées est allongé pour le faire correspondre à la taille de l’entrée la plus longue. La façon dont il est allongé dépend du type de l’entrée et également de l’opération proprement dite :
Si le plus petit type est une valeur scalaire, alors :
La valeur scalaire est répliquée dans un vecteur dont la taille est égale à l’entrée la plus grande. 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.
Si le plus petit type est un vecteur et que l’opération relève d’une multiplication (*, /, %, etc.), alors :
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. 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. 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.
Si le plus petit type est un vecteur et que l’opération relève d’une addition (+, -, etc.), alors :
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. 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. 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.
Nœuds et types de nœuds
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.
Nœuds de constantes
Dans le concepteur de nuanceur, les nœuds de constante représentent les valeurs littérales et les attributs de sommets interpolés dans les calculs de nuanceur de pixels. Comme les attributs de sommets sont interpolés (et donc différents pour chaque pixel), chaque instance de nuanceur de pixels reçoit une version différente de la constante. Ce faisant, chaque pixel a une apparence unique.
Interpolation des attributs de sommets
L’image d’une scène 3D de jeu ou d’application est réalisée en transformant mathématiquement plusieurs objets, qui sont définis par des sommets, des attributs de sommets et des définitions de primitives, en pixels à l’écran. Toutes les informations requises pour donner à un pixel son apparence unique sont fournies par le biais des attributs de sommets, qui sont fusionnés en fonction de la proximité du pixel avec les différents sommets qui composent sa primitive. Une primitive est un élément de rendu de base, autrement dit, une forme simple comme un point, une ligne ou un triangle. Un pixel très proche d’un des sommets reçoit des constantes qui sont pratiquement identiques à ce sommet, mais un pixel espacé uniformément entre tous les sommets d’une primitive reçoit des constantes qui sont la moyenne de ces sommets. Dans la programmation des graphiques, les constantes que les pixels reçoivent sont dites interpolées. La fourniture de données de constantes en pixels de cette façon permet de créer une très bonne qualité visuelle tout en réduisant l’empreinte mémoire et les besoins en bande passante.
Ben que chaque instance de nuanceur de pixels ne reçoive qu’un jeu de valeurs de constantes et ne puisse pas modifier ces dernières, des instances de nuanceur de pixels distinctes reçoivent des jeux de données de constantes différents. Cette conception permet à un programme nuanceur de produire une sortie couleur différente pour chaque pixel de la primitive.
Informations de référence des nœuds de constante
Nœud | Détails | Propriétés |
---|---|---|
Vecteur d’appareil photo | Vecteur qui s’étend du pixel actuel à l’appareil photo dans l’espace universel. Vous pouvez l’utiliser pour calculer les réflexions dans l’espace universel. Sortie Output : float3 Vecteur du pixel actuel à l’appareil photo. |
None |
Constante de couleur | Valeur de constante de couleur. Sortie Output : float4 Valeur de la couleur. |
Sortie Valeur de la couleur. |
Constant | Valeur scalaire de constante. Sortie Output : float Valeur scalaire. |
Sortie Valeur scalaire. |
Constante 2D | Constante vectorielle à deux composants. Sortie Output : float2 Valeur vectorielle. |
Sortie Valeur vectorielle. |
Constante 3D | Constante vectorielle à trois composants. Sortie Output : float3 Valeur vectorielle. |
Sortie Valeur vectorielle. |
Constante 4D | Constante vectorielle à quatre composants. Sortie Output : float4 Valeur de la couleur. |
Sortie Valeur vectorielle. |
Position normalisée | Position du pixel actuel, exprimée en coordonnées normalisées de l’appareil. Les valeurs de l’axe des abscisses et de l’axe des x sont comprises dans la plage [-1, 1], la valeur de l’abscisse z est comprise dans la plage [0, 1] et le composant w contient la valeur de la profondeur de point dans l’espace d’affichage ; w n’est pas normalisé. Sortie Output : float4 Position du pixel actuel. |
None |
Couleur du point | Couleur diffuse du pixel actuel, qui est une combinaison des attributs de couleur diffuse de matériau et de couleur de sommet. Sortie Output : float4 Couleur diffuse du pixel actuel. |
None |
Profondeur de point | Profondeur du pixel actuel dans l’espace d’affichage. Sortie Output : float Profondeur du pixel actuel. |
None |
Profondeur de point normalisée | Profondeur du pixel actuel, exprimée en coordonnées normalisées de l’appareil. La valeur du résultat est comprise dans la plage [0, 1]. Sortie Output : float Profondeur du pixel actuel. |
None |
Position à l’écran | Position du pixel actuel, exprimée en coordonnées d’écran. Les coordonnées d’écran sont basées sur la fenêtre d’affichage actuelle. Les composants x et y contiennent les coordonnées d’écran, le composant z contient la profondeur normalisée dans la plage [0, 1], et le composant w contient la valeur de profondeur dans l’espace d’affichage. Sortie Output : float4 Position du pixel actuel. |
None |
Normale de surface | Normale de surface du pixel actuel dans l’espace d’objets. Vous pouvez l’utiliser pour calculer les contributions de l’éclairage et les réflexions dans l’espace d’objets. Sortie Output : float3 Normale de surface du pixel actuel. |
None |
Vecteur d’appareil photo de l’espace tangent | Vecteur qui s’étend du pixel actuel à l’appareil photo dans l’espace tangent. Vous pouvez l’utiliser pour calculer les réflexions dans l’espace tangent. Sortie Output : float3 Vecteur du pixel actuel à l’appareil photo. |
None |
Direction de la lumière de l’espace tangent | Vecteur qui définit la direction dans laquelle la lumière est diffusée depuis une source de lumière dans l’espace tangent du pixel actuel. Vous pouvez l’utiliser pour calculer les contributions spéculaires et d’éclairage dans l’espace tangent. Output: Output : float3 Vecteur du pixel actuel à une source de lumière. |
None |
Normale universelle | Normale de surface du pixel actuel dans l’espace universel. Vous pouvez l’utiliser pour calculer les contributions de l’éclairage et les réflexions dans l’espace universel. Sortie Output : float3 Normale de surface du pixel actuel. |
None |
Position universelle | Position du pixel actuel dans l'espace universel. Sortie Output : float4 Position du pixel actuel. |
None |
Nœuds de paramètres
Dans le concepteur de nuanceur, les nœuds de paramètre représentent les entrées dans le nuanceur qui sont sous le contrôle de l’application dessin par dessin, par exemple, les propriétés de matériau, les lumières directionnelles et la position de la caméra. Comme vous pouvez modifier ces paramètres à chaque appel de dessin, vous pouvez utiliser le même nuanceur pour attribuer différentes apparences à un objet.
Informations de référence des nœuds de paramètre
Nœud | Détails | Propriétés |
---|---|---|
Position universelle de la caméra | Position de l'appareil photo dans l'espace universel. Output: Output : float4 Position de la caméra. |
None |
Direction de la lumière | Vecteur qui définit la direction dans laquelle la lumière est diffusée depuis une source de lumière dans l’espace universel. Vous pouvez l’utiliser pour calculer les contributions spéculaires et d’éclairage dans l’espace universel. Output: Output : float3 Vecteur du pixel actuel à une source de lumière. |
None |
Matériau ambiant | Contribution de couleur diffuse du pixel actuel qui est attribuée à l’éclairage indirect. La couleur diffuse d’un pixel simule l’interaction de l’éclairage avec des surfaces rugueuses. Vous pouvez utiliser le paramètre Matériau ambiant pour estimer la contribution de l’éclairage indirect à l’apparence d’un objet dans le monde réel. Output: Output : float4 Couleur diffuse du pixel actuel qui est due à l’éclairage indirect, c’est-à-dire à la lumière ambiante. |
y accéder Public pour que la propriété puisse être définie dans l’éditeur de modèle. Privé dans le cas contraire. Valeur Couleur diffuse du pixel actuel qui est due à l’éclairage indirect, c’est-à-dire à la lumière ambiante. |
Matériau diffus | Couleur qui décrit la manière dont le pixel actuel diffuse la lumière directe. La couleur diffuse d’un pixel simule l’interaction de l’éclairage avec des surfaces rugueuses. Vous pouvez utiliser le paramètre Matériau diffus pour modifier la façon dont le pixel actuel diffuse la lumière directe, c’est-à-dire les lumières directionnelles, ponctuelles et projetées. Output: Output : float4 Couleur qui décrit la manière dont le pixel actuel diffuse la lumière directe. |
y accéder Public pour que la propriété puisse être définie dans l’éditeur de modèle. Privé dans le cas contraire. Valeur Couleur qui décrit la manière dont le pixel actuel diffuse la lumière directe. |
Matériau émissif | Contribution de couleur du pixel actuel qui est attribuée à son éclairage propre. Vous pouvez l’utiliser pour simuler un objet lumineux, autrement dit, un objet qui fournit sa propre lumière. Cette lumière n’affecte pas les autres objets. Output: Output : float4 Contribution de couleur du pixel actuel, basée sur l’auto-éclairage. |
y accéder Public pour que la propriété puisse être définie dans l’éditeur de modèle. Privé dans le cas contraire. Valeur Contribution de couleur du pixel actuel, basée sur l’auto-éclairage. |
Matériau spéculaire | Couleur qui décrit la manière dont le pixel actuel reflète la lumière directe. La couleur spéculaire d’un pixel simule l’interaction de l’éclairage avec des surfaces lisses, de type miroir. Vous pouvez utiliser le paramètre Matériau spéculaire pour modifier la façon dont le pixel actuel reflète la lumière directe, c’est-à-dire les lumières directionnelles, ponctuelles et projetées. Output: Output : float4 Couleur qui décrit la manière dont le pixel actuel reflète la lumière directe. |
y accéder Public pour que la propriété puisse être définie dans l’éditeur de modèle. Privé dans le cas contraire. Valeur Couleur qui décrit la manière dont le pixel actuel reflète la lumière directe. |
Puissance spéculaire du matériau | Valeur scalaire qui décrit l'intensité des surbrillances spéculaires. L’intensité et la portée des surbrillances spéculaires sont proportionnelles à la puissance spéculaire. Output: Output : float Terme exponentiel qui décrit l’intensité des surbrillances spéculaires sur le pixel actuel. |
y accéder Public pour que la propriété puisse être définie dans l’éditeur de modèle. Privé dans le cas contraire. Valeur Exposant qui définit l’intensité des surbrillances spéculaires sur le pixel actuel. |
Heure normalisée | Durée en secondes, normalisée dans la plage [0, 1] de sorte que lorsque la durée atteint 1, elle est réinitialisée sur 0. Vous pouvez l’utiliser en tant que paramètre dans les calculs du nuanceur, par exemple pour animer les coordonnées de la texture, les valeurs de couleur ou d’autres attributs. Output: Output : float Heure normalisée, en secondes. |
None |
Time | La durée en secondes. Vous pouvez l’utiliser en tant que paramètre dans les calculs du nuanceur, par exemple pour animer les coordonnées de la texture, les valeurs de couleur ou d’autres attributs. Output: Output : float Durée en secondes. |
None |
Nœuds de textures
Dans le concepteur de nuanceur, les nœuds de texture échantillonnent différents types de texture ainsi que des géométries, et produisent ou transforment des coordonnées de texture. Les textures apportent des détails de couleur et d’éclairage aux objets.
Informations de référence des nœuds de texture
Nœud | Détails | Propriétés |
---|---|---|
Cubemap Sample (Exemple de carte cubique) | Extrait un échantillon de couleur d’une carte cubique aux coordonnées spécifiées. Vous pouvez utiliser une carte cubique pour fournir des détails de couleurs pour les effets de réflexion ou pour appliquer à un objet sphérique une texture avec moins de distorsion qu’une texture 2D. Entrée : UVW : float3 Vecteur qui spécifie l’emplacement de l’extraction de l’échantillon sur le cube de texture. L’échantillon est prélevé à l’intersection de ce vecteur et du cube. Output: Output : float4 Échantillon de couleur. |
Texture Registre de texture associé à l’échantillonneur. |
Normal Map Sample (Exemple de carte de normales) | Extrait un échantillon de normale d’une carte de normales 2D aux coordonnées spécifiées Vous pouvez utiliser une carte de normales pour simuler l’apparence de détails géométriques supplémentaires sur la surface d’un objet. Les cartes de normales contiennent des données compressées qui représentent un vecteur unitaire et non des données de couleur. Entrée : UV : float2 Coordonnées de l’emplacement auquel l’échantillon est prélevé. Output: Output : float3 Échantillon de normale. |
Axis Adjustment (Ajustement d’un axe) Facteur utilisé pour ajuster la commodité d’un exemple de carte normal. Texture Registre de texture associé à l’échantillonneur. |
UV Panoramique | Effectue un panoramique des coordonnées de texture spécifiées en tant que fonction du temps. Vous pouvez l’utiliser pour déplacer une carte de textures ou de normales sur la surface d’un objet. Entrée : UV : float2 Coordonnées sur lesquelles effectuer un panoramique. Time : float Durée du panoramique, en secondes. Output: Output : float2 Coordonnées auxquelles est appliqué un panoramique. |
Vitesse X Nombre de texels panoramiqués le long de l'axe des abcisses, par seconde. Vitesse Y Nombre de texels panoramiqués le long de l'axe des ordonnées, par seconde. |
UV Parallaxe | Déplace les coordonnées de texture spécifiées en tant que fonction de la hauteur et de l’angle de visualisation. L’effet créé est appelé mappage parallaxe ou mappage de déplacement virtuel. Vous pouvez l’utiliser pour créer une illusion de profondeur sur une surface plane. Entrée : UV : float2 Coordonnées à déplacer. Height : float Valeur de la carte du relief qui est associée aux coordonnées UV .Output: Output : float2 Coordonnées déplacées. |
Plan de profondeur Profondeur de référence de l’effet parallaxe. Par défaut, sa valeur est égale à 0,5. Des valeurs plus petites soulèvent la texture, tandis que des valeurs supérieures l’enfoncent dans la surface. Échelle de profondeur Échelle de l’effet parallaxe. La profondeur apparente est ainsi rendue plus ou moins prononcée. Les valeurs standard sont inscrites dans la plage s’étendant de 0,02 à 0,1. |
Faire pivoter UV | Effectue une rotation des coordonnées de texture spécifiées autour d’un point central en tant que fonction du temps. Vous pouvez l’utiliser pour faire tourner une carte de textures ou de normales sur la surface d’un objet. Entrée : UV : float2 Coordonnées à faire pivoter. Time : float Durée du panoramique, en secondes. Output: Output : float2 Coordonnées ayant subi une rotation. |
Centrer X Coordonnée x qui définit le centre de rotation. Centrer Y Coordonnée y qui définit le centre de rotation. Vitesse Angle, en radians, en fonction duquel la texture pivote chaque seconde. |
Coordonnée de texture | Coordonnées de texture du pixel actuel. Les coordonnées de texture sont déterminées par interpolation entre les attributs de coordonnées de texture des sommets voisins. Vous pouvez considérer cela comme position du pixel actuel dans l’espace de texture. Output: Output : float2 Coordonnées de texture. |
None |
Dimensions de la texture | Affiche la largeur et la hauteur d’une carte de textures 2D. Vous pouvez utiliser les dimensions de texture pour prendre en compte la largeur et la hauteur de la texture dans un nuanceur. Output: Output : float2 Largeur et hauteur de la texture, exprimées en tant que vecteur. La largeur est stockée dans le premier élément du vecteur. La hauteur est stockée dans le second élément. |
Texture Registre de texture associé aux dimensions de la texture. |
Différentiel d’élément de texture | Affiche le différentiel (la distance) entre les éléments de texture d’une carte de textures 2D. Vous pouvez utiliser le différentiel d’élément de texture pour échantillonner des valeurs d’éléments de texture voisins dans un nuanceur. Output: Output : float2 Différentiel (distance) d’un élément de texture à l’élément de texture suivant (déplacement en diagonale dans le sens positif), exprimé sous la forme d’un vecteur dans un espace de texture normalisé. Vous pouvez dériver les positions de tous les éléments de texture voisins en ignorant ou en inversant de manière sélective les coordonnées U ou V du différentiel. |
Texture Registre de texture associé au différentiel d’élément de texture. |
Échantillon de texture | Extrait un échantillon de couleur d’une carte de textures 2D aux coordonnées spécifiées. Vous pouvez utiliser une carte de textures pour ajouter un détail de couleur à la surface d’un objet. Entrée : UV : float2 Coordonnées de l’emplacement auquel l’échantillon est prélevé. Output: Output : float4 Échantillon de couleur. |
Texture Registre de texture associé à l’échantillonneur. |
Nœuds mathématiques
Dans le concepteur de nuanceur, les nœuds mathématiques effectuent des opérations mathématiques, notamment algébriques, logiques et trigonométriques.
Notes
Lorsque vous utilisez des nœuds mathématiques dans le concepteur de nuanceur, la promotion de type est particulièrement évidente. Si vous souhaitez découvrir comment la promotion de type affecte les paramètres d’entrée, consultez la section Promotion des entrées.
Informations de référence des nœuds mathématiques
Nœud | Détails | Propriétés |
---|---|---|
Abs | Calcule la valeur absolue de l’entrée spécifiée par composant. Pour chaque composant d’entrée X , les valeurs négatives sont rendues positives afin que chaque composant du résultat ait une valeur positive.Entrée : X : float , float2 , float3 ou float4 Valeurs pour lesquelles déterminer la valeur absolue. Output: Output : identique à l’entrée X Valeur absolue par composant. |
None |
Ajouter | Calcule la somme des entrées spécifiées par composant. Pour chaque composant du résultat, les composants correspondants des entrées X et Y sont additionnés.Entrée : X : float , float2 , float3 ou float4 Une des valeurs à additionner. Y : identique à l’entrée X Une des valeurs à additionner. Output: Output : identique à l’entrée X Somme par composant. |
None |
Plafond | Calcule le plafond de l’entrée spécifiée par composant. Le plafond d’une valeur est le plus petit entier supérieur ou égal à cette valeur. Entrée : X : float , float2 , float3 ou float4 Valeurs pour lesquelles calculer le plafond. Output: Output : identique à l’entrée X Plafond par composant. |
None |
Clamp | Fixe chaque composant de l’entrée spécifiée à une plage prédéfinie. Pour chaque composant du résultat, les valeurs inférieures à la plage définie sont égales à la valeur minimale de la plage, les valeurs supérieures à la plage définie sont égales à la valeur maximale de la plage et les valeurs déjà comprises dans la plage restent inchangées. Entrée : X : float , float2 , float3 ou float4 Valeurs à fixer. Output: Output : identique à l’entrée X Valeur fixée par composant. |
Max Plus grande valeur possible de la plage. Min Plus petite valeur possible de la plage. |
Cos | Calcule le cosinus de l’entrée spécifiée, en radians, par composant. Pour chaque composant du résultat, le cosinus du composant correspondant, qui est fourni en radians, est calculé. Le résultat compte des composants dont les valeurs sont comprises dans la plage [-1, 1]. Entrée : X : float , float2 , float3 ou float4 Valeurs pour lesquelles calculer le cosinus, en radians. Output: Output : identique à l’entrée X Cosinus par composant. |
None |
Croix | Calcule le produit vectoriel des vecteurs spécifiés à trois composants. Vous pouvez utiliser le produit croisé pour calculer la normale d’une surface définie par deux vecteurs. Entrée : X : float3 Vecteur sur le côté gauche du produit vectoriel. Y : float3 Vecteur sur le côté droit du produit vectoriel. Output: Output : float3 Produit croisé. |
None |
Distance | Calcule la distance entre les points spécifiés. Le résultat est une valeur scalaire positive. Entrée : X : float , float2 , float3 ou float4 Un des points dont il convient de déterminer la distance les séparant. Y : identique à l’entrée X Un des points dont il convient de déterminer la distance les séparant. Output: Output : identique à l’entrée X Distance. |
None |
Divide | Calcule le quotient des entrées spécifiées. Pour chaque composant du résultat, le composant correspondant de l’entrée X est divisé par le composant correspondant de l’entrée Y .Entrée : X : float , float2 , float3 ou float4 Valeurs de dividende. Y : identique à l’entrée X Valeurs de diviseur. Output: Output : identique à l’entrée X Quotient par composant. |
None |
Point | Calcule le produit scalaire des vecteurs spécifiés. Le résultat est une valeur scalaire. Le produit scalaire permet de déterminer l’angle entre deux vecteurs. Entrée : X : float , float2 , float3 ou float4 Un des termes. Y : identique à l’entrée X Un des termes. Output: Output : float Produit scalaire. |
None |
Floor | Calcule la valeur plancher de l’entrée spécifiée par composant. Pour chaque composant du résultat, la valeur correspond à la plus grande valeur entière inférieure ou égale au composant correspondant de l’entrée. Chaque composant du résultat est un entier. Entrée : X : float , float2 , float3 ou float4 Valeurs pour lesquelles calculer le plancher. Output: Output : identique à l’entrée X Valeur plancher par composant. |
None |
Fmod | Calcule le modulo (reste) des entrées spécifiées. Pour chaque composant du résultat, un multiple (nombre entier) entier, m, du composant correspondant de l’entrée Y est soustrait du composant correspondant de l’entrée X , laissant un reste. Le multiple, m, est choisi de telle façon que le reste soit inférieur au composant correspondant de l’entrée Y et qu’il ait le même signe que le composant correspondant de l’entrée X . Par exemple, fmod(-3.14, 1.5) correspond à -0,14.Entrée : X : float , float2 , float3 ou float4 Valeurs de dividende. Y : identique à l’entrée X Valeurs de diviseur. Output: Output : identique à l’entrée X Modulo par composant. |
None |
Frac | Supprime la partie entière (nombre entier) de l’entrée spécifiée par composant. Pour chaque composant du résultat, la partie entière du composant correspondant de l’entrée est supprimée, mais la partie fractionnaire et le signe sont conservés. Cette valeur fractionnaire est comprise dans la plage [0, 1). Par exemple, la valeur -3,14 devient la valeur -0,14. Entrée : X : float , float2 , float3 ou float4 Valeurs pour lesquelles calculer la partie fractionnaire. Output: Output : identique à l’entrée X Partie fractionnaire par composant. |
None |
Lerp | Interpolation linéaire. Calcule la moyenne pondérée des entrées spécifiées. Pour chaque composant du résultat, moyenne pondérée des composants correspondants des entrées X et Y . La pondération fournie par Percent , un scalaire, est appliquée uniformément à tous les composants. Vous pouvez l’utiliser pour procéder à l’interpolation entre les points, les couleurs, les attributs et les autres valeurs.Entrée : X : float , float2 , float3 ou float4 Valeur d’origine. Lorsque Percent correspond à zéro, le résultat est égal à cette entrée.Y : identique à l’entrée X Valeur terminale. Lorsque Percent correspond à un, le résultat est égal à cette entrée.Percent : float Pondération scalaire exprimée en pourcentage de la distance de l’entrée X vers l’entrée Y .Output: Output : identique à l’entrée X Valeur colinéaire avec les entrées spécifiées. |
None |
Multiplier Ajouter | Calcule la multiplication/addition des entrées spécifiées. Pour chaque composant du résultat, le produit des composants correspondants des entrées M et A est ajouté au composant correspondant de l’entrée B . Cette série d’opérations est observable dans des formules courantes, par exemple dans la formule de calcul de la pente d’une droite à partir d’un point (point-slope) et dans la formule de mise à l’échelle et de compensation d’une entrée.Entrée : M : float , float2 , float3 ou float4 Une des valeurs à multiplier. A : identique à l’entrée M Une des valeurs à multiplier. B : identique à l’entrée M Valeurs à ajouter au produit des deux autres entrées. Output: Output : identique à l’entrée M Résultat de la multiplication/addition par composant. |
None |
Max | Calcule le maximum des entrées spécifiées. Pour chaque composant du résultat, c’est le plus grand des composants correspondants des entrées qui est pris. Entrée : X : float , float2 , float3 ou float4 Une des valeurs pour lesquelles calculer le maximum. Y : identique à l’entrée X Une des valeurs pour lesquelles calculer le maximum. Output: Output : identique à l’entrée X Valeur maximale par composant. |
None |
Min | Calcule le minimum des entrées spécifiées. Pour chaque composant du résultat, c’est le plus petit des composants correspondants des entrées qui est pris. Entrée : X : float , float2 , float3 ou float4 Une des valeurs pour lesquelles calculer le minimum. Y : identique à l’entrée X Une des valeurs pour lesquelles calculer le minimum. Output: Output : identique à l’entrée X Valeur minimale par composant. |
None |
Multiplier | Calcule le produit des entrées spécifiées. Pour chaque composant du résultat, les composants correspondants des entrées X et Y sont multipliés.Entrée : X : float , float2 , float3 ou float4 Une des valeurs à multiplier. Y : identique à l’entrée X Une des valeurs à multiplier. Output: Output : identique à l’entrée X Produit par composant. |
None |
Normaliser | Normalise le vecteur spécifié. Un vecteur normalisé conserve la direction du vecteur d’origine, mais pas son amplitude. Vous pouvez utiliser des vecteurs normalisés afin de simplifier des calculs pour lesquels l’amplitude d’un vecteur n’est pas importante. Entrée : X : float2 , float3 ou float4 Vecteur à normaliser. Output: Output : identique à l’entrée X Vecteur normalisé. |
None |
Un moins | Calcule la différence entre 1 et l’entrée spécifiée par composant. Pour chaque composant du résultat, le composant correspondant de l’entrée est soustrait de 1. Entrée : X : float , float2 , float3 ou float4 Valeurs à soustraire de 1. Output: Output : identique à l’entrée X Différence entre 1 et l’entrée spécifiée, par composant. |
None |
Power | Calcule l’élévation à une puissance des entrées spécifiées. Pour chaque composant du résultat, le composant correspondant de l’entrée X est élevé à la puissance du composant correspondant de l’entrée Y .Entrée : X : float , float2 , float3 ou float4 Valeurs de base Y : identique à l’entrée X Valeurs d’exposant. Output: Output : identique à l’entrée X Élévation à une puissance, par composant. |
None |
Saturer | Fixe chaque composant de l’entrée spécifiée à la plage [0, 1]. Vous pouvez utiliser cette plage pour représenter des pourcentages et d’autres mesures relatives dans les calculs. Pour chaque composant du résultat, les valeurs du composant correspondant de l’entrée qui sont inférieures à 0 sont égales à la valeur 0, les valeurs supérieures à 1 sont égales à la valeur 1, et les valeurs comprises dans la plage restent inchangées. Entrée : X : float , float2 , float3 ou float4 Valeurs à saturer. Output: Output : identique à l’entrée X Valeur saturée par composant. |
None |
Sin | Calcule le sinus de l’entrée spécifiée, en radians, par composant. Pour chaque composant du résultat, le sinus du composant correspondant, qui est fourni en radians, est calculé. Le résultat compte des composants dont les valeurs sont comprises dans la plage [-1, 1]. Entrée : X : float , float2 , float3 ou float4 Valeurs pour lesquelles calculer le sinus, en radians. Output: Output : identique à l’entrée X Sinus par composant. |
None |
Rac | Calcule la racine carrée de l’entrée spécifiée par composant. Pour chaque composant du résultat, la racine carrée du composant correspondant est calculée. Entrée : X : float , float2 , float3 ou float4 Valeurs pour lesquelles calculer la racine carrée. Output: Output : identique à l’entrée X Racine carrée par composant. |
None |
Soustraire | Calcule la différence des entrées spécifiées. Pour chaque composant du résultat, le composant correspondant de l’entrée Y est soustrait du composant correspondant de l’entrée X . Vous pouvez l’utiliser pour calculer le vecteur qui s’étend de la première entrée à la seconde.Entrée : X : float , float2 , float3 ou float4 Valeurs à partir desquelles il convient d’effectuer une soustraction. Y : identique à l’entrée X Valeurs à soustraire de l’entrée X .Output: Output : identique à l’entrée X Différence par composant. |
None |
Transformer le vecteur 3D | Transforme le vecteur 3D spécifié dans un autre espace. Vous pouvez l’utiliser pour placer des points ou des vecteurs dans un espace commun afin de pouvoir les utiliser pour effectuer des calculs explicites. Entrée : Vector : float3 Vecteur à transformer. Output: Output : float3 Vecteur transformé. |
Depuis le système Espace natif du vecteur. Vers le système Espace dans lequel transformer le vecteur. |
Nœuds utilitaires
Dans le concepteur de nuanceur, les nœuds utilitaires représentent des calculs de nuanceur communs et utiles qui ne s’inscrivent pas parfaitement dans les autres catégories. Certains nœuds utilitaires effectuent des opérations simples comme l’ajout de vecteurs ou le choix conditionnel de résultats, tandis que d’autres effectuent des opérations complexes telles que le calcul des contributions d’éclairage en fonction des modèles d’éclairage les plus utilisés.
Informations de référence des nœuds utilitaires
Nœud | Détails | Propriétés |
---|---|---|
Ajouter un vecteur | Crée un vecteur en ajoutant les entrées spécifiées ensemble. Entrée : Vector : float , float2 ou float3 Valeurs pour lesquelles procéder à des ajouts. Value to Append : float Valeur à ajouter. Output: Output : float2 , float3 ou float4 en fonction du type d’entrée Vector Nouveau vecteur. |
None |
Fresnel | Calcule la courbe décroissante de Fresnel en fonction de la normale à la surface spécifiée. La valeur de la courbe décroissante de Fresnel exprime le degré auquel la normale à la surface du pixel actuel coïncide avec le vecteur de la vue. Lorsque les vecteurs sont alignés, le résultat de la fonction est 0 ; le résultat augmente à mesure que les vecteurs sont moins semblables, et il atteint sa valeur maximale lorsque les vecteurs sont orthogonaux. Vous pouvez l’utiliser pour rendre un effet plus ou moins apparent en fonction de la relation existant entre l’appareil photo et l’orientation du pixel actuel. Entrée : Surface Normal : float3 Normale à la surface du pixel actuel, définie dans l’espace tangent du pixel actuel. Vous pouvez l’utiliser pour compromettre la normale à la surface apparente, comme dans le mappage des normales. Output: Output : float Réflectivité du pixel actuel. |
Exposant Exposant utilisé pour calculer la courbe décroissante de Fresnel. |
If | Choisit de façon conditionnelle l’un des trois résultats potentiels par composant. La condition est définie par la relation existant entre deux autres entrées spécifiées. Pour chaque composant du résultat, le composant correspondant de l’un des trois résultats potentiels est choisi, en fonction de la relation existant entre les composants correspondants des deux premières entrées. Entrée : X : float , float2 , float3 ou float4 Valeur de gauche à comparer. Y : même type que l’entrée X Valeur de droite à comparer. X > Y : même type que l’entrée X Valeurs qui sont choisies lorsque X est supérieur à Y .X = Y : même type que l’entrée X Valeurs qui sont choisies lorsque X est égal à Y .X < Y : même type que l’entrée X Valeurs qui sont choisies lorsque X est inférieur à Y .Output: Output : float3 Résultat choisi par composant. |
None |
Lambert | Calcule la couleur du pixel actuel en fonction du modèle d’éclairage Lambert, à l’aide de la normale à la surface spécifiée. Cette couleur est la somme des contributions de couleur ambiante et d’éclairage diffus dans des conditions d’éclairage direct. La couleur ambiante est proche de la contribution totale d’éclairage indirect, mais semble plate et terne sans le recours à un éclairage supplémentaire. Un éclairage diffus permet d’ajouter une forme et une profondeur à un objet. Entrée : Surface Normal : float3 Normale à la surface du pixel actuel, définie dans l’espace tangent du pixel actuel. Vous pouvez l’utiliser pour compromettre la normale à la surface apparente, comme dans le mappage des normales. Diffuse Color : float3 Couleur diffuse du pixel actuel, en général la Couleur du point. Si aucune entrée n’est fournie, la valeur par défaut est le blanc. Output: Output : float3 Couleur diffuse du pixel actuel. |
None |
Vecteur de masque | Masque les composants du vecteur spécifié. Vous pouvez l’utiliser pour supprimer des canaux de couleur spécifiques d’une valeur de couleur ou pour éviter que des composants spécifiques n’affectent les calculs suivants. Entrée : Vector : float4 Vecteur à masquer. Output: Output : float4 Vecteur masqué. |
Rouge / X False pour masquer le composant rouge (x). True dans le cas contraire. Vert / Y False pour masquer le composant vert (y). True dans le cas contraire. Bleu / Z False pour masquer le composant bleu (z). True dans le cas contraire. Alpha / W False pour masquer le composant alpha (w). True dans le cas contraire. |
Vecteur de réflexion | Calcule le vecteur de réflexion pour le pixel actuel dans l’espace tangent, en fonction de la position de l’appareil photo. Vous pouvez l’utiliser pour calculer les réflexions, les coordonnées de carte cubique et les contributions d’éclairage spéculaire. Entrée : Tangent Space Surface Normal : float3 Normale à la surface du pixel actuel, définie dans l’espace tangent du pixel actuel. Vous pouvez l’utiliser pour compromettre la normale à la surface apparente, comme dans le mappage des normales. Output: Output : float3 Vecteur de réflexion. |
None |
Spéculaire | Calcule la contribution d’éclairage spéculaire en fonction du modèle d’éclairage Phong, à l’aide de la normale à la surface spécifiée. L’éclairage spéculaire donne une apparence brillante et réfléchissante à un objet, par exemple, l’eau, le plastique ou les métaux. Entrée : Surface Normal : float3 Normale à la surface du pixel actuel, définie dans l’espace tangent du pixel actuel. Vous pouvez l’utiliser pour compromettre la normale à la surface apparente, comme dans le mappage des normales. Output: Output : float3 Contribution de couleur des surbrillances spéculaires. |
None |
Nœuds de filtres
Dans le concepteur de nuanceur, les nœuds de filtre transforment une entrée, par exemple, un échantillon de couleur ou de texture, en valeur de couleur figurative. Ces valeurs de couleurs figuratives sont couramment utilisées dans un rendu non photoréaliste ou comme composants dans d’autres effets visuels.
Informations de référence des nœuds de filtre
Nœud | Détails | Propriétés |
---|---|---|
Flou | Estompe les pixels d’une texture à l’aide d’une fonction gaussienne. Vous pouvez l’utiliser pour réduire le détail ou le bruit des couleurs dans une texture. Entrée : UV : float2 Coordonnées de la texture à tester. Output: Output : float4 Valeur de couleur floue. |
Texture Registre de texture associé à l’échantillonneur utilisé lors de la création du flou. |
Désaturer | Réduit la quantité de couleur dans la couleur spécifiée. À mesure que vous enlevez de la couleur, la valeur de couleur s’approche de son équivalent dans les nuances de gris. Entrée : RGB : float3 Couleur à désaturer. Percent : float Pourcentage de couleur à supprimer, exprimé en valeur normalisée dans la plage [0, 1]. Output: Output : float3 Couleur désaturée. |
Luminance Pondérations attribuées aux composants de couleur rouge, vert et bleu. |
Détection des bords | Détecte les bords d’une texture à l’aide d’un détecteur de contour Canny. Les pixels en périphérie sont sortis en blanc tandis que les pixels autres que de périphérie sont sortis en noir. Vous pouvez l’utiliser pour identifier les bords d’une texture afin de pouvoir utiliser des effets supplémentaires pour traiter les pixels de contour. Entrée : UV : float2 Coordonnées de la texture à tester. Output: Output : float4 Blanc si la texture se trouve sur un bord ; noir dans le cas contraire. |
Texture Registre de texture associé à l’échantillonneur utilisé au cours de la détection des bords. |
Améliorer la netteté | Améliore la netteté d’une texture. Vous pouvez l’utiliser pour mettre en évidence les moindres détails d’une texture. Entrée : UV : float2 Coordonnées de la texture à tester. Output: Output : float4 Valeur de couleur floue. |
Texture Registre de texture associé à l’échantillonneur utilisé lors de l’amélioration de la netteté. |
Étapes suivantes
Si vous souhaitez obtenir plus d’informations, consultez Créer des nuanceurs avec le Concepteur de nuanceur dans Visual Studio.