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 : les feux de pointe, les projecteurs et les feux directionnels. Chaque type éclaire les objets d’une scène différemment, avec différents niveaux de surcharge de calcul.

Lumière de point

Les points lumineux ont une couleur et une position dans une scène, mais pas de direction unique. Ils dégagent également la lumière dans toutes les directions, comme le montre l’illustration suivante.

illustration de la lumière de point

Une ampoule est un bon exemple de lumière point. Les feux de point sont affectés par l’atténuation et la plage, et éclairent un maillage sur une base 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 parcourue par la lumière. Les deux sont utilisés, avec le sommet normal, pour calculer la contribution de la lumière à l’éclairage de la surface.

Lumière directionnelle

Les feux directionnels ont uniquement la couleur et la direction, pas la position. Ils émettent une lumière parallèle. Cela signifie que toute la lumière générée par les lumières directionnelles traverse une scène dans la même direction. Imaginez une lumière directionnelle comme une source de lumière à une distance quasi 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 laquelle ils émettent de la lumière. La lumière émise par un projecteur est composée d’un cône intérieur lumineux et d’un cône externe plus grand, l’intensité de la lumière diminuant entre les deux, comme le montre l’illustration suivante.

illustration d’un projecteur avec un cône intérieur et un cône externe

Les projecteurs sont affectés par les chutes, l’atténuation et la plage. Ces facteurs, ainsi que la distance parcourue par la lumière à chaque sommet, sont présents dans le calcul 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 de 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 de projecteur, et la façon dont la lumière diminue entre eux.

Theta est l’angle radian du cône interne du projecteur, et la valeur Phi est l’angle du cône extérieur de la lumière. Falloff contrôle la diminution de l’intensité lumineuse entre le bord externe du cône interne et le bord interne du cône externe. La plupart des applications définissent Falloff sur 1.0 pour créer un repli 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 de lumière intérieur et externe d’un projecteur.

illustration de la façon dont les valeurs phi et theta sont liées aux cônes vedettes

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 interne et n’est pas présente à l’extérieur du cône externe, avec une intensité lumineuse 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 point du vecteur de direction (L) de la lumière 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 vertex qui peut être comparée aux angles cônes de la lumière pour déterminer où le vertex 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.

illustration du vecteur de direction de la lumière et du vecteur du sommet vers le projecteur

Le système compare cette valeur au cosinus des angles de cône intérieur et externe du projecteur. Les valeurs theta et Phi de la lumière représentent les angles cônes totaux pour les cônes internes et externes. Comme l’atténuation se produit lorsque le sommet devient plus éloigné du centre d’éclairage (plutôt que sur l’angle total du cône), le runtime divise ces angles cônes en deux avant de calculer leurs cosinus.

Si le produit en points des vecteurs L et D est inférieur ou égal au cosinus de l’angle cône externe, le sommet se trouve au-delà du cône externe et ne reçoit aucune lumière. Si le produit de points de L et D est supérieur au cosinus de l’angle du cône interne, le sommet se trouve dans le cône interne et reçoit la quantité maximale de lumière, toujours en tenant compte de l’atténuation sur la distance. Si le vertex se trouve quelque part entre les deux régions, le repli est calculé avec l’équation suivante.

formule pour l’intensité lumineuse au sommet, après la chute

où :

  • If est l’intensité lumineuse après la chute
  • Alpha est l’angle entre les vecteurs L et D
  • Theta est l’angle de cône interne
  • Phi est l’angle 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 sommet pour tenir compte des retombées. L’atténuation en tant que facteur de la distance du vertex par rapport à la lumière est également appliquée. Le graphique suivant montre comment différentes valeurs de repli peuvent affecter la courbe de repli.

graphique de l’intensité lumineuse par rapport à la distance de vertex par rapport à la lumière

L’effet de diverses valeurs de repli sur l’éclairage réel est subtil, et une petite pénalité de performance est encourue en façonnant la courbe de repli avec des valeurs de repli autres que 1.0. Pour ces raisons, cette valeur est généralement définie sur 1.0.

Lumières et matériaux