Radiance HDR (.hdr)

Radiance Standard

Radiance RGBE (HDR) è il formato ad alta gamma dinamica fondamentale sviluppato per il sistema di imaging sintetico Radiance, che memorizza valori di luminanza fotometricamente accurati utilizzando un esponente condiviso a 8-bit.

Ispeziona e metadati

I sistemi operativi e gli analizzatori di file identificano i file HDR ispezionando la sequenza di byte binari iniziale:

Seleziona o rilascia i file qui

Conversione 100% privata nel browser: i file non lasciano mai il tuo dispositivo

o incolla Ctrl+V
Garanzia di privacy con zero trasmissioni di rete: 0 byte caricati su server esterni. Tutta l'elaborazione è avvenuta localmente nella sandbox del tuo browser.

Firma dell'intestazione a livello di byte (Magic Bytes)

I sistemi operativi e gli analizzatori di file identificano i file HDR ispezionando la sequenza di byte binari iniziale:

FIRMA ESADECIMALE (OFFSET 0):

23 3F 52 41 44 49 41 4E 43 45 0A

RAPPRESENTAZIONE ASCII: #?RADIANCE\n

Standardizzazione: Radiance Synthetic Imaging System Standard

Specifiche tecniche

Architettura del containerIntestazione ASCII terminata da una riga vuota seguita da stringa di risoluzione e linee di scansione RLE binarie
CompressioneCodifica a lunghezza di esecuzione (RLE) adattiva applicata per ogni canale della linea di scansione
Endianness dei byteBig-Endian / Ordine dei byte di rete
Spazi coloreRGB Lineare Rec.709 con coordinate cromatiche CIE
Canali e strutturaRGBE: Rosso, Verde, Blu (mantisse a 8-bit) + Esponente condiviso a 8-bit
Dimensioni massimePraticamente illimitate (stringhe di risoluzione senza segno a 32-bit)
TrasparenzaNessuna (misure di luminanza radiante fisica)
Streaming e progressivoRiproduzione in streaming sequenziale riga per riga di scansione

Matrice di confronto tecnico: HDR vs Concorrenti

Attributo tecnicoHDR (Corrente)EXRTIFFJPEG
Codifica dei PixelRGBE a 32-bit (esponente condiviso a 8-bit)Half a 16-bit / float a 32-bit per canaleIntero a 8/16-bit o float a 32-bitIntero codificato in gamma a 8-bit
Caso d'Uso PrincipaleIlluminazione ambientale a 360 gradi (IBL)Compositing multi-passaggio VFXFotografia e prepressGrafica web standard
Ambito di Gamma Dinamica76 ordini di grandezza (da 10^-38 a 10^38)Intervallo in virgola mobile praticamente infinitoVaria in base alla profondità di bitIntervallo SDR limitato a 8-bit
Canali SupportatiSolo RGBCanali arbitrarie illimitatiMolteplici canali arbitrarieRGB / CMYK

Modalità di corruzione comuni e guida al recupero Hex

L'immagine mostra bande a strisce orizzontali sull'intera larghezza del fotogramma.

Causa principale: Byte di conteggio della lunghezza di esecuzione corrotto nella decompressione RLE della linea di scansione.

Ripristino: Ricostruisci i marcatori delle linee di scansione danneggiati utilizzando File2File HDR Repair o converti in EXR.

Analisi di sicurezza e vettori di attacco del parser

I decoder Radiance HDR spesso analizzano le righe dell'intestazione ASCII utilizzando routine di stringa non delimitate che possono innescare overflow del buffer dello stack.

Vettori di attacco noti

  • Chiamate sprintf/sscanf non delimitate durante la lettura delle intestazioni delle stringhe di risoluzione ('-Y %d +X %d').
  • Scrittura fuori dai limiti dell'heap durante la decodifica di linee di scansione RLE malformate.
  • Overflow di interi durante l'allocazione dei buffer in virgola mobile di destinazione a 32-bit.

Migliori pratiche difensive: Convalida la lunghezza dell'intestazione ASCII e le dimensioni delle linee di scansione prima di allocare i buffer di immagine.

Origini storiche e tappe fondamentali

2000Paul Debevec popolarizza l'illuminazione basata su immagini HDR (IBL) nella computer grafica utilizzando file .hdr Radiance.
1997Codifica a lunghezza di esecuzione delle linee di scansione adattiva standardizzata per ridurre le dimensioni dei file.
1989Greg Ward inventa la codifica dei pixel RGBE a 32-bit e il formato .hdr presso il Lawrence Berkeley National Laboratory.

Vantaggi principali e pro

  • Ingombro di memoria compatto di 32-bit per pixel pur coprendo 76 ordini di grandezza di luminanza della luce fisica.
  • Supporto universale tra i pacchetti di rendering 3D (Blender, Unreal Engine, Unity, Cinema 4D) per mappe ambientali a 360 gradi.
  • Struttura di file semplice e robusta facilmente implementabile su tutte le piattaforme software.

Limiti tecnici e svantaggi

  • Il banding di quantizzazione può verificarsi in regioni estremamente scure a causa della codifica con esponente condiviso a 8-bit.
  • I canali RGB non possono memorizzare numeri negativi o livelli multi-passaggio arbitrari.
  • Largamente sostituito da OpenEXR per la produzione di effetti visivi multi-passaggio.

Curiosità tecniche interessanti

  • Ogni file Radiance HDR inizia con l'intestazione di testo '#?RADIANCE' o '#?RGBE'.
  • Il formato è stato creato per simulare l'illuminazione architettonica fisica nella progettazione degli edifici prima che le strutture fossero costruite.
  • Il celebre articolo SIGGRAPH del 1997 di Paul Debevec 'Recovering High Dynamic Range Radiance Maps from Photographs' ha utilizzato questo formato per rivoluzionare l'illuminazione CGI.

Domande tecniche frequenti

A cosa serve un file HDRI nel 3D?

I file HDRI (.hdr) vengono utilizzati come mappe ambientali panoramiche a 360 gradi per fornire illuminazione, ombre e riflessi del mondo reale fotorealistici su oggetti 3D.

Come funziona la codifica RGBE a 32-bit?

Invece di memorizzare tre numeri in virgola mobile separati, RGBE utilizza 8 bit ciascuno per rosso, verde e blu, più un esponente condiviso a 8-bit, inserendo l'intera gamma dinamica HDR in soli 4 byte per pixel.

Posso convertire HDR in JPG?

Sì. File2File.app può applicare il tone-mapping e convertire i file Radiance HDR a 32-bit in immagini JPG o PNG standard direttamente nel tuo browser.