Radiance RGBE Image (.hdr)
Radiance StandaardRadiance RGBE (HDR) is het fundamentele high dynamic range-formaat dat is ontwikkeld voor het synthetische beeldvormingssysteem van Radiance en dat fotometrisch nauwkeurige luminantiewaarden opslaat met behulp van een gedeelde 8-bits exponent.
Inspecteren en metadata
Besturingssystemen en bestandsanalysators herkennen HDR-bestanden aan de hand van de eerste binaire bytesequentie:
Bestandshandtekening op byteniveau (magic bytes)
Besturingssystemen en bestandsanalysators herkennen HDR-bestanden aan de hand van de eerste binaire bytesequentie:
HEX-HANDTEKENING (OFFSET 0):
23 3F 52 41 44 49 41 4E 43 45 0AASCII-WEERGAVE: #?RADIANCE\n
Standaardisatie: Radiance Synthetic Imaging System Standard
Technische specificaties
| Containerarchitectuur | ASCII-header die eindigt met een lege regel, gevolgd door een resolutietekenreeks en binaire RLE-scanlines |
| Compressie | Adaptieve run-length encoding (RLE), per kanaal toegepast op elke scanline |
| Bytevolgorde (endianness) | Big-Endian / Netwerkbytevolgorde |
| Kleurruimten | Lineair Rec.709 RGB met CIE-chromaticiteitscoördinaten |
| Kanalen en structuur | RGBE: rood, groen en blauw (mantissen van 8 bits) plus een gedeelde exponent van 8 bits |
| Maximale afmetingen | Praktisch onbeperkt (resolutietekenreeksen met 32-bits unsigned integers) |
| Transparantie | Geen (metingen van fysische stralingsluminantie) |
| Streaming en progressief | Sequentiële streaming, scanline voor scanline |
Technische vergelijkingsmatrix: HDR versus concurrenten
| Technisch kenmerk | HDR (Huidig) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| Pixelcodering | 32-bits RGBE (gedeelde exponent van 8 bits) | 16-bits half / 32-bits float per kanaal | Gehele getallen van 8 of 16 bits, of 32-bits float | Gamma-gecodeerd geheel getal van 8 bits |
| Primair gebruik | 360-graden omgevingsbelichting (IBL) | VFX-compositing met meerdere renderpasses | Fotografie en prepress | Standaardwebafbeeldingen |
| Dynamisch bereik | 76 ordes van grootte (10^-38 tot 10^38) | Praktisch oneindig bereik voor float | Verschilt per bitdiepte | Beperkt SDR-bereik van 8 bits |
| Ondersteunde kanalen | Alleen RGB | Onbeperkt aantal willekeurige kanalen | Meerdere willekeurige kanalen | RGB / CMYK |
Veelvoorkomende beschadigingen en gids voor hex-herstel
Afbeelding toont horizontale strepen over de hele breedte van het frame.
Oorzaak: Beschadigde byte met de run-lengthtelling tijdens RLE-decompressie van scanlines.
Herstel: Herstel beschadigde scanlinemarkeringen met File2File.app HDR Repair of converteer het bestand naar EXR.
Beveiligingsanalyse en aanvalsvectoren voor parsers
Radiance HDR-decoders verwerken ASCII-headerregels vaak met stringfuncties zonder lengtelimiet, wat stackbufferoverlopen kan veroorzaken.
Bekende aanvalsvectoren
- Onbegrensde sprintf- of sscanf-aanroepen bij het lezen van resolutieheaders ('-Y %d +X %d').
- Heap-out-of-bounds-schrijfbewerking tijdens het decoderen van een misvormde RLE-scanline.
- Integeroverflow bij het toewijzen van doelbuffers voor 32-bits getallen met drijvende komma.
Aanbevolen beveiligingspraktijken: Valideer de lengte van de ASCII-header en scanline-afmetingen voordat u afbeeldingsbuffers toewijst.
Historische oorsprong en mijlpalen
Belangrijkste voordelen
- Compact geheugengebruik van 32 bits per pixel, met een bereik van 76 ordes van grootte voor de luminantie van fysisch licht.
- Ondersteund door veel 3D-renderpakketten voor omgevingskaarten, hoewel de ondersteuning afhangt van de toepassing.
- Een relatief compacte bestandsstructuur die kan worden geïmplementeerd door software met Radiance HDR-ondersteuning.
Technische beperkingen
- Kwantiseringsbanding kan optreden in extreem donkere gebieden vanwege de gedeelde 8-bits exponentcodering.
- RGB-kanalen kunnen geen negatieve getallen of willekeurige lagen met meerdere passes opslaan.
- Voor de productie van visuele effecten met meerdere passes grotendeels vervangen door OpenEXR.
Interessante technische weetjes
- Elk Radiance HDR-bestand begint met de tekstheader '#?RADIANCE' of '#?RGBE'.
- Het formaat is gemaakt om de fysieke verlichting van gebouwen al tijdens het ontwerp te simuleren, nog voordat ze werden gebouwd.
- Paul Debevecs iconische SIGGRAPH-paper uit 1997 'Recovering High Dynamic Range Radiance Maps from Photographs' gebruikte dit formaat om een revolutie teweeg te brengen in CGI-verlichting.
Veelgestelde technische vragen
Waar wordt een HDRI-bestand voor gebruikt in 3D?
HDRI-bestanden (.hdr) worden gebruikt als panoramische omgevingskaarten van 360 graden die 3D-objecten fotorealistische belichting, schaduwen en reflecties uit de echte wereld geven.
Hoe werkt de 32-bits RGBE-codering?
In plaats van drie afzonderlijke getallen met drijvende komma op te slaan, gebruikt RGBE elk 8 bits voor rood, groen en blauw, plus een gedeelde exponent van 8 bits. Zo past het volledige dynamische bereik van HDR in slechts 4 bytes per pixel.
Kan ik HDR naar JPG converteren?
Ja. File2File.app kan 32-bits Radiance HDR-bestanden met toonmapping omzetten naar standaard JPG- of PNG-afbeeldingen, rechtstreeks in uw browser.