Partilhar via


Iluminação HDR (Direct3D 9)

A iluminação no mundo real contém uma gama dinâmica muito elevada (HDR) de valores de luminância. O mundo real tem cerca de 10 ordens de faixa dinâmica (DR) para valores de luminância espalhados por todo o espectro da escuridão até o brilho. Por outro lado, uma tela de computador tem uma gama de exibição muito limitada (ou faixa de valores de luminância): aproximadamente duas ordens de faixa dinâmica. O desafio para produzir imagens renderizadas HDR é mapear os valores HDR do mundo real na gama limitada de uma tela de computador.

O mapeamento de tons é a técnica usada pelo DirectX para mapear informações HDR em um intervalo mais limitado. O mapeamento de tons aplicado à renderização CGI pode melhorar drasticamente a quantidade de detalhes de iluminação renderizados, permitindo que detalhes nas áreas mais escuras sejam vistos e fornecendo contraste em áreas que são tão brilhantes que parecem queimadas. As cenas resultantes são renderizadas com muito mais detalhes visíveis de iluminação.

Exemplo de HDRLighting é um SDK que demonstra a iluminação HDR.

Mapeamento de tons

O mapeamento de tons geralmente simula fenômenos óticos que não podem ser causados pelo DR do monitor. Exemplos disso são reflexos ou efeitos de floração (que são principalmente propriedades das lentes), a mudança azul que acontece no olho humano em condições de pouca luz, e outras adaptações que são resultado da bioquímica do olho. Se o DR da tela fosse grande o suficiente, o mapeamento de tons não seria tão necessário, exceto para fornecer efeitos artísticos ou algumas das propriedades de uma lente de câmera ou um dispositivo de carga acoplada (CCD).

O mapeamento de tons divide o intervalo de valores de luminância em uma cena em um conjunto de zonas. Cada zona engloba uma gama de valores de luminância.

HDR usa os seguintes termos:

  • Zona - gama de valores de luminância
  • Cinza médio - região de brilho médio da cena
  • Faixa dinâmica - relação entre a luminância de cena mais alta e a luminância de cena mais baixa
  • Chave - medição subjetiva da iluminação da cena: varia de claro a moderado a escuro

Para calcular a luminância a partir de valores RGB, use o seguinte:

L = 0.27R + 0.67G + 0.06B;

A luminância log-média é uma aproximação útil para a chave de uma cena. Uma equação geral tem esta aparência:

Lw = exp[ 1 / N( soma[ log( delta + Lw( x, y ) ] ) ]

Onde:

  • Lw - luminância média logarítmica
  • N - número de pixels na imagem
  • delta - um pequeno fator para evitar problemas com pixels pretos
  • Lw( x, y ) - a luminância no espaço do mundo para o píxel ( x, y )

Para mapear isso para um valor de cinza médio, aqui está um operador de escala de luminância:

L( x, y ) = a * Lw( x, y ) / Lw

Onde:

  • L( x, y ) - luminância dimensionada para pixel ( x, y )
  • a - valor chave da imagem após a aplicação do dimensionamento

E, finalmente, aqui está um operador de mapeamento de tom simples para comprimir as altas luminâncias:

Ld( x, y ) = L( x, y ) / ( 1 + L( x, y )

Onde:

  • Ld( x, y ) - luminância comprimida e dimensionada para pixel ( x, y )
  • a - valor chave da imagem após a aplicação do dimensionamento

Este operador dimensiona luminâncias altas em 1/L e luminâncias baixas em 1. Para obter mais detalhes, consulte o seguinte documento.

Reinhard, Erik, Mike Stark, Peter Shirley e James Ferwerda. "Reprodução de Tom Fotográfico para Imagens Digitais". ACM Transactions on Graphics (TOG), Actas da 29.ª Conferência Anual sobre Gráficos Computorizados e Técnicas Interativas (SIGGRAPH), pp. 267-276. Nova Iorque, NY: ACM Press, 2002.

Tópicos Avançados