Effet d’éclairage spéculaire par point
Utilisez l’effet d’éclairage point-spéculaire pour créer une image qui semble être une surface réfléchissante. L’effet utilise le canal alpha de l’image comme carte de hauteur et une source de lumière de point que vous placez, puis calcule la réflexion et la lumière en fonction de la partie spéculaire du modèle d’éclairage Phong.
La couleur de l’image bitmap de sortie est un résultat de la couleur claire, de la position de la lumière et de la géométrie de la surface. La sortie de canal alpha pour chaque pixel avec éclairage spéculaire est le nombre maximal de sorties de canal rouge, vert et bleu pour ce pixel.
Le CLSID de cet effet est CLSID _ D2D1PointSpecular.
- Exemple d’image
- Source de lumière de point
- Carte de hauteur et vecteur normal
- Constante d’éclairage spéculaire et exposant
- Propriétés d’effet
- Modes de mise à l’échelle
- Configuration requise
- Rubriques connexes
Exemple d’image
L’exemple ci-dessous montre les images d’entrée et de sortie de l’effet d’éclairage de point-spéculaire.

La lumière spéculaire fait référence à la lumière qui est reflétée dans une direction spécifique en fonction du modèle d’éclairage Phong.

L’effet calcule les valeurs de pixel de sortie finales à l’aide des équations ici :

where
- DK? = constante d’éclairage spéculaire.
= vecteur d’unité normale de surface qui est une fonction de x et y. Consultez carte de hauteur et vecteur normal pour les calculs.
= vecteur d’unité « mi » entre le vecteur d’unité oculaire et le vecteur d’unité clair. Consultez source de lumière de point pour les calculs.Lr, lg, lb = couleur claire des composants RVB.
Vous définissez la constante d’éclairage spéculaire sur la propriété SpecularConstant et la couleur claire comme propriété de couleur .
Source de lumière de point
Une source de lumière de point émet de la lumière dans toutes les directions comme dans l’image ici.

Vous définissez la position de la source de lumière à l’aide de la propriété LightPosition . L’effet calcule le vecteur clair, L, pour une source de lumière de point à l’aide des équations ici :

où Light ?, Lightyet Lightz sont la position de la lumière d’entrée. L’effet calcule le vecteur à mi-
comme défini dans le modèle d’éclairage Phong, à l’aide de l’équation ici. Le modèle d’éclairage suppose que le vecteur oculaire,
, se trouve à (0, 0, 1).

L et H sont normalisés en vecteurs de longueur unitaire.
Carte de hauteur et vecteur normal
L’effet génère une carte de hauteur pour l’image d’entrée en fonction de son canal alpha.
Le composant Height (Z) est calculé à l’aide de l’équation suivante :

L’effet calcule la normale de la surface,
, pour la bitmap d’entrée à l’aide d’un dégradé Sobel.
Constante d’éclairage spéculaire et exposant
La lumière spéculaire représente la lumière réfléchie à partir de la surface du de la carte de la hauteur de l’image. Vous spécifiez la propriété SpecularExponent qui détermine la quantité de réflexion spéculaire à partir de l’image bitmap.
Les exposants plus grands représentent des objets shinier et reflètent la lumière dans une forme plus ciblée.
La propriété SpecularConstant K ? définit la quantité de lumière réfléchie comme rapport de la lumière entrante.
Propriétés d’effet
| Nom complet et énumération d’index | Description |
|---|---|
| LightPosition POSITION de la _ lumière d2d1 POINTSPECULAR _ prop _ _ |
Position claire de la source de lumière de point. La propriété est un _ vecteur d2d1 _ 3F défini en tant que (x, y, z). Les unités sont en pixels indépendants du périphérique (DIP) et les valeurs sont sans unité et illimitée. Le type est D2D1 _ Vector _ 3F. La valeur par défaut est {0.0 f, 0.0 f, 0.0 f}. |
| SpecularExponent _ _ _ Exposant spéculaire d2d1 POINTSPECULAR prop _ |
Exposant du terme spéculaire dans l’équation d’éclairage Phong. Une plus grande valeur correspond à une surface plus réfléchissante. Cette valeur est sans unité et doit être comprise entre 1,0 et 128. Le type est FLOAT. La valeur par défaut est 1,0 f. |
| SpecularConstant _ _ _ Constante spéculaire d2d1 POINTSPECULAR prop _ |
Rapport entre la réflexion spéculaire et la lumière entrante. La valeur est sans unité et doit être comprise entre 0 et 10 000. Le type est FLOAT. La valeur par défaut est 1,0 f. |
| SurfaceScale _Échelle de surface d2d1 POINTSPECULAR _ prop _ _ |
Facteur d’échelle dans la direction Z pour la génération d’une carte de hauteur. La valeur est sans unité et doit être comprise entre 0 et 10 000. Le type est FLOAT. La valeur par défaut est 1,0 f. |
| Couleur _Couleur d2d1 POINTSPECULAR _ prop _ |
Couleur de la lumière entrante. Cette propriété est exposée en tant que _ vecteur d2d1 _ 3F (R, G, B) et utilisée pour calculer lR, lG, lB. Le type est D2D1 _ Vector _ 3F. La valeur par défaut est {1.0 f, 1.0 f, 1.0 f}. |
| KernelUnitLength Longueur de l' _ unité de noyau d2d1 POINTSPECULAR _ prop _ _ _ |
Taille d’un élément dans le noyau Sobel utilisé pour générer la surface normale dans les directions X et Y. Cette propriété est mappée aux valeurs DX et dy dans le dégradé Sobel. Cette propriété est un _ vecteur d2d1 _ 2F (longueur d’unité de noyau X, longueur d’unité de noyau Y) et est défini dans (DIP/unité noyau). L’effet utilise l’interpolation bilinéaire pour mettre à l’échelle l’image bitmap afin qu’elle corresponde à la taille des éléments de noyau. Le type est D2D1 _ Vector _ 2F. La valeur par défaut est {1.0 f, 1.0 f}. |
| Devient MODE de mise à l' _ échelle d2d1 POINTSPECULAR _ prop _ _ |
Mode d’interpolation utilisé par l’effet pour mettre l’image à l’échelle de la longueur de l’unité de noyau correspondante. Il existe six modes de mise à l’échelle qui vont de la qualité et de la vitesse. Pour plus d’informations, consultez modes de mise à l' échelle . Le type est D2D1 _ POINTSPECULAR _ Scale _ mode. La valeur par défaut est D2D1 _ POINTSPECULAR _ Scale _ mode _ linéaire. |
Modes de mise à l’échelle
| Énumération | Description |
|---|---|
| MODE de mise à l' _ échelle d2d1 POINTSPECULAR _ _ _ le plus proche _ voisin | Échantillonne le point unique le plus proche et l’utilise. Ce mode utilise moins de temps de traitement, mais génère l’image de qualité la plus faible. |
| D2D1 mode de mise à l' _ _ échelle POINTSPECULAR _ _ linéaire | Utilise un échantillon à quatre points et une interpolation linéaire. Ce mode génère une image de qualité supérieure à celle du voisin le plus proche. |
| D2D1 mode de mise à l' _ _ échelle POINTSPECULAR _ _ cubique | Utilise un exemple de noyau cubique 16 pour l’interpolation. Ce mode utilise le plus de temps de traitement, mais génère une image de qualité supérieure. |
| MODE de mise à l' _ échelle d2d1 POINTSPECULAR _ multi- _ _ _ exemple _ linéaire | Utilise 4 échantillons linéaires au sein d’un même pixel pour une bonne anticrénelage. Ce mode est adapté à la réduction de la taille des images avec quelques pixels. |
| D2D1 _ _ mode Scale _ POINTSPECULAR _ anisotrope | Utilise le filtrage anisotrope pour échantillonner un modèle en fonction de la forme transformée de l’image bitmap. |
| D2D1 _ POINTSPECULAR _ _ en mode Scale de _ haute _ qualité _ cubique | Utilise un noyau cubique de haute qualité variable pour effectuer une pré-réduire de l’image si downscaling est impliqué dans la matrice de transformation. Utilise ensuite le mode d’interpolation cubique pour la sortie finale. |
Notes
Si vous ne sélectionnez pas de mode, l’effet par défaut est D2D1 _ POINTSPECULAR _ Scale _ mode _ linéaire.
Spécifications
| Condition requise | Valeur |
|---|---|
| Client minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| Serveur minimal pris en charge | mise à jour Windows 8 et de plateforme pour les applications de bureau Windows 7 Windows les applications du windows [ | Store] |
| En-tête | d2d1effects. h |
| Bibliothèque | d2d1. lib, dxguid. lib |