Guide pratique pour créer un nuanceur Phong de baseHow to: Create a basic Phong shader

Cet article montre comment utiliser le concepteur Shader et DGSL (Directed Graph Shader Language) pour créer un nuanceur d’éclairage implémentant le modèle d’éclairage Phong classique.This article demonstrates how to use the Shader Designer and the Directed Graph Shader Language (DGSL) to create a lighting shader that implements the classic Phong lighting model.

Modèle d’éclairage PhongThe Phong lighting model

Le modèle d’éclairage Phong étend le modèle d’éclairage Lambert pour inclure une mise en surbrillance spéculaire, ce qui simule les propriétés de reflet d’une surface.The Phong lighting model extends the Lambert lighting model to include specular highlighting, which simulates the reflective properties of a surface. Le composant spéculaire fournit un éclairage supplémentaire provenant des mêmes sources de lumière directionnelle que celles qui sont utilisées dans le modèle d’éclairage Lambert, mais sa contribution à la couleur finale est traitée différemment.The specular component provides additional illumination from the same directional light sources that are used in the Lambert lighting model, but its contribution to the final color is processed differently. L’éclairage spéculaire affecte différemment chaque surface de la scène, en fonction de la relation entre la direction de l’affichage, la direction des sources de lumière et l’orientation de la surface.Specular highlighting affects every surface in the scene differently, based on the relationship between the view direction, the direction of the light sources, and the orientation of the surface. Il s’agit d’un produit de la couleur spéculaire, de la puissance spéculaire, de l’orientation de la surface, et de la couleur, de l’intensité et de la direction des sources de lumière.It's a product of the specular color, specular power, and orientation of the surface, and the color, intensity, and direction of the light sources. Les surfaces qui reflètent directement la source de lumière à la visionneuse reçoivent la contribution spéculaire maximale, tandis que celles qui reflètent la source de lumière distante de la visionneuse ne reçoivent aucune contribution.Surfaces that reflect the light source directly at the viewer receive the maximum specular contribution and surfaces that reflect the light source away from the viewer receive no contribution. Dans le modèle d’éclairage Phong, un ou plusieurs composants spéculaires sont combinés pour déterminer la couleur et l’intensité de la mise en surbrillance spéculaire de chaque point de l’objet. Ils sont ensuite ajoutés au résultat du modèle d’éclairage Lambert pour produire la couleur finale du pixel.Under the Phong lighting model, one or more specular components are combined to determine the color and intensity of specular highlighting for each point on the object, and then are added to the result of the Lambert lighting model to produce the final color of the pixel.

Pour plus d’informations sur le modèle d’éclairage Lambert, consultez Guide pratique pour créer un nuanceur Lambert de base.For more information about the Lambert lighting model, see How to: Create a basic Lambert shader.

Avant de commencer, assurez-vous que la fenêtre Propriétés et la Boîte à outils sont affichées.Before you begin, make sure that the Properties window and the Toolbox are displayed.

  1. Créez un nuanceur Lambert en suivant les étapes décrites dans Guide pratique pour créer un nuanceur Lambert de base.Create a Lambert shader, as described in How to: Create a basic Lambert shader.

  2. Déconnectez le nœud Lambert du nœud Couleur finale.Disconnect the Lambert node from the Final Color node. Choisissez le terminal RVB du nœud Lambert, puis choisissez Rompre les liaisons.Choose the RGB terminal of the Lambert node, and then choose Break Links. Le nœud ajouté à l'étape suivante bénéficie ainsi d'un espace supplémentaire.This makes room for the node that's added in the next step.

  3. Ajoutez un nœud Ajouter au graphique.Add an Add node to the graph. Dans la Boîte à outils, sous Math, sélectionnez Ajouter et déplacez-le vers l’aire de conception.In the Toolbox, under Math, select Add and move it to the design surface.

  4. Ajoutez un nœud Spéculaire au graphique.Add a Specular node to the graph. Dans la Boîte à outils, sous Utilitaire, sélectionnez Spéculaire et déplacez-le vers l’aire de conception.In the Toolbox, under Utility, select Specular and move it to the design surface.

  5. Ajoutez la contribution spéculaire.Add the specular contribution. Déplacez le terminal Sortie du nœud Spéculaire vers le terminal X du nœud Ajouter, puis le terminal Sortie du nœud Lambert vers le terminal Y du nœud Ajouter.Move the Output terminal of the Specular node to the X terminal of the Add node, and then move the Output terminal of the Lambert node to the Y terminal of the Add node. Ces connexions combinent les contributions de couleur spéculaire et diffuse totale du pixel.These connections combine the total diffuse and specular color contributions for the pixel.

  6. Connectez la valeur de couleur calculée à la couleur finale.Connect the computed color value to the final color. Déplacez le terminal Sortie du nœud Ajouter vers le terminal RVB du nœud Couleur finale.Move the Output terminal of the Add node to the RGB terminal of the Final Color node.

    L’illustration suivante présente le graphique du nuanceur terminé ainsi qu’un aperçu du nuanceur appliqué à un modèle de théière.The following illustration shows the completed shader graph and a preview of the shader applied to a teapot model.

