Efecto de iluminación difusa distante

Utilice el efecto de iluminación lejana-difusa para crear una imagen que parece ser una superficie no reflectante con donde la fuente de luz parece provenir de una distancia larga (como el sol o las luces de sobrecarga) y la luz se dispersa en todas las direcciones. Este efecto usa el canal alfa como mapa de altura y ilumina la imagen con una fuente de luz lejana.

El color del mapa de bits de salida es el resultado del color claro, la posición de la luz y la geometría de la superficie de la imagen. La salida del canal alfa para cada píxel con iluminación difusa siempre es 1.0.

El CLSID de este efecto es CLSID_D2D1DistantDiffuse.

Imagen de ejemplo

En el ejemplo siguiente se muestran las imágenes de entrada y salida del efecto de iluminación difusa distante.

ejemplo de efecto captura de pantalla de las imágenes de entrada y salida del efecto de iluminación difusa distante.

Propiedades de efecto

Enumeración de índice y nombre para mostrar Descripción
Azimuth
D2D1_DISTANTDIFFUSE_PROP_AZIMUTH
Ángulo de dirección de la fuente de luz en el plano XY relativo al eje X en la dirección del reloj en sentido del reloj. Las unidades están en grados y deben estar entre 0 y 360 grados.
El tipo es FLOAT.
El valor predeterminado es 0,0f.
Elevation
D2D1_DISTANTDIFFUSE_PROP_ELEVATION
Ángulo de dirección de la fuente de luz en el plano YZ en relación con el eje Y en la dirección del reloj en sentido del reloj. Las unidades están en grados y deben estar entre 0 y 360 grados.
El tipo es FLOAT.
El valor predeterminado es 0,0f.
DiffuseConstant
D2D1_DISTANTDIFFUSE_PROP_DIFFUSE_CONSTANT
Proporción de reflexión difusa a cantidad de luz entrante. Esta propiedad debe estar entre 0 y 10 000 y no tiene unidad.
El tipo es FLOAT.
El valor predeterminado es 1.0f.
SurfaceScale
D2D1_DISTANTDIFFUSE_PROP_SURFACE_SCALE
Factor de escala en la dirección Z. La escala de superficie no tiene unidad y debe estar entre 0 y 10 000.
El tipo es FLOAT.
El valor predeterminado es 1.0f.
Color
D2D1_DISTANTDIFFUSE_PROP_COLOR
Color de la luz entrante. Esta propiedad se expone como un D2D1_VECTOR_3F (R, G, B) y se usa para calcular LR, LG, LB.
El tipo es D2D1_VECTOR_3F.
El valor predeterminado es {1.0f, 1.0f, 1.0f}.
KernelUnitLength
D2D1_DISTANTDIFFUSE_PROP_KERNEL_UNIT_LENGTH
Tamaño de un elemento del kernel de Sobel usado para generar la superficie normal en la dirección X e Y. Esta propiedad se asigna a los valores dx y dy del degradado sobel. Esta propiedad es un D2D1_VECTOR_2F (Longitud de unidad de kernel X, Longitud de unidad de kernel Y) y se define en (píxeles independientes del dispositivo (DIP)/Unidad de kernel). El efecto usa la interpolación bilineal para escalar el mapa de bits para que coincida con el tamaño de los elementos kernel.
El tipo es D2D1_VECTOR_2F.
El valor predeterminado es {1.0f, 1.0f}.
Scalemode
D2D1_DISTANTDIFFUSE_PROP_SCALE_MODE
Modo de interpolación que usa el efecto para escalar la imagen a la longitud de la unidad de kernel correspondiente. Hay seis modos de escala que oscilan en calidad y velocidad.
El tipo es D2D1_DISTANTDIFFUSE_SCALE_MODE.
El valor predeterminado es D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Modos de escalado

Enumeración Descripción
D2D1_DISTANTDIFFUSE_SCALE_MODE_NEAREST_NEIGHBOR Muestra el punto único más cercano y lo usa. Este modo usa menos tiempo de procesamiento, pero genera la imagen de menor calidad.
D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR Usa una interpolación lineal y una muestra de cuatro puntos. Este modo genera una imagen de mayor calidad que el vecino más cercano.
D2D1_DISTANTDIFFUSE_SCALE_MODE_CUBIC Usa un kernel cúbico de 16 muestras para la interpolación. Este modo usa el tiempo de procesamiento más alto, pero genera una imagen de mayor calidad.
D2D1_DISTANTDIFFUSE_SCALE_MODE_MULTI_SAMPLE_LINEAR Usa 4 muestras lineales dentro de un solo píxel para un buen suavizado de contorno perimetral. Este modo es bueno para reducir verticalmente por pequeñas cantidades en imágenes con pocos píxeles.
D2D1_DISTANTDIFFUSE_SCALE_MODE_ANISOTROPIC Usa el filtrado anisotrópico para muestrear un patrón según la forma transformada del mapa de bits.
D2D1_DISTANTDIFFUSE_SCALE_MODE_HIGH_QUALITY_CUBIC Usa un kernel cúbico de alta calidad de tamaño variable para realizar una escala previa de la imagen si la reducción vertical está implicada en la matriz de transformación. A continuación, usa el modo de interpolación cúbica para la salida final.

Nota

Si no selecciona un modo, el efecto tiene como valor predeterminado D2D1_DISTANTDIFFUSE_SCALE_MODE_LINEAR.

Requisitos

Requisito Value
Cliente mínimo compatible Windows 8 y Actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Servidor mínimo compatible Windows 8 y Actualización de plataforma para Windows 7 [aplicaciones de escritorio | Aplicaciones de la Tienda Windows]
Encabezado d2d1effects.h
Biblioteca d2d1.lib, dxguid.lib

ID2D1Effect