Partager via


Propriétés de lumière

Les propriétés de lumière décrivent le type d’une source de lumière (point, directionnel, projecteur), atténuation, couleur, direction, position et plage. Selon le type de lumière utilisé, une lumière peut avoir des propriétés pour l’atténuation et la plage, ou pour les effets à la une. Tous les types de lumières n’utilisent pas toutes les propriétés.

Les propriétés de position, de plage et d’atténuation définissent l’emplacement d’une lumière dans l’espace mondial et la façon dont la lumière qu’elle émet se comporte sur la distance.

Atténuation légère

L’atténuation contrôle la diminution de l’intensité d’une lumière vers la distance maximale spécifiée par la propriété de plage. Trois valeurs à virgule flottante sont parfois utilisées pour représenter l’atténuation de la lumière : atténuation0, atténuation1 et atténuation2. Ces valeurs à virgule flottante allant de 0,0 à l’infini, contrôlant l’atténuation d’une lumière. Certaines applications définissent le membre Attenuation1 sur 1,0 et les autres sur 0,0, ce qui entraîne une intensité de lumière qui change comme 1 / D, où D est la distance entre la source de lumière et le sommet. L’intensité maximale de la lumière est à la source, décroissant à 1 / (plage de lumières) à la plage de la lumière.

Bien qu’en règle générale, une application affecte à Attenuation0 la valeur 0.0, attenuation1 à une valeur constante et Attenuation2 à 0,0, des effets de lumière variables peuvent être atteints en modifiant ce paramètre. Vous pouvez combiner des valeurs d’atténuation pour obtenir des effets d’atténuation plus complexes. Vous pouvez également les définir sur des valeurs en dehors de la plage normale pour créer des effets d’atténuation même étrangers. Toutefois, les valeurs d’atténuation négatives ne sont pas autorisées. Voir attenuation et facteur à la une.

Couleur claire

Les lumières dans Direct3D émettent trois couleurs utilisées indépendamment dans les calculs d’éclairage du système : une couleur diffuse, une couleur ambiante et une couleur spéculaire. Chacun est incorporé par le module d’éclairage Direct3D, qui interagit avec un équivalent du matériau actuel, pour produire une couleur finale utilisée dans le rendu. La couleur diffuse interagit avec la propriété de réflectance diffuse du matériau actuel, la couleur spéculaire avec la propriété de réflectance spéculaire du matériau, et ainsi de suite. Pour plus d’informations sur la façon dont Direct3D applique ces couleurs, consultez Mathématiques de l’éclairage.

Dans une application Direct3D, il existe généralement trois valeurs de couleur : Diffuse, Ambient et Specular qui définit la couleur émise.

Le type de couleur qui s’applique le plus fortement aux calculs du système est la couleur diffuse. La couleur diffuse la plus courante est blanche (R :1.0 G :1.0 B :1.0), mais vous pouvez créer des couleurs selon les besoins pour obtenir les effets souhaités. Par exemple, vous pouvez utiliser la lumière rouge pour une cheminée, ou vous pouvez utiliser la lumière verte pour un signal de circulation défini sur « Go ».

En règle générale, vous définissez les composants de couleur claire sur les valeurs comprises entre 0.0 et 1.0, inclus, mais ce n’est pas une exigence. Par exemple, vous pouvez définir tous les composants sur 2.0, créant une lumière « plus brillante que blanche ». Ce type de paramètre peut être particulièrement utile lorsque vous utilisez des paramètres d’atténuation autres que la constante.

Bien que Direct3D utilise des valeurs RVBA pour les lumières, le composant de couleur alpha n’est pas utilisé.

Généralement, les couleurs du matériau sont utilisées pour l’éclairage. Toutefois, vous pouvez spécifier que les couleurs matérielles emissives, ambiantes, diffuses et spéculaires doivent être remplacées par des couleurs de vertex diffuses ou spéculaires.

La valeur alpha/transparence provient toujours du canal alpha de la couleur diffuse.

La valeur de brouillard provient toujours du canal alpha de la couleur spéculaire.

Direction de la lumière

La propriété de direction d’une lumière détermine la direction que la lumière émise par l’objet voyage, dans l’espace mondial. La direction est utilisée uniquement par les lumières directionnelles et les projecteurs, et est décrite avec un vecteur.

Définissez la direction de la lumière en tant que vecteur. Les vecteurs de direction sont décrits comme des distances à partir d’une origine logique, quelle que soit la position de la lumière dans une scène. Par conséquent, un projecteur qui pointe directement dans une scène - le long de l’axe z positif - a un vecteur de direction de <0,0,1> peu importe où sa position est définie pour être. De même, vous pouvez simuler la lumière du soleil directement sur une scène à l’aide d’une lumière directionnelle dont la direction est <de 0,-1,0>. Vous n’avez pas besoin de créer des lumières qui brillent le long des axes de coordonnées ; vous pouvez mélanger et mettre en correspondance des valeurs pour créer des lumières qui brillent à des angles plus intéressants.

Bien que vous n’ayez pas besoin de normaliser le vecteur de direction d’une lumière, assurez-vous toujours qu’il a une magnitude. En d’autres termes, n’utilisez pas de <vecteur de direction de 0,0,0> .

Position de lumière

La position de lumière est décrite à l’aide d’une structure vectorielle. Les coordonnées x, y et z sont supposées être dans l’espace mondial. Les lumières directionnelles sont le seul type de lumière qui n’utilise pas la propriété position.

Plage de lumières

La propriété de plage d’une lumière détermine la distance, dans l’espace mondial, à laquelle les maillages d’une scène ne reçoivent plus la lumière émise par cet objet. Les lumières directionnelles n’utilisent pas la propriété de plage.

Lumières et matériaux