Note

Pour mettre en évidence l’effet du nuanceur dans cette illustration, une couleur orange a été spécifiée à l’aide du paramètre MaterialDiffuse du nuanceur, et un fini d’aspect métallique a été spécifié à l’aide des paramètres MaterialSpecular et MaterialSpecularPower.To better demonstrate the effect of the shader in this illustration, an orange color has been specified by using the MaterialDiffuse parameter of the shader, and a metallic-looking finish has been specified by using the MaterialSpecular and MaterialSpecularPower parameters. Pour plus d’informations sur les paramètres de matériau, consultez la section Aperçu des nuanceurs de l’article Concepteur de nuanceur.For information about material parameters, see the Previewing Shaders section in Shader Designer.

Graphique du nuanceur et un aperçu de ses effets

Certaines formes peuvent fournir de meilleurs aperçus pour certains nuanceurs.Certain shapes might provide better previews for some shaders. Pour plus d’informations sur l’aperçu des nuanceurs dans le concepteur de nuanceur, consultez la section Aperçu des nuanceurs de l’article Concepteur de nuanceur.For more information about how to preview shaders in the Shader Designer, see the Previewing Shaders section in Shader Designer

L’illustration suivante montre le nuanceur décrit dans ce document appliqué à un modèle 3D.The following illustration shows the shader that's described in this document applied to a 3D model. La propriété MaterialSpecular est définie sur (1,00, 0,50, 0,20, 0,00), et sa propriété MaterialSpecularPower est définie sur 16.The MaterialSpecular property is set to (1.00, 0.50, 0.20, 0.00), and its MaterialSpecularPower property is set to 16.

Note

La propriété MaterialSpecular détermine le fini apparent du matériau de surface.The MaterialSpecular property determines the apparent finish of the surface material. Une surface haute brillance comme le verre ou le plastique a tendance à avoir une couleur spéculaire, autrement dit une nuance de blanc lumineuse.A high-gloss surface such as glass or plastic tends to have a specular color that is a bright shade of white. Une surface métallique a tendance à avoir une couleur spéculaire proche de sa couleur diffuse.A metallic surface tends to have a specular color that is close to its diffuse color. Une surface satinée a tendance à avoir une couleur spéculaire, autrement dit une nuance de gris foncée.A satin-finish surface tends to have a specular color that is a dark shade of gray.

La propriété MaterialSpecularPower détermine l’intensité des mises en surbrillance spéculaires.The MaterialSpecularPower property determines how intense the specular highlights are. Des puissances très spéculaires simulent des mises en surbrillance plus ternes et plus localisées.High specular powers simulate duller, more-localized highlights. Des puissances faiblement spéculaires simulent des mises en surbrillance intenses et de grande envergure qui peuvent saturer et masquer la couleur de la surface totale.Very low specular powers simulate intense, sweeping highlights that can oversaturate and conceal the color of the whole surface.

Éclairage Phong appliqué à un modèle

Pour plus d’informations sur l’application d’un nuanceur à un modèle 3D, consultez Guide pratique pour appliquer un nuanceur à un modèle 3D.For more information about how to apply a shader to a 3D model, see How to: Apply a shader to a 3D model.

Voir aussiSee also