Compartilhar via


Matemática de iluminação

O Modelo de Luz do Direct3D abrange iluminação ambiente, difusa, especular e emissiva. Isso é flexibilidade suficiente para resolver uma ampla gama de situações de iluminação. A quantidade total de luz em uma cena é chamada de iluminação global.

A iluminação global é calculada da seguinte forma:

global_illumination = ambient_lighting + diffuse_lighting + specular_lighting + emissive_lighting;

A iluminação ambiente é uma iluminação constante. A iluminação ambiente é 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 parecendo planos e irrealistas.

A iluminação difusa depende tanto da direção da luz quanto da normal da superfície do objeto. A iluminação difusa varia na superfície de um objeto como resultado da mudança da direção da luz e da mudança do vetor numeral da superfície. Leva mais tempo para calcular a iluminação difusa porque ela muda para cada vértice do objeto, no entanto, a vantagem de usá-la é que ela sombreia os objetos e lhes dá profundidade tridimensional (3D).

A iluminação especular identifica os realces especulares brilhantes que ocorrem quando a luz atinge a superfície de um objeto e reflete de volta para a câmera. A iluminação especular é mais intensa do que a luz difusa e cai mais rapidamente na superfície do objeto. Leva mais tempo para calcular a iluminação especular do que a iluminação difusa, no entanto, a vantagem de usá-la é que ela adiciona detalhes significativos a uma superfície.

A iluminação emissiva é emitido por um objeto; por exemplo, um brilho. A emissão faz com que um objeto renderizado pareça ter iluminação própria. A emissão afeta a cor de um objeto e pode, por exemplo, tornar um material escuro mais claro e adotar parte da cor emitida.

A iluminação realista pode ser obtida aplicando cada um desses tipos de iluminação a uma cena 3D. Os valores calculados para componentes ambiente, emissivo e difuso são gerados como a cor do vértice difuso; O valor do componente de iluminação especular é gerado como a cor do vértice especular. Os valores de luz ambiente, difusa e especular podem ser afetados pela atenuação e pelo fator de holofote de uma determinada luz. Consulte Atenuação e fator de holofote.

Para obter um efeito de iluminação mais realista, você adiciona mais luzes; no entanto, a cena leva mais tempo para ser renderizada. Para obter todos os efeitos que um designer deseja, alguns jogos usam mais energia de CPU do que o normalmente disponível. Nesse caso, é comum 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 ao usar mapas de textura.

A iluminação é calculada no espaço da câmera. Consulte Transformações de espaço da câmera. A iluminação otimizada pode ser calculada no espaço do modelo, quando existem condições especiais: os vetores normais já estão normalizados, a combinação de vértices não é necessária e as matrizes de transformação são ortogonais.

Todos os cálculos de iluminação são feitos no espaço do modelo, transformando a posição e a direção da fonte de luz, juntamente com a posição da câmera, para modelar o espaço usando o inverso da matriz do mundo. Como resultado, se as matrizes de mundo ou de visualização introduzirem uma escala não uniforme, a iluminação resultante poderá ser imprecisa.

Nesta seção

Tópico Descrição

Iluminação ambiente

A iluminação ambiente fornece iluminação constante para uma cena. Ele ilumina todos os vértices do objeto da mesma forma porque não depende de nenhum outro fator de iluminação, como normais de vértice, direção da luz, posição da luz, alcance ou atenuação. A iluminação ambiente é 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 parecendo planos e irrealistas.

Iluminação difusa

A iluminação difusa depende tanto da direção da luz quanto da normal da superfície do objeto. A iluminação difusa varia na superfície de um objeto como resultado da mudança da direção da luz e da mudança do vetor numeral da superfície. Leva mais tempo para calcular a iluminação difusa porque ela muda para cada vértice do objeto, no entanto, a vantagem de usá-la é que ela sombreia os objetos e lhes dá profundidade tridimensional (3D).

Iluminação especular

A iluminação especular identifica os realces especulares brilhantes que ocorrem quando a luz atinge a superfície de um objeto e reflete de volta para a câmera. A iluminação especular é mais intensa do que a luz difusa e cai mais rapidamente na superfície do objeto. Leva mais tempo para calcular a iluminação especular do que a iluminação difusa, no entanto, a vantagem de usá-la é que ela adiciona detalhes significativos a uma superfície.

Iluminação emissiva

A iluminação emissiva é emitido por um objeto; por exemplo, um brilho. A emissão faz com que um objeto renderizado pareça ter iluminação própria. A emissão afeta a cor de um objeto e pode, por exemplo, tornar um material escuro mais claro e adotar parte da cor emitida.

Transformações do espaço da câmera

Os vértices no espaço da câmera são calculados transformando os vértices do objeto com a matriz de visão de mundo.

Atenuação e fator de holofote

Os componentes de iluminação difusa e especular da equação de iluminação global contêm termos que descrevem a atenuação da luz e o cone do holofote.

 

Luzes e materiais