Partilhar via


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

O modelo de luz Direct3D abrange iluminação ambiente, difusa, especular e emissiva. Isto é flexibilidade suficiente para resolver uma vasta gama de situações de iluminação. Você se refere à quantidade total de luz em uma cena como a iluminação global e calcula-a usando a seguinte equação.

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

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

de iluminação difusa (Direct3D 9) depende da direção da luz e da superfície do objeto normal. Varia ao longo da superfície de um objeto como resultado da mudança da direção da luz e da mudança do vetor numérico da superfície. Leva mais tempo para calcular a iluminação difusa porque ela muda para cada vértice do objeto, no entanto, o benefício de usá-lo é que ele sombreia os objetos e lhes dá profundidade tridimensional (3D). Para ver como a iluminação difusa é calculada no Direct3D, consulte Iluminação difusa (Direct3D 9).

Iluminação especular (Direct3D 9) identifica os destaques especulares brilhantes que ocorrem quando a luz atinge a superfície de um objeto e reflete de volta para a câmera. É mais intensa do que a luz difusa e cai mais rapidamente através da superfície do objeto. Demora mais tempo a calcular a iluminação especular do que a iluminação difusa, no entanto, a vantagem de a utilizar é que acrescenta detalhes significativos a uma superfície. Para ver como a iluminação especular é calculada no Direct3D, consulte Iluminação especular (Direct3D 9).

Iluminação Emissiva (Direct3D 9) é a 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 conseguida aplicando cada um destes tipos de iluminação a uma cena 3D. Os valores calculados para os componentes ambiente, emissivo e difuso são emitidos como a cor do vértice difuso; o valor para o componente de iluminação especular é emitido como a cor do vértice especular. Os valores de luz ambiente, difusa e especular podem ser afetados pelo fator de atenuação e holofote de uma dada luz. Para obter mais informações sobre como a atenuação funciona, consulte Attenuation and Spotlight Fator (Direct3D 9).

Para obter um efeito de iluminação mais realista, você adiciona mais luzes; no entanto, a cena leva mais tempo para renderizar. Para alcançar todos os efeitos que um designer deseja, alguns jogos usam mais energia da CPU do que é comumente disponível. Neste caso, é típico reduzir o número de cálculos de iluminação ao mínimo usando mapas de iluminação e mapas de ambiente para adicionar iluminação a uma cena enquanto usa mapas de textura.

A iluminação é calculada no espaço da câmara. Para ver como as transformações de iluminação são calculadas, consulte Transformações do 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), a mistura de vértices não é necessária, as matrizes de transformação são ortogonais e assim por diante.

Luzes e Materiais