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.
A iluminação ambiente é o tipo de iluminação mais rápido, mas produz os resultados menos realistas. O Direct3D contém uma única propriedade de luz ambiente global que você pode usar sem criar nenhuma luz. Como alternativa, você pode definir qualquer objeto de luz para fornecer iluminação ambiente.
A iluminação ambiente de uma cena é descrita pela seguinte equação.
Iluminação ambiente = Cₐ*[Gₐ + sum(Atteni*Spoti*Lai)]
Onde:
Parâmetro | Valor padrão | Type | Descrição |
---|---|---|---|
Cₐ | (0,0,0,0) | D3DCOLORVALUE | Material cor ambiente |
Gₐ | (0,0,0,0) | D3DCOLORVALUE | Cor ambiente global |
Atençãoi | (0,0,0,0) | D3DCOLORVALUE | Atenuação da luz da i-ésima luz. Consulte Atenuação e fator de holofote. |
Pontoi | (0,0,0,0) | D3DVECTOR | Fator de holofote da i-ésima luz. Consulte Atenuação e fator de holofote. |
Sum | N/D | N/D | Soma da luz ambiente |
Lai | (0,0,0,0) | D3DVECTOR | Cor ambiente clara da i-ésima luz |
O valor de Cₐ é:
- cor do vértice1, se AMBIENTMATERIALSOURCE = D3DMCS_COLOR1, e a primeira cor do vértice for fornecida na declaração de vértice.
- cor do vértice2, se AMBIENTMATERIALSOURCE = D3DMCS_COLOR2 e a segunda cor do vértice for fornecida na declaração de vértice.
- cor ambiente do material.
Observação Se a opção AMBIENTMATERIALSOURCE for usada e a cor do vértice não for fornecida, a cor ambiente do material será usada.
Para usar a cor ambiente do material, use SetMaterial, conforme mostrado no código de exemplo abaixo.
Gₐ é a cor ambiente global. Ele é definido usando SetRenderState(D3DRS_AMBIENT). Há uma cor de ambiente global em uma cena Direct3D. Esse parâmetro não está associado a um objeto de luz Direct3D.
Lai é a cor ambiente da i-ésima luz na cena. Cada luz Direct3D tem um conjunto de propriedades, uma das quais é a cor ambiente. O termo sum(Lai) é uma soma de todas as cores do ambiente na cena.
Exemplo
Neste exemplo, o objeto é colorido usando a luz ambiente da cena e uma cor ambiente de material.
#define GRAY_COLOR 0x00bfbfbf
Ambient.r = 0.75f;
Ambient.g = 0.0f;
Ambient.b = 0.0f;
Ambient.a = 0.0f;
De acordo com a equação, a cor resultante para os vértices do objeto é uma combinação da cor do material e da cor clara.
As duas ilustrações a seguir mostram a cor do material, que é cinza, e a cor clara, que é vermelho brilhante.
A cena resultante é mostrada na ilustração a seguir. O único objeto na cena é uma esfera. A luz ambiente ilumina todos os vértices do objeto com a mesma cor. Não é dependente da normal de vértice ou da direção da luz. Como resultado, o círculo se parece com um círculo 2D porque não há nenhuma diferença na sombreamento ao redor a superfície do objeto.
Para dar aos objetos uma aparência mais realista, aplique iluminação difusa ou especular, além da iluminação ambiente.
Tópicos relacionados