Effet d’éclairage spéculaire par spot
Utilisez l’effet d’éclairage spot-spéculaire pour créer une image qui semble être une surface réfléchissante où la source de lumière est limitée à un cône de lumière dirigé. Cet effet utilise le canal alpha comme carte de hauteur et allume l’image avec une source de lumière ponctuelle.
La couleur de l’image bitmap de sortie est le résultat de la couleur de la lumière, de la position de la lumière, de la direction du cône et de la géométrie de surface en fonction de la partie spéculaire du modèle d’éclairage Phong. La sortie du canal alpha pour chaque pixel avec un éclairage spéculaire est la valeur maximale des sorties de canal rouge, vert et bleu pour ce pixel.
Le CLSID de cet effet est CLSID_D2D1SpotSpecular.
- Exemple d’image
- Source de lumière spot
- Propriétés de l’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 spéculaire spot.
La lumière spéculaire fait référence à la lumière qui est réfléchie dans une direction particulière.
L’effet calcule les valeurs de pixels de sortie finales sont calculées à l’aide des équations ici :
where
Source de lumière spot
Une source de lumière spot émet de la lumière dans un cône dans une direction spécifique et n’émet pas de lumière à l’extérieur du cône.
La source de lumière spot calcule le vecteur L et le vecteur H à mi-parcours de la même façon que l’effet spéculaire ponctuel.
L’effet calcule la couleur de la lumière, Lr, Lg, Lb, en fonction de la position de la source de lumière, comme indiqué dans les équations ici :
Le est défini par les équations suivantes :
Le est défini par les équations suivantes :
Propriétés de l’effet
Nom complet et énumération d’index | Description |
---|---|
LightPosition D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION |
Position de la lumière de la source de lumière ponctuelle. La propriété est un D2D1_VECTOR_3F défini comme (x, y, z). Les unités sont exprimées en pixels indépendants de l’appareil (DIPs) et sont illimitées. Le type est D2D1_VECTOR_3F. La valeur par défaut est {0.0f, 0.0f, 0.0f}. |
PointsAt D2D1_SPOTSPECULAR_PROP_POINTS_AT |
L’endroit où le spot lumineux est concentré. La propriété est exposée en tant que D2D1_VECTOR_3F avec (x, y, z). Les unités se trouvent dans les diPs et les valeurs sont illimitées. Le type est D2D1_VECTOR_3F. La valeur par défaut est {0.0f, 0.0f, 0.0f}. |
Priorité D2D1_SPOTSPECULAR_PROP_FOCUS |
Focus de la lumière du spot. Cette propriété est sans unité et est définie entre 0 et 200. Le type est FLOAT. La valeur par défaut est 1.0f. |
LimitingConeAngle D2D1_SPOT_SPECULAR_PROP_LIMITING_CONE_ANGLE |
Angle cône qui limite la région où la lumière est projetée. Aucune lumière n’est projetée à l’extérieur du cône. L’angle de limitation du cône est l’angle entre l’axe de lumière du spot (l’axe entre les propriétés LightPosition et PointsAt ) et le cône clair spot. Cette propriété est définie en degrés et doit être comprise entre 0 et 90 degrés. Le type est FLOAT. La valeur par défaut est 90.0f. |
SpecularExponent D2D1_SPOTSPECULAR_PROP_SPECULAR_EXPONENT |
Exposant pour le terme spéculaire dans l’équation d’éclairage de Phong. Une valeur plus grande 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.0f. |
SpecularConstant D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
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.0f. |
SurfaceScale D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
Facteur d’échelle dans la direction Z pour générer 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.0f. |
Color D2D1_SPOTSPECULAR_PROP_COLOR |
Couleur de la lumière entrante. Cette propriété est exposée en tant que vecteur 3 (R, G, B) et utilisée pour calculer LR, LG, LB. Le type est D2D1_VECTOR_3F. La valeur par défaut est {1.0f, 1.0f, 1.0f}. |
KernelUnitLength D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
Taille d’un élément dans le noyau Sobel utilisé pour générer la normale de surface dans la direction X et Y. Cette propriété est mappée aux valeurs dx et dy dans le dégradé Sobel. Cette propriété est une D2D1_VECTOR_2F (Kernel Unit Length X, Kernel Unit Length Y) et est définie dans (DIPs/Kernel Unit). L’effet utilise l’interpolation bilinéaire pour mettre à l’échelle la bitmap pour qu’elle corresponde à la taille des éléments du noyau. Le type est D2D1_VECTOR_2F. La valeur par défaut est {1.0f, 1.0f}. |
ScaleMode D2D1_SPOTSPECULAR_PROP_SCALE_MODE |
Mode d’interpolation utilisé par l’effet pour mettre à l’échelle l’image à la longueur d’unité de noyau correspondante. Il existe six modes d’échelle qui varient en qualité et en vitesse. Pour plus d’informations, consultez Modes de mise à l’échelle. Le type est D2D1_SPOTSPECULAR_SCALE_MODE. La valeur par défaut est D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
Modes de mise à l’échelle
Énumération | Description |
---|---|
D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | É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_SPOTSPECULAR_SCALE_MODE_LINEAR | 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_SPOTSPECULAR_SCALE_MODE_CUBIC | Utilise un noyau cube de 16 exemples pour l’interpolation. Ce mode utilise le temps de traitement le plus élevé, mais génère une image de meilleure qualité. |
D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | Utilise 4 exemples linéaires au sein d’un seul pixel pour une bonne anticrénelage de bord. Ce mode est adapté à un scale-down de petites quantités sur des images de quelques pixels. |
D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | Utilise le filtrage anisotrope pour échantillonner un modèle en fonction de la forme transformée de la bitmap. |
D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Utilise un noyau cube de haute qualité de taille variable pour effectuer une mise à l’échelle antérieure de l’image si une mise à l’échelle inférieure est impliquée 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 est D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR par défaut.
Spécifications
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
Serveur minimal pris en charge | Windows 8 et mise à jour de plateforme pour Windows 7 [applications de bureau | Applications du Windows Store] |
En-tête | d2d1effects.h |
Bibliothèque | d2d1.lib, dxguid.lib |