Radiance HDR (.hdr)

Radiance Padrão

Radiance 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:

Selecione ou solte os arquivos aqui

Privado - os arquivos nunca saem do seu dispositivo

ou colar Ctrl+V
Garantia de privacidade sem transmissão pela rede 0 bytes enviados a servidores externos. Todo o processamento ocorreu localmente no ambiente isolado do navegador.

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 0A

REPRESENTAÇÃO ASCII: #?RADIANCE\n

Padronização: Radiance Synthetic Imaging System Standard

Especificações técnicas

Estrutura do contêinerCabeçalho ASCII terminado por uma linha vazia, seguido pela cadeia de resolução e por linhas de varredura binárias em RLE
CompressãoCodificaçã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 corRGB linear Rec.709 com coordenadas de cromaticidade CIE
Canais e EstruturaRGBE: vermelho, verde e azul (mantissas de 8 bits) e expoente compartilhado de 8 bits
Dimensões MáximasPraticamente ilimitadas (cadeias de resolução com inteiros sem sinal de 32 bits)
TransparênciaNenhuma (medições físicas de luminância radiante)
Streaming e ProgressivoProcessamento sequencial em fluxo, linha de varredura por linha de varredura

Matriz de comparação técnica: HDR e formatos concorrentes

Atributo técnicoHDR (Atual)EXRTIFFJPEG
Codificação de pixelsRGBE de 32 bits (expoente compartilhado de 8 bits)Meia precisão de 16 bits / ponto flutuante de 32 bits por canalInteiro de 8/16 bits ou ponto flutuante de 32 bitsInteiro com codificação gama de 8 bits
Principal usoIluminação de ambientes em 360 graus (IBL)Composição de múltiplas passagens de VFXFotografia e pré-impressãoGráficos web padrão
Faixa dinâmica76 ordens de grandeza (10^-38 a 10^38)Faixa de ponto flutuante praticamente infinitaVaria conforme a profundidade de bitsIntervalo SDR limitado de 8 bits
Canais compatíveisApenas RGBCanais arbitrários ilimitadosMúltiplos canais arbitráriosRGB/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

2000Paul Debevec populariza a iluminação baseada em imagens HDR (IBL) na computação gráfica usando arquivos Radiance .hdr.
1997A codificação adaptativa por comprimento de sequência nas linhas de varredura é padronizada para reduzir o tamanho dos arquivos.
1989Greg Ward cria a codificação de pixels RGBE de 32 bits e o formato .hdr no Lawrence Berkeley National Laboratory.

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.