Radiance RGBE Image (.hdr)

Radiance Standaard

Radiance 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:

Selecteer of sleep bestanden hierheen

Privé - bestanden verlaten uw apparaat niet

of plak Ctrl+V
Privacygarantie zonder netwerktransmissie: 0 bytes geüpload naar externe servers. Alle verwerking vond lokaal plaats in uw browser-sandbox.

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 0A

ASCII-WEERGAVE: #?RADIANCE\n

Standaardisatie: Radiance Synthetic Imaging System Standard

Technische specificaties

ContainerarchitectuurASCII-header die eindigt met een lege regel, gevolgd door een resolutietekenreeks en binaire RLE-scanlines
CompressieAdaptieve run-length encoding (RLE), per kanaal toegepast op elke scanline
Bytevolgorde (endianness)Big-Endian / Netwerkbytevolgorde
KleurruimtenLineair Rec.709 RGB met CIE-chromaticiteitscoördinaten
Kanalen en structuurRGBE: rood, groen en blauw (mantissen van 8 bits) plus een gedeelde exponent van 8 bits
Maximale afmetingenPraktisch onbeperkt (resolutietekenreeksen met 32-bits unsigned integers)
TransparantieGeen (metingen van fysische stralingsluminantie)
Streaming en progressiefSequentiële streaming, scanline voor scanline

Technische vergelijkingsmatrix: HDR versus concurrenten

Technisch kenmerkHDR (Huidig)EXRTIFFJPEG
Pixelcodering32-bits RGBE (gedeelde exponent van 8 bits)16-bits half / 32-bits float per kanaalGehele getallen van 8 of 16 bits, of 32-bits floatGamma-gecodeerd geheel getal van 8 bits
Primair gebruik360-graden omgevingsbelichting (IBL)VFX-compositing met meerdere renderpassesFotografie en prepressStandaardwebafbeeldingen
Dynamisch bereik76 ordes van grootte (10^-38 tot 10^38)Praktisch oneindig bereik voor floatVerschilt per bitdiepteBeperkt SDR-bereik van 8 bits
Ondersteunde kanalenAlleen RGBOnbeperkt aantal willekeurige kanalenMeerdere willekeurige kanalenRGB / 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

2000Paul Debevec populariseert HDR image-based lighting (IBL) in computergraphics met behulp van Radiance .hdr-bestanden.
1997Adaptieve run-lengthcodering per scanline wordt gestandaardiseerd om de bestandsgrootte te verkleinen.
1989Greg Ward vindt de RGBE 32-bits pixelcodering en het .hdr-formaat uit in het Lawrence Berkeley National Laboratory.

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.