Radiance HDR (.hdr)
Radiance ŠtandardRadiance RGBE (HDR) je základný formát s vysokým dynamickým rozsahom vyvinutý pre syntetický zobrazovací systém Radiance, ktorý ukladá fotometricky presné hodnoty svietivosti pomocou zdieľaného 8-bitového exponentu.
Preskúmať a metadáta
Operačné systémy a analyzátory súborov identifikujú súbory HDR kontrolou počiatočnej binárnej bajtovej sekvencie:
Podpis hlavičky na úrovni bajtov (Magic Bytes)
Operačné systémy a analyzátory súborov identifikujú súbory HDR kontrolou počiatočnej binárnej bajtovej sekvencie:
HEXADECIMÁLNY PODPIS (OFFSET 0):
23 3F 52 41 44 49 41 4E 43 45 0AASCII REPREZENTÁCIA: #?RADIANCE\n
Štandardizácia: Radiance Synthetic Imaging System Standard
Technické špecifikácie
| Architektúra kontajnera | ASCII header ending with empty line followed by resolution string and binary RLE scanlines |
| Kompresia | Adaptive adaptive run-length encoding (RLE) applied per-channel scanline |
| Poradie bajtov (Endianness) | Big-Endian / Network byte order |
| Farebné priestory | Linear Rec.709 RGB with CIE chromaticity coordinates |
| Kanály a štruktúra | RGBE: Red, Green, Blue (8-bit mantissas) + shared 8-bit Exponent |
| Max. rozmery | Practically unlimited (32-bit unsigned resolution strings) |
| Priehľadnosť | None (physical radiant luminance measurements) |
| Streamovanie a postupné načítavanie | Sequential scanline-by-scanline streaming playback |
Technická porovnávacia matica: HDR vs konkurenti
| Technický atribút | HDR (Aktuálne) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Kódovanie pixelov | 32-bit RGBE (zdieľaný 8-bitový exponent) | 16-bit half / 32-bit float na kanál | Celozrnné 8/16-bit alebo 32-bit float | 8-bitové celé číslo kódované s gamou |
| Hlavné použitie | 360-stupňové osvetlenie prostredia (IBL) | VFX viac-pasové skladanie (kompoziting) | Fotografia a pred-tlač | Štandardná webová grafika |
| Rozsah dynamického rozsahu | 76 rádov (10^-38 až 10^38) | Prakticky nekonečný rozsah s plávacou rádovou čiarkou | Líši sa podľa farebnej hĺbky | Obmedzený 8-bitový SDR rozsah |
| Podporované kanály | Iba RGB | Neobmedzené ľubovoľné kanály | Viacero ľubovoľných kanálov | RGB / CMYK |
Bežné režimy poškodenia a príručka na obnovu v hexadecimálnom kóde
Obrázok zobrazuje vodorovné pruhové pásy cez celú šírku snímky.
Hlavná príčina: Poškodený bajt počtu dĺžky behu (RLE) pri dekompresii RLE riadkov skenovania.
Obnova: Obnovte poškodené značky riadkov skenovania pomocou nástroja File2File HDR Repair alebo ich konvertujte na EXR.
Bezpečnostná analýza a vektory útokov na parser
Dekodéry Radiance HDR často analyzujú riadky hlavičky ASCII pomocou neohraničených reťazcových rutín, ktoré môžu spustiť pretečenie vyrovnávacej pamäte zásobníka (stack buffer overflow).
Známe vektory útokov
- Neobmedzené volania sprintf/sscanf pri čítaní hlavičiek reťazcov rozlíšenia ('-Y %d +X %d').
- Zápis mimo vyhradenej pamäte haldy (heap out-of-bounds write) počas dekódovania nesprávne formátovaného RLE riadku.
- Pretečenie celého čísla pri alokácii cieľových 32-bitových vyrovnávacích pamätí s plávacou rádovou čiarkou.
Najlepšie obranné postupy:
Historický pôvod a míľniky
Kľúčové výhody a prednosti
- Kompaktná pamäťová stopa 32 bitov na pixel a zároveň pokrytie 76 rádov fyzickej svietivosti svetla.
- Univerzálna podpora v 3D renderovacích balíkoch (Blender, Unreal Engine, Unity, Cinema 4D) pre 360-stupňové mapy prostredia.
- Jednoduchá a robustná štruktúra súborov, ktorú možno ľahko implementovať na všetkých softvérových platformách.
Technické obmedzenia a nevýhody
- V extrémnych tmavých oblastiach môže dochádzať k farebným prechodom (banding) v dôsledku kódovania so zdieľaným 8-bitovým exponentom.
- Kanály RGB nemôžu ukladat záporné čísla ani ľubovoľné viacvrstvové pasy.
- Vo výrobe vizuálnych efektov pre viaceré pasy ho do veľkej miery nahradil formát OpenEXR.
Zaujímavé technické drobnosti
- Každý súbor Radiance HDR začína textovou hlavičkou '#?RADIANCE' alebo '#?RGBE'.
- Formát bol vytvorený na simuláciu fyzického architektonického osvetlenia pri návrhu budov ešte pred ich výstavbou.
- Kultový článok Paula Debeveca zo SIGGRAPH 1997 'Recovering High Dynamic Range Radiance Maps from Photographs' použite tento formát na revolúciu v CGI osvetlení.
Často kladené technické otázky
Na čo sa v 3D grafike používa súbor HDRI?
Súbory HDRI (.hdr) sa používajú ako 360-stupňové panoramatické mapy prostredia na zaistenie fotorealistického osvetlenia reálneho sveta, tieňov a odrazov na 3D objektoch.
Ako funguje 32-bitové kódovanie RGBE?
Namiesto ukladania troch samostatných čísel s pohyblivou rádovou čiarkou používa RGBE 8 bitov pre červenú, zelenú a modrú zložku plus spoločný 8-bitový exponent, čím sa zmestí plný dynamický rozsah HDR do iba 4 bajtov na pixel.
Môžem konvertovať HDR do formátu JPG?
Áno. File2File.app dokáže upraviť tóny a konvertovať 32-bitové súbory Radiance HDR na štandardné obrázky JPG alebo PNG priamo vo vašom prehliadači.