Compartilhar via


Matemática da Iluminação (Direct3D 9)

O modelo de luz do Direct3D abrange a iluminação ambiente, difusa, especular e de emissão. Isso é flexibilidade suficiente para solucionar problemas de uma diversas situações de iluminação. Você se refere à quantidade total de luz em uma cena como a iluminação global e a calcula usando a equação a seguir.

Global Illumination = Ambient Light + Diffuse Light + Specular Light + Emissive Light 

A Iluminação Ambiente (Direct3D 9) é uma iluminação constante. É constante em todas as direções e colore todos os pixels de um objeto da mesma forma. Ela é rápida de calcular, mas deixa os objetos com uma aparência simples e irreal. Para ver como a iluminação ambiente é calculada pelo Direct3D, consulte Iluminação ambiente (Direct3D 9).

A Iluminação Difusa (Direct3D 9) depende da direção da luz e da superfície do objeto normal. Ele varia entre a superfície de um objeto como resultado da alteração da direção da luz e da alteração do vetor numeral da superfície. É necessário mais tempo para calcular a iluminação difusa porque ela é alterada para cada vértice de objeto, mas a vantagem de usá-la é que ela sombreia objetos e dá a eles profundidade tridimensional (3D). Para ver como a iluminação difusa é calculada no Direct3D, consulte Iluminação difusa (Direct3D 9).

A Iluminação Especular (Direct3D 9) identifica os realces especulares brilhantes que ocorrem quando a luz atinge uma superfície de objeto e reflete de volta em direção à câmera. É mais intenso do que a luz difusa e cai mais rapidamente na superfície do objeto. O cálculo da iluminação especular demora mais do que o da iluminação difusa, no entanto, a vantagem de usá-lo é que ele adiciona detalhes significativas à superfície. Para ver como a iluminação especular é calculada no Direct3D, consulte Iluminação especular (Direct3D 9).

A Iluminação Emissiva (Direct3D 9) é uma luz emitida por um objeto ; por exemplo, um brilho. Para ver como a iluminação emissiva é calculada no Direct3D, consulte Iluminação emissiva (Direct3D 9).

A iluminação realista pode ser realizada ao aplicar cada um desses tipos de iluminação a uma cena 3D. Os valores calculados para componentes de ambiente, emissão e difusa são reproduzidos como a cor do vértice difusa; o valor do componente de iluminação especular é reproduzido como a cor do vértice especular. Os valores de luz ambiente, difusa e especular podem ser afetados pelo fator de atenuação e destaque da luz específica. Para obter mais informações sobre como funciona a atenuação, consulte Atenuação e fator de destaque (Direct3D 9).

Para obter um efeito de iluminação mais realista, é possível adicionar mais luzes; no entanto, a cena leva mais tempo para renderizar. Para obter todos os efeitos desejados por um designer, alguns jogos usam mais processamento da CPU do que está normalmente disponível. Nesse caso, é comum reduzir o número de cálculos de iluminação ao mínimo usando mapas de luz e ambiente para adicionar a iluminação à cena com mapas de textura.

A iluminação é calculada no espaço da câmera. Para ver como as transformações de iluminação são calculadas, consulte Transformações de espaço da câmera (Direct3D 9). A iluminação otimizada pode ser calculada no espaço do modelo, quando existem condições especiais: vetores normais já estão normalizados (D3DRS_NORMALIZENORMALS é True), mesclagem de vértice não é necessária, matrizes de transformação são ortogonais e assim por diante.

Luzes e materiais