Mapeamento de ambiente esférico (Direct3D 9)
Mapas esféricos de ambiente, ou mapas esféricos, são texturas especiais que contêm uma imagem da cena ao redor de um objeto, ou os efeitos de iluminação ao redor do objeto. Ao contrário dos mapas de ambiente cúbico, os mapas esféricos não representam diretamente os arredores de um objeto. A imagem do bule no tópico Mapeamento de Ambiente (Direct3D 9) mostra os efeitos de reflexão que podes obter com o mapeamento de esfera. Um mapa esférico é uma representação 2D da visão completa de 360 graus da cena ao redor de um objeto, como se fosse tirada através de uma lente olho de peixe, como mostrado na ilustração a seguir.
Coordenadas de textura para mapas de ambiente esférico
As coordenadas de textura especificadas para cada vértice que recebe um mapeamento de ambiente devem abordar a textura em função da distorção reflexiva criada pela curvatura da superfície. As aplicações devem calcular essas coordenadas de textura para cada vértice para alcançar o efeito desejado. Uma maneira simples e eficaz de gerar coordenadas de textura usa o vértice normal como entrada. Embora existam vários métodos, a equação a seguir é comum entre aplicativos que executam mapeamento de ambiente com mapas esféricos.
Nessas fórmulas, u e v são as coordenadas de textura que estão sendo calculadas, e NX e NY são os componentes x e y do vértice do espaço da câmera normal. A fórmula é simples, mas eficaz. Se o normal tem um componente x positivo, o normal aponta para a direita, e a coordenada u é ajustada para abordar a textura adequadamente. Da mesma forma para a coordenada v: positivo y indica que o normal aponta para cima. O oposto é verdadeiro para valores negativos em cada componente.
Se o normal aponta diretamente para a câmara, as coordenadas resultantes não devem receber distorção. O viés de +0,5 para ambas as coordenadas coloca o ponto de distorção zero no centro do mapa da esfera, e um vértice normal de (0, 0, z) aborda esse ponto. Esta fórmula não leva em conta o componente z do normal, mas os aplicativos que usam a fórmula podem otimizar cálculos pulando vértices com um normal que tem um elemento z positivo. Isso funciona para objetos com sombreamento plano porque, no espaço da câmera, se a normal aponta para longe da câmera (z positivo), o vértice é eliminado quando o objeto é renderizado. Para objetos sombreados por Gouraud, uma normal pode apontar para longe da câmara (x positivo), e o triângulo que contém o vértice ainda pode ser visível. Se não calculares u e v para este vértice, a face ainda pode ser utilizada, resultando num comportamento inesperado.
Aplicação de mapas esféricos de ambiente
Você aplica um mapa de ambiente a objetos da mesma maneira que para qualquer outra textura, definindo a textura para o estágio de textura apropriado com o método IDirect3DDevice9::SetTexture. Defina o primeiro parâmetro para o índice do estágio de textura desejado e o segundo parâmetro para o endereço da interface IDirect3DDevice9 retornada quando criou a textura para o mapa de ambiente. Você pode definir as operações e argumentos de mistura de cor e alfa conforme necessário para obter os efeitos de mistura de textura desejados.
Tópicos relacionados