Vue d’ensemble de l’éclairage
Lorsque vous utilisez l’éclairage Direct3D, vous autorisez Direct3D à gérer les détails de l’éclairage pour vous. Les utilisateurs avancés peuvent effectuer l’éclairage par eux-mêmes, si vous le souhaitez.
Lorsque l’éclairage est activé, Direct3D calcule la couleur de chaque vertex d’objet en fonction d’une combinaison des éléments suivants :
- Les texels dans une carte de texture associée.
- Couleurs diffuses et spéculaires au sommet, le cas échéant.
- Couleur et intensité de la lumière produites par les sources de lumière dans la scène ou le niveau de lumière ambiante de la scène.
La façon dont vous travaillez avec l’éclairage et les matériaux fait une grande différence dans l’apparence de la scène rendue. Les matériaux définissent la façon dont la lumière reflète une surface. La lumière directe et les niveaux de lumière ambiante définissent la lumière qui est réfléchie. Vous devez utiliser des matériaux pour restituer une scène si l’éclairage est activé.
Les lumières ne sont pas requises pour restituer une scène, mais les détails d’une scène rendue sans lumière ne sont pas visibles. Au mieux, le rendu d’une scène non éclairée entraîne une silhouette des objets de la scène. Ce n’est pas assez détaillé à la plupart des fins.
Lumière directe et lumière ambiante
Bien que la lumière directe et ambiante illumine les objets d’une scène, ils sont indépendants les uns des autres, ils ont des effets très différents, et ils nécessitent que vous travaillez avec eux de manière complètement différente.
La lumière directe frappe directement l’objet. La lumière directe a toujours une direction et une couleur, et c’est un facteur pour les algorithmes d’ombrage, tels que l’ombrage Gouraud. Différents types de lumières émettent une lumière directe de différentes façons, créant des effets d’atténuation spéciaux.
La lumière ambiante est effectivement partout dans une scène. La lumière ambiante est un niveau général de lumière qui remplit une scène entière, quels que soient les objets et leurs emplacements dans cette scène. La lumière ambiante n’a aucune position ou direction, seule la couleur et l’intensité. Chaque lumière ajoute à la lumière ambiante globale dans une scène.
La couleur de lumière ambiante prend la forme d’une valeur RVBA, où chaque composant est une valeur entière comprise entre 0 et 255. Cela est différent de la plupart des valeurs de couleur dans Direct3D.
Les composants rouges, verts et bleus se combinent pour rendre la couleur finale de la lumière ambiante. Le composant alpha contrôle la transparence de la couleur. Lorsque vous utilisez l’accélération matérielle ou l’émulation RVB, le composant alpha est ignoré.
Modèle clair Direct3D et nature
Dans la nature, lorsque la lumière est émise à partir d’une source, elle est reflétée sur des centaines, si ce n’est pas des milliers ou des millions d’objets avant d’atteindre l’œil de l’utilisateur. Chaque fois qu’elle est réfléchie, une lumière est absorbé par une surface, certaines sont dispersées dans des directions aléatoires, et le reste passe à une autre surface ou à l’œil de l’utilisateur. Ce processus se poursuit jusqu’à ce que la lumière soit réduite à rien ou qu’un utilisateur perçoit la lumière.
Évidemment, les calculs nécessaires pour simuler parfaitement le comportement naturel de la lumière sont trop longs à utiliser pour les graphiques Direct3D en temps réel. Par conséquent, avec la vitesse à l’esprit, le modèle de lumière Direct3D se rapproche de la façon dont la lumière fonctionne dans le monde naturel. Direct3D décrit la lumière en termes de composants rouges, verts et bleus qui combinent pour créer une couleur finale.
Dans Direct3D, lorsque la lumière reflète une surface, la couleur de lumière interagit mathématiquement avec la surface elle-même pour créer la couleur éventuellement affichée sur l’écran. Pour plus d’informations sur les algorithmes que Direct3D utilise, consultez Mathématiques de l’éclairage.
Le modèle de lumière Direct3D généralise la lumière en deux types : la lumière ambiante et la lumière directe. Chacun a des attributs différents, et chacun interagit avec le matériau d’une surface de différentes manières. La lumière ambiante est la lumière qui a été dispersée tellement que sa direction et sa source sont indéterminées : elle maintient un faible niveau d’intensité partout. L’éclairage indirect utilisé par les photographes est un bon exemple de lumière ambiante.
La lumière ambiante dans Direct3D, comme dans la nature, n’a pas de direction ou de source réelle, seulement une couleur et une intensité. En fait, le niveau de lumière ambiante est complètement indépendant des objets d’une scène qui génère de la lumière. La lumière ambiante ne contribue pas à la réflexion spéculaire.
La lumière directe est la lumière générée par une source au sein d’une scène ; elle a toujours une couleur et une intensité, et elle se déplace dans une direction spécifiée. La lumière directe interagit avec le matériau d’une surface pour créer des surbrillances spéculaires, et sa direction est utilisée comme facteur dans les algorithmes d’ombrage, y compris l’ombrage De Gouraud. Lorsque la lumière directe est reflétée, elle ne contribue pas au niveau de lumière ambiante dans une scène. Les sources d’une scène qui génèrent une lumière directe ont des caractéristiques différentes qui affectent la façon dont elles illuminent une scène.
En outre, le matériau d’un polygone a des propriétés qui affectent la façon dont ce polygone reflète la lumière qu’il reçoit. Vous définissez une caractéristique de réflectance unique qui décrit la façon dont le matériau reflète la lumière ambiante, et vous définissez des caractéristiques individuelles pour déterminer la réflectance spéculaire et diffuse du matériau.
Valeurs de couleur pour les lumières et les matériaux
Direct3D décrit la couleur en termes de quatre composants (rouge, vert, bleu et alpha), qui combinent pour rendre une couleur finale. Chaque composant varie de 0.0 à 1.0. Bien que les lumières et les matériaux utilisent la même structure pour décrire la couleur, les valeurs sont utilisées un peu différemment par les lumières et les matériaux.
Les valeurs de couleur des sources de lumière représentent la quantité d’un composant lumineux particulier qu’il émet. Étant donné que les lumières n’utilisent pas de composant alpha, seuls les composants rouge, vert et bleu de la couleur sont pertinents. Vous pouvez visualiser les trois composants comme les lentilles rouges, vertes et bleues sur une télévision de projection. Chaque lentille peut être désactivée (une valeur de 0,0 dans le membre approprié), il peut être aussi lumineux que possible (une valeur de 1,0), ou il peut s’agir d’un certain niveau entre les deux.
Les couleurs provenant des lentilles se combinent pour rendre la couleur finale de la lumière. Une combinaison telle que R(1.0), G(1.0), B(1.0) crée une lumière blanche, où R(0.0), G(0.0), B(0.0) n’émet pas de lumière du tout. Vous pouvez faire une lumière qui émet un seul composant, ce qui entraîne une lumière rouge, verte ou bleue pure ; ou, la lumière peut utiliser des combinaisons pour émettre des couleurs comme le jaune ou le violet. Vous pouvez même définir des valeurs de composant de couleur négative pour créer une « lumière sombre » qui supprime réellement la lumière d’une scène. Vous pouvez également définir les composants sur une valeur supérieure à 1,0 pour créer une lumière extrêmement lumineuse.
En revanche, avec des matériaux, les valeurs de couleur représentent la quantité d’un composant lumineux qui est reflétée par une surface rendue avec ce matériau. Un matériau dont les composants de couleur sont R(1.0), G(1.0), B(1.0), A(1.0) reflète toute la lumière qui vient de sa façon. De même, un matériau avec R(0.0), G(1.0), B(0.0), A(1.0) reflète tout le feu vert qui lui est dirigé. Les matériaux ont plusieurs valeurs de réflectance pour créer différents types d’effets.
Consultez les types de lumière et les propriétés Light.
Rubriques connexes