Radiance HDR (.hdr)
Radiance StandardRadiance RGBE (HDR) este formatul fundamental cu gamă dinamică ridicată dezvoltat pentru sistemul de imagistică sintetică Radiance, care stochează valori de luminozitate corecte fotometric folosind un exponent partajat pe 8 biți.
Inspectează și Metadate
Sistemele de operare și analizatoarele de fișiere identifică fișierele HDR prin inspectarea secvenței binare inițiale:
Semnătura antetului la nivel de octet (Magic Bytes)
Sistemele de operare și analizatoarele de fișiere identifică fișierele HDR prin inspectarea secvenței binare inițiale:
SEMNĂTURĂ HEX (OFFSET 0):
23 3F 52 41 44 49 41 4E 43 45 0AREPREZENTARE ASCII: #?RADIANCE\n
Standardizare: Radiance Synthetic Imaging System Standard
Specificații tehnice
| Arhitectură container | ASCII header ending with empty line followed by resolution string and binary RLE scanlines |
| Compresie | Adaptive adaptive run-length encoding (RLE) applied per-channel scanline |
| Endianitatea octeților | Big-Endian / Network byte order |
| Spații de culoare | Linear Rec.709 RGB with CIE chromaticity coordinates |
| Canale și structură | RGBE: Red, Green, Blue (8-bit mantissas) + shared 8-bit Exponent |
| Dimensiuni maxime | Practically unlimited (32-bit unsigned resolution strings) |
| Transparență | None (physical radiant luminance measurements) |
| Streaming și progresiv | Sequential scanline-by-scanline streaming playback |
Matrice de comparație tehnică: HDR vs Competitori
| Atribut tehnic | HDR (Curent) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Codarea pixelilor | 32-bit RGBE (exponent partajat pe 8 biți) | 16-bit half / 32-bit float per canal | Întreg 8/16-bit sau float 32-bit | Întreg codat în gamă pe 8 biți |
| Utilizare principală | Iluminare de mediu la 360 de grade (IBL) | Compoziting VFX cu treceri multiple | Fotografie și prepresă | Grafică web standard |
| Domeniul gamei dinamice | 76 ordine de mărime (10^-38 la 10^38) | Interval flotant practic infinit | Variază în funcție de adâncimea biților | Gamă SDR limitată la 8 biți |
| Canale acceptate | Doar RGB | Canale arbitrare nelimitate | Mai multe canale arbitrare | RGB / CMYK |
Moduri comune de corupție și ghid de recuperare hexazecimală
Imaginea afișează benzi de dungi orizontale pe întreaga lățime a cadrelor.
Cauză principală: Octet de numărătoare a lungimii de rulare corupt în decomprimarea RLE a liniei de scanare.
Recuperare: Reconstruiți markerii deteriorați ai liniilor de scanare utilizând File2File HDR Repair sau convertiți în EXR.
Analiză de securitate și vectori de atac asupra parserului
Decodoarele Radiance HDR analizează adesea liniile de antet ASCII folosind rutine de șiruri nelimitate care pot declanșa depășiri de stivă (stack buffer overflows).
Vectori de atac cunoscuți
- Apeluri sprintf/sscanf nelimitate la citirea antetelor șirului de rezoluție („-Y %d +X %d").
- Scriere în afara limitelor heap-ului în timpul decodării liniei de scanare RLE malformate.
- Depășire de întreg la alocarea bufferelor de destinație în virgulă mobilă pe 32 de biți.
Cele mai bune practici de securitate:
Origini istorice și repere
Avantaje cheie și beneficii
- Amprentă de memorie compactă de 32 de biți per pixel, acoperind în același timp 76 ordine de mărime ale luminozității fizice a luminii.
- Suport universal în pachetele de randare 3D (Blender, Unreal Engine, Unity, Cinema 4D) pentru hărți de mediu la 360 de grade.
- Structură de fișiere simplă și robustă, ușor de implementat pe toate platformele software.
Limitări tehnice și dezavantaje
- Bandarea de cuantizare poate apărea în regiunile extrem de întunecate din cauza codării exponentului partajat pe 8 biți.
- Canalele RGB nu pot stoca numere negative sau straturi arbitrare cu treceri multiple.
- În mare măsură înlocuit de OpenEXR pentru producția de efecte vizuale cu treceri multiple.
Curiozități tehnice interesante
- Fiecare fișier Radiance HDR începe cu antetul text „#?RADIANCE" sau „#?RGBE".
- Formatul a fost creat pentru a simula iluminarea arhitecturală fizică în proiectarea clădirilor înainte ca structurile să fie construite.
- Lucrarea iconică din 1997 a lui Paul Debevec de la SIGGRAPH, „Recovering High Dynamic Range Radiance Maps from Photographs", a folosit acest format pentru a revoluționa iluminarea CGI.
Întrebări tehnice frecvente
Pentru ce este utilizat un fișier HDRI în 3D?
Fișierele HDRI (.hdr) sunt utilizate ca hărți de mediu panoramice la 360 de grade pentru a oferi iluminare fotorealistă din lumea reală, umbre și reflexii pe obiecte 3D.
Cum funcționează codarea RGBE pe 32 biți?
În loc să stocheze trei numere separate în virgulă mobilă, RGBE utilizează câte 8 biți pentru roșu, verde și albastru, plus un exponent partajat de 8 biți, încadrând întreaga gamă dinamică HDR în doar 4 octeți (bytes) per pixel.
Pot converti HDR în JPG?
Da. File2File.app poate aplica maparea de tonuri și poate converti fișiere Radiance HDR pe 32 biți în imagini JPG sau PNG standard direct în browserul tău.