Matemática de iluminação

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. A quantidade total de luz em uma cena é chamada de iluminação global.

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

global_illumination = ambient_lighting + diffuse_lighting + specular_lighting + emissive_lighting;

Iluminação ambiente é a iluminação constante. A iluminação ambiente é constante em todas as direções e fornece cor de forma igual para todos os pixels de um objeto. Ela é rápida de calcular, mas deixa os objetos com uma aparência simples e irreal.

A iluminação difusa depende da direção da luz e da normal da superfície do objeto. A iluminação difusa 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).

A iluminação especular identifica os realces especulares brilhantes que ocorrem quando a luz atinge uma superfície do objeto e reflete de volta em direção à câmera. A iluminação especular é mais intensa do que a luz difusa e incide 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.

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 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. Consulte Fator de atenuação e destaque.

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. Consulte Transformações de espaço de câmera. A iluminação otimizada pode ser calculada no espaço do modelo mediante condições especiais: os vetores normais já estão normalizados, a mistura de vértice 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 ao transformar a posição e a direção da fonte de luz, juntamente com a posição da câmera, para o espaço de modelo usando o inverso da matriz de mundo. Como resultado, se as matrizes de mundo ou modo de exibição apresentam dimensionamento não uniforme, a iluminação resultante pode ser imprecisa.

Nesta seção

Tópico Descrição

Iluminação ambiente

A iluminação ambiente fornece iluminação constante para uma cena. Ele destaca todos os vértices de objeto da mesma forma porque ela não depende de quaisquer outros fatores de iluminação como normais de vértice, direção da luz, posição da luz, intervalo ou atenuação. A iluminação ambiente é constante em todas as direções e fornece cor de forma igual para todos os pixels de um objeto. Ela é rápida de calcular, mas deixa os objetos com uma aparência simples e irreal.

Iluminação difusa

A iluminação difusa depende da direção da luz e da normal da superfície do objeto. A iluminação difusa 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).

Iluminação especular

A iluminação especular identifica os realces especulares brilhantes que ocorrem quando a luz atinge uma superfície do objeto e reflete de volta em direção à câmera. A iluminação especular é mais intensa do que a luz difusa e incide 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.

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 de espaço de câmera

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

Fator de atenuação e destaque

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

 

Luzes e materiais