Radiance HDR (.hdr)
Radiance StandardRadiance 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:
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 0ARAPPRESENTAZIONE ASCII: #?RADIANCE\n
Standardizzazione: Radiance Synthetic Imaging System Standard
Specifiche tecniche
| Architettura del container | Intestazione ASCII terminata da una riga vuota seguita da stringa di risoluzione e linee di scansione RLE binarie |
| Compressione | Codifica a lunghezza di esecuzione (RLE) adattiva applicata per ogni canale della linea di scansione |
| Endianness dei byte | Big-Endian / Ordine dei byte di rete |
| Spazi colore | RGB Lineare Rec.709 con coordinate cromatiche CIE |
| Canali e struttura | RGBE: Rosso, Verde, Blu (mantisse a 8-bit) + Esponente condiviso a 8-bit |
| Dimensioni massime | Praticamente illimitate (stringhe di risoluzione senza segno a 32-bit) |
| Trasparenza | Nessuna (misure di luminanza radiante fisica) |
| Streaming e progressivo | Riproduzione in streaming sequenziale riga per riga di scansione |
Matrice di confronto tecnico: HDR vs Concorrenti
| Attributo tecnico | HDR (Corrente) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Codifica dei Pixel | RGBE a 32-bit (esponente condiviso a 8-bit) | Half a 16-bit / float a 32-bit per canale | Intero a 8/16-bit o float a 32-bit | Intero codificato in gamma a 8-bit |
| Caso d'Uso Principale | Illuminazione ambientale a 360 gradi (IBL) | Compositing multi-passaggio VFX | Fotografia e prepress | Grafica web standard |
| Ambito di Gamma Dinamica | 76 ordini di grandezza (da 10^-38 a 10^38) | Intervallo in virgola mobile praticamente infinito | Varia in base alla profondità di bit | Intervallo SDR limitato a 8-bit |
| Canali Supportati | Solo RGB | Canali arbitrarie illimitati | Molteplici canali arbitrarie | RGB / 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
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.