Types de lumière
La propriété type de lumière définit le type de source de lumière que vous utilisez. Il existe trois types de lumières dans Direct3D : lumières pointantes, projecteurs et lumières directionnelles. Chaque type illumine les objets d’une scène différemment, avec différents niveaux de surcharge de calcul.
Lumière de point
Les lumières pointantes ont une couleur et une position dans une scène, mais pas de direction unique. Ils donnent la lumière de façon égale dans toutes les directions, comme illustré dans l’illustration suivante.
Une ampoule est un bon exemple de lumière point. Les lumières pointantes sont affectées par l’atténuation et la plage, et illuminent un maillage sur une base de vertex par vertex. Pendant l’éclairage, Direct3D utilise la position de la lumière de point dans l’espace mondial et les coordonnées du sommet allumé pour dériver un vecteur pour la direction de la lumière, et la distance que la lumière a parcourue. Les deux sont utilisés, ainsi que la normale du vertex, pour calculer la contribution de la lumière à l’éclairage de la surface.
Lumière directionnelle
Les lumières directionnelles n’ont que la couleur et la direction, pas la position. Ils émettent une lumière parallèle. Cela signifie que toutes les lumières générées par des lumières directionnelles se déplacent dans une scène dans la même direction. Imaginez une lumière directionnelle comme source de lumière à une distance proche infinie, comme le soleil. Les lumières directionnelles ne sont pas affectées par l’atténuation ou la plage, de sorte que la direction et la couleur que vous spécifiez sont les seuls facteurs pris en compte lorsque Direct3D calcule les couleurs de vertex. En raison du petit nombre de facteurs d’éclairage, il s’agit des lumières les moins gourmandes en calcul à utiliser.
Projecteur
Les projecteurs ont la couleur, la position et la direction dans lesquelles ils émettent de la lumière. La lumière émise à partir d’un projecteur est constituée d’un cône intérieur lumineux et d’un cône externe plus grand, avec l’intensité de lumière décroissant entre les deux, comme illustré dans l’illustration suivante.
Les projecteurs sont affectés par les chutes, l’atténuation et la plage. Ces facteurs, ainsi que la distance que la lumière passe à chaque sommet, sont illustrés lors de l’informatique des effets d’éclairage pour les objets d’une scène. Le calcul de ces effets pour chaque vertex rend les projecteurs les plus chronophages de toutes les lumières dans Direct3D.
Les valeurs Falloff, Theta et Phi sont utilisées uniquement par les projecteurs. Ces valeurs contrôlent la taille ou la taille des cônes internes et externes d’un objet à la une ou l’autre, et la diminution de la lumière entre elles.
Theta est l’angle radian du cône intérieur du projecteur, et la valeur Phi est l’angle du cône externe de la lumière. Les chutes contrôlent la diminution de l’intensité de la lumière entre le bord externe du cône interne et le bord intérieur du cône externe. La plupart des applications définissent Falloff sur 1.0 pour créer un falloff qui se produit uniformément entre les deux cônes, mais vous pouvez définir d’autres valeurs si nécessaire.
L’illustration suivante montre la relation entre ces valeurs et la façon dont elles peuvent affecter les cônes internes et externes d’une lumière.
Les projecteurs émettent un cône de lumière qui a deux parties : un cône intérieur lumineux et un cône externe. La lumière est la plus brillante dans le cône intérieur et n’est pas présente à l’extérieur du cône externe, avec une intensité légère atténuée entre les deux zones. Ce type d’atténuation est communément appelé falloff.
La quantité de lumière qu’un sommet reçoit est basée sur l’emplacement du sommet dans les cônes internes ou externes. Direct3D calcule le produit de point du vecteur de direction (L) du projecteur et le vecteur de la lumière au sommet (D). Cette valeur est égale au cosinus de l’angle entre les deux vecteurs et sert d’indicateur de la position du sommet qui peut être comparé aux angles de cône de la lumière pour déterminer où le sommet peut se trouver dans les cônes internes ou externes. L’illustration suivante fournit une représentation graphique de l’association entre ces deux vecteurs.
Le système compare cette valeur au cosinus des angles de cône intérieur et externe de la projecteur. Les valeurs Theta et Phi de la lumière représentent le nombre total d’angles de cône pour les cônes internes et externes. Étant donné que l’atténuation se produit lorsque le sommet devient plus éloigné du centre de l’éclairage (plutôt que sur l’angle total du cône), le runtime divise ces angles de cône en moitié avant de calculer leurs cosines.
Si le produit de points des vecteurs L et D est inférieur ou égal au cosinus de l’angle du cône externe, le sommet se trouve au-delà du cône externe et ne reçoit aucune lumière. Si le produit de point de L et D est supérieur au cosinus de l’angle du cône intérieur, le sommet se trouve dans le cône intérieur et reçoit la quantité maximale de lumière, tout en tenant compte de l’atténuation sur la distance. Si le vertex se trouve quelque part entre les deux régions, la chute est calculée avec l’équation suivante.
où :
- If est l’intensité légère après l’automne
- Alpha est l’angle entre les vecteurs L et D
- Theta est l’angle du cône intérieur
- Phi est l’angle du cône externe
- p est la chute
Cette formule génère une valeur comprise entre 0,0 et 1,0 qui met à l’échelle l’intensité de la lumière au niveau du sommet pour tenir compte de la chute. L’atténuation en tant que facteur de la distance du sommet de la lumière est également appliquée. Le graphique suivant montre comment différentes valeurs de secours peuvent affecter la courbe de chute.
L’effet de différentes valeurs de chute sur l’éclairage réel est subtil, et une petite pénalité de performance est engagée en mettant en forme la courbe de chute avec des valeurs de chute autres que 1,0. Pour ces raisons, cette valeur est généralement définie sur 1.0.
Rubriques connexes