Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Use o efeito de iluminação pontual especular para criar uma imagem que pareça ser uma superfície refletiva, em que a fonte de luz é limitada a um cone de luz direcionado. Este efeito usa o canal alfa como um mapa de altura e ilumina a imagem com uma fonte de luz pontual.
A cor do bitmap de saída é resultado da cor da luz, da posição da luz, da direção do cone e da geometria da superfície de acordo com a parte especular do modelo de iluminação Phong. A saída do canal alfa para cada pixel com iluminação especular é o máximo das saídas de canal vermelho, verde e azul para esse pixel.
O CLSID para este efeito é CLSID_D2D1SpotSpecular.
- Imagem de exemplo
- Fonte de luz spot
- Propriedades de efeito
- Modos de escala
- Requisitos
- Tópicos relacionados
Imagem de exemplo
O exemplo aqui mostra as imagens de entrada e saída do efeito de iluminação especular por pontos.
A luz especular refere-se à luz que é refletida em uma determinada direção.
O efeito calcula os valores de pixel de saída final são calculados usando as equações aqui:
onde
Fonte de luz spot
Uma fonte de luz pontual emite luz em um cone em uma direção específica e não emite luz fora do cone.
A fonte de luz pontual calcula os vetores de luz L e intermediário H da mesma forma que o efeito especular pontual de.
O efeito calcula a cor da luz, Lr, Lg, Lb, em função da posição da fonte de luz como mostrado com as equações aqui:
O vetor
é definido por estas equações:
O vetor
é definido por estas equações:
Propriedades do efeito
| Nome de exibição e enumeração de índice | Descrição |
|---|---|
| Posição de luz D2D1_SPOTSPECULAR_PROP_LIGHT_POSITION |
A posição da luz da fonte luminosa pontual. A propriedade é um D2D1_VETOR_3F definido como (x, y, z). As unidades estão em pixels independentes do dispositivo (DIPs) e são ilimitadas. O tipo é D2D1_VECTOR_3F. O valor padrão é {0.0f, 0.0f, 0.0f}. |
| PontosEm D2D1_SPOTSPECULAR_PROP_POINTS_AT |
Onde o foco está concentrado. A propriedade é exposta como D2D1_VETOR_3F com (x, y, z). As unidades estão em DIPs e os valores são ilimitados. O tipo é D2D1_VETOR_3F. O valor padrão é {0.0f, 0.0f, 0.0f}. |
| Foco D2D1_SPOTSPECULAR_PROP_FOCUS |
O foco do holofote. A propriedade não tem unidade e é definida entre 0 e 200. O tipo é FLOAT. O valor padrão é 1.0f. |
| Limitação do Ângulo do Cone D2D1_SPOT_SPECULAR_PROP_ÂNGULO_DO_CONE_LIMITANTE |
O ângulo do cone que restringe a região onde a luz é projetada. Nenhuma luz é projetada fora do cone. O ângulo do cone limite é o ângulo entre o eixo da luz de foco (o eixo entre as propriedades LightPosition e PointsAt) e o cone de luz de foco. Esta propriedade é definida em graus e deve estar entre 0 a 90 graus. O tipo é FLOAT. O valor padrão é 90.0f. |
| EspecularExpoente D2D1_SPOTSPECULAR_PROP_EXPONENTE_ESPECULAR |
O expoente para o termo especular na equação de iluminação Phong. Um valor maior corresponde a uma superfície mais reflexiva. Este valor é sem unidade e deve estar entre 1,0 e 128. O tipo é FLOAT. O valor padrão é 1.0f. |
| EspecularConstante D2D1_SPOTSPECULAR_PROP_SPECULAR_CONSTANT |
A relação entre a reflexão especular e a luz recebida. O valor é sem unidade e deve estar entre 0 e 10.000. O tipo é FLOAT. O valor padrão é 1.0f. |
| Escala de superfície D2D1_SPOTSPECULAR_PROP_SURFACE_SCALE |
O fator de escala na direção Z para gerar um mapa de altura. O valor é sem unidade e deve estar entre 0 e 10.000. O tipo é FLOAT. O valor padrão é 1.0f. |
| Cor D2D1_SPOTSPECULAR_PROP_COLOR |
A cor da luz que entra. Esta propriedade é exposta como um vetor 3 (R, G, B) e usada para calcular LR, LG, LB. O tipo é D2D1_VETOR_3F. O valor padrão é {1.0f, 1.0f, 1.0f}. |
| KernelUnitLength D2D1_SPOTSPECULAR_PROP_KERNEL_UNIT_LENGTH |
O tamanho de um elemento no kernel Sobel usado para gerar a superfície normal na direção X e Y. Esta propriedade corresponde aos valores dx e dy no gradiente de Sobel. Esta propriedade é um D2D1_VETOR_2F (Kernel Unit Length X, Kernel Unit Length Y) e é definida em (DIPs/Kernel Unit). O efeito usa interpolação bilinear para dimensionar o bitmap para corresponder ao tamanho dos elementos do kernel. O tipo é D2D1_VETOR_2F. O valor padrão é {1.0f, 1.0f}. |
| Modo de escala D2D1_SPOTSPECULAR_PROP_SCALE_MODE |
O modo de interpolação que o efeito usa para dimensionar a imagem para o comprimento correspondente da unidade do kernel. Existem seis modos de escala que variam em qualidade e velocidade. Consulte Modos de escala para obter mais informações. O tipo é D2D1_SPOTSPECULAR_SCALE_MODE. O valor padrão é D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR. |
Modos de escala
| Enumeração | Descrição |
|---|---|
| D2D1_SPOTSPECULAR_SCALE_MODE_NEAREST_NEIGHBOR | Recolhe amostras do ponto único mais próximo e utiliza-o. Este modo usa menos tempo de processamento, mas produz a imagem de menor qualidade. |
| D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR | Utiliza uma amostra de quatro pontos e interpolação linear. Este modo produz uma imagem de qualidade superior à do vizinho mais próximo. |
| D2D1_SPOTSPECULAR_SCALE_MODE_CUBIC | Usa um núcleo cúbico de 16 amostras para interpolação. Este modo utiliza a maior parte do tempo de processamento, mas produz uma imagem de qualidade superior. |
| D2D1_SPOTSPECULAR_SCALE_MODE_MULTI_SAMPLE_LINEAR | Usa 4 amostras lineares dentro de um único pixel para uma boa suavização de borda. Este modo é bom para reduzir em pequenas quantidades em imagens com poucos pixels. |
| D2D1_SPOTSPECULAR_SCALE_MODE_ANISOTROPIC | Usa filtragem anisotrópica para obter amostras de um padrão de acordo com a forma transformada do bitmap. |
| D2D1_SPOTSPECULAR_SCALE_MODE_HIGH_QUALITY_CUBIC | Utiliza um kernel cúbico de alta qualidade com tamanho variável para realizar uma pré-redução da imagem, caso a redução de escala esteja envolvida na matriz de transformação. Em seguida, usa o modo de interpolação cúbica para a saída final. |
Observação
Se você não selecionar um modo, o efeito padrão será D2D1_SPOTSPECULAR_SCALE_MODE_LINEAR.
Requerimentos
| Exigência | Valor |
|---|---|
| Cliente mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
| Servidor mínimo suportado | Windows 8 e Atualização da Plataforma para Windows 7 [aplicações de ambiente de trabalho | Aplicações da Loja Windows] |
| Cabeçalho | d2d1effects.h |
| Biblioteca | d2d1.lib, dxguid.lib |