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.
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 |