Radiance HDR (.hdr)
Radiance PadrãoRadiance RGBE (HDR) é o formato pioneiro de alta faixa dinâmica criado para o sistema de imagem sintética Radiance. Ele armazena valores de luminância fotometricamente precisos com um expoente compartilhado de 8 bits.
Inspeção e metadados
Sistemas operacionais e analisadores de arquivos identificam arquivos HDR pela sequência inicial de bytes:
Assinatura do arquivo em bytes (magic bytes)
Sistemas operacionais e analisadores de arquivos identificam arquivos HDR pela sequência inicial de bytes:
ASSINATURA HEXADECIMAL (DESLOCAMENTO 0):
23 3F 52 41 44 49 41 4E 43 45 0AREPRESENTAÇÃO ASCII: #?RADIANCE\n
Padronização: Radiance Synthetic Imaging System Standard
Especificações técnicas
| Estrutura do contêiner | Cabeçalho ASCII terminado por uma linha vazia, seguido pela cadeia de resolução e por linhas de varredura binárias em RLE |
| Compressão | Codificação adaptativa por comprimento de sequência (RLE), aplicada a cada linha de cada canal |
| Ordem dos bytes (endianness) | Big-endian / ordem de bytes de rede |
| Espaços de cor | RGB linear Rec.709 com coordenadas de cromaticidade CIE |
| Canais e Estrutura | RGBE: vermelho, verde e azul (mantissas de 8 bits) e expoente compartilhado de 8 bits |
| Dimensões Máximas | Praticamente ilimitadas (cadeias de resolução com inteiros sem sinal de 32 bits) |
| Transparência | Nenhuma (medições físicas de luminância radiante) |
| Streaming e Progressivo | Processamento sequencial em fluxo, linha de varredura por linha de varredura |
Matriz de comparação técnica: HDR e formatos concorrentes
| Atributo técnico | HDR (Atual) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Codificação de pixels | RGBE de 32 bits (expoente compartilhado de 8 bits) | Meia precisão de 16 bits / ponto flutuante de 32 bits por canal | Inteiro de 8/16 bits ou ponto flutuante de 32 bits | Inteiro com codificação gama de 8 bits |
| Principal uso | Iluminação de ambientes em 360 graus (IBL) | Composição de múltiplas passagens de VFX | Fotografia e pré-impressão | Gráficos web padrão |
| Faixa dinâmica | 76 ordens de grandeza (10^-38 a 10^38) | Faixa de ponto flutuante praticamente infinita | Varia conforme a profundidade de bits | Intervalo SDR limitado de 8 bits |
| Canais compatíveis | Apenas RGB | Canais arbitrários ilimitados | Múltiplos canais arbitrários | RGB/CMYK |
Modos comuns de corrupção e guia de recuperação com editor hexadecimal
A imagem apresenta faixas horizontais por todo o quadro.
Causa principal: Byte corrompido que indica o comprimento da sequência durante a descompressão RLE das linhas de varredura.
Recuperação: Reconstrua os marcadores danificados das linhas de varredura com a ferramenta de reparo HDR do File2File.app ou converta o arquivo para EXR.
Análise de segurança e vetores de ataque a analisadores
Decodificadores Radiance HDR costumam analisar as linhas do cabeçalho ASCII com rotinas de cadeia de caracteres sem limite, o que pode causar estouro de buffer na pilha.
Vetores de ataque conhecidos
- Chamadas sem limite a sprintf/sscanf ao ler cadeias de resolução no cabeçalho ("-Y %d +X %d").
- Escrita fora dos limites do heap ao decodificar linhas de varredura RLE malformadas.
- Estouro de inteiro ao alocar buffers de destino para valores de ponto flutuante de 32 bits.
Melhores práticas defensivas: Valide o comprimento do cabeçalho ASCII e as dimensões das linhas de varredura antes de alocar os buffers de imagem.
Origens históricas e marcos
Principais vantagens
- Ocupa apenas 32 bits por pixel e abrange 76 ordens de grandeza de luminância física.
- É compatível com os principais programas de renderização 3D (Blender, Unreal Engine, Unity, Cinema 4D) para mapas de ambiente em 360 graus.
- A estrutura de arquivo simples e robusta é fácil de implementar em qualquer plataforma de software.
Limitações técnicas e desvantagens
- A codificação com expoente compartilhado de 8 bits pode causar faixas de quantização em áreas muito escuras.
- Os canais RGB não armazenam números negativos nem camadas arbitrárias de múltiplas passagens.
- Foi amplamente substituído pelo OpenEXR na produção de efeitos visuais com múltiplas passagens.
Curiosidades técnicas
- Cada arquivo Radiance HDR começa com o cabeçalho de texto '#?RADIANCE' ou '#?RGBE'.
- O formato foi criado para simular a iluminação física de edifícios antes de sua construção.
- O artigo de Paul Debevec, publicado no SIGGRAPH em 1997, "Recovering High Dynamic Range Radiance Maps from Photographs", usou esse formato para revolucionar a iluminação em CGI.
Perguntas técnicas frequentes
Para que serve um arquivo HDRI em 3D?
Arquivos HDRI (.hdr) são usados como mapas panorâmicos de ambiente em 360 graus, fornecendo iluminação, sombras e reflexos fotorrealistas do mundo real a objetos 3D.
Como funciona a codificação RGBE de 32 bits?
Em vez de armazenar três números de ponto flutuante separados, o RGBE usa 8 bits para cada canal (vermelho, verde e azul) e mais um expoente compartilhado de 8 bits. Assim, representa toda a faixa dinâmica HDR em apenas 4 bytes por pixel.
Posso converter HDR para JPG?
Sim. O File2File.app pode aplicar mapeamento de tons e converter arquivos Radiance HDR de 32 bits em imagens JPG ou PNG padrão diretamente no navegador.