Radiance HDR (.hdr)

Standard Standardowy

Radiance RGBE (HDR) to fundamentalny format o wysokiej rozpiętości tonalnej opracowany dla systemu obrazowania syntetycznego Radiance, przechowujący fotometrycznie dokładne wartości luminancji przy użyciu współdzielonego 8-bitowego wykładnika.

Inspekcja i metadane

Systemy operacyjne i analizatory plików identyfikują pliki HDR, sprawdzając początkową sekwencję bajtów binarnych:

Wybierz lub upuść pliki tutaj

Konwersja w 100% prywatna w przeglądarce - pliki nigdy nie opuszczają Twojego urządzenia

lub wklej Ctrl+V
Gwarancja prywatności bez przesyłania danych do sieci: 0 bajtów przesłanych na zewnętrzne serwery. Całe przetwarzanie odbyło się lokalnie w piaskownicy przeglądarki.

Podpis nagłówka na poziomie bajtów (Magic Bytes)

Systemy operacyjne i analizatory plików identyfikują pliki HDR, sprawdzając początkową sekwencję bajtów binarnych:

PODPIS HEX (OFFSET 0):

23 3F 52 41 44 49 41 4E 43 45 0A

REPREZENTACJA ASCII: #?RADIANCE\n

Normalizacja: Standard systemu obrazowania syntetycznego Radiance

Specyfikacja techniczna

Architektura konteneraNagłówek ASCII zakończony pustą linią, po której następuje ciąg rozdzielczości i binarne linie skanowania RLE
KompresjaAdaptacyjne kodowanie długości serii (RLE) stosowane dla każdej linii skanowania kanału
Kolejność bajtów (Endianness)Big-Endian / Kolejność bajtów sieciowych
Przestrzenie kolorówLiniowy RGB Rec.709 ze współrzędnymi chromatyczności CIE
Kanały i strukturaRGBE: Czerwony, Zielony, Niebieski (8-bitowe mantysy) + współdzielony 8-bitowy wykładnik
Maks. wymiaryPraktycznie nieograniczone (32-bitowe ciągi znaków o niesieciowej rozdzielczości)
PrzezroczystośćBrak (fizyczne pomiary luminancji promienistej)
Streaming i progresywne ładowanieSekwencyjne strumieniowanie linia po linii

Techniczna macierz porównawcza: HDR a konkurencja

Atrybut technicznyHDR (Bieżący)EXRTIFFJPEG
Kodowanie pikseli32-bit RGBE (współdzielony 8-bitowy wykładnik)16-bit half / 32-bit float na kanałCałkowite 8/16-bit lub 32-bit float8-bitowa liczba całkowita kodowana gammą
Główne zastosowanieOświetlenie środowiskowe 360 stopni (IBL)Kompozycja wieloprzebiegowa VFXFotografia i prepressStandardowa grafika internetowa
Zakres rozpiętości tonalnej76 rzędów wielkości (10^-38 do 10^38)Praktycznie nieskończony zakres zmiennoprzecinkowyZmienia się w zależności od głębi bitowejOgraniczony zakres SDR 8-bit
Obsługiwane kanałyTylko RGBNieograniczone dowolne kanałyWiele dowolnych kanałówRGB / CMYK

Typowe tryby uszkodzeń i przewodnik odzyskiwania szesnastkowego

Obraz wyświetla poziome paski na całej szerokości klatki.

Główna przyczyna: Uszkodzony bajt licznika długości serii w dekompresji RLE linii skanowania.

Odzyskiwanie: Zrekonstruuj uszkodzone znaczniki linii skanowania za pomocą narzędzia File2File HDR Repair lub przekonwertuj do formatu EXR.

Analiza bezpieczeństwa i wektory ataku na parser

Dekodery Radiance HDR często analizują linie nagłówka ASCII za pomocą nieograniczonych procedur łańcuchowych, co może wywołać przepełnienie bufora stosu.

Znane wektory ataku

  • Nieograniczone wywołania sprintf/sscanf podczas czytania nagłówków ciągów rozdzielczości ('-Y %d +X %d').
  • Zapis spoza bufora sterty podczas dekodowania wadliwej linii skanowania RLE.
  • Przepełnienie liczbowe podczas alokacji docelowych 32-bitowych buforów zmiennoprzecinkowych.

Najlepsze praktyki obronne: Zweryfikuj długość nagłówka ASCII i wymiary linii skanowania przed alokacją buforów obrazu.

Pochodzenie historyczne i kamienie milowe

2000Paul Debevec popularyzuje oświetlenie oparte na obrazach HDR (IBL) w grafice komputerowej przy użyciu plików Radiance .hdr.
1997Standaryzacja adaptacyjnego kodowania długości serii w liniach skanowania w celu zmniejszenia rozmiarów plików.
1989Greg Ward wynajduje 32-bitowe kodowanie pikseli RGBE i format .hdr w Lawrence Berkeley National Laboratory.

Główne zalety

  • Kompaktowe zajętość pamięci 32 bity na piksel przy jednoczesnym obejmowaniu 76 rzędów wielkości fizycznej luminancji światła.
  • Uniwersalna obsługa w pakietach renderowania 3D (Blender, Unreal Engine, Unity, Cinema 4D) dla 360-stopniowych map środowiskowych.
  • Prosta, solidna struktura pliku łatwa do zaimplementowania na wszystkich platformach programowych.

Ograniczenia techniczne i wady

  • W skrajnie ciemnych obszarach może występować tzw. bandowanie kwantyzacji z powodu kodowania za pomocą współdzielonego 8-bitowego wykładnika.
  • Kanały RGB nie mogą przechowywać liczb ujemnych ani dowolnych warstw wieloetapowych.
  • W większości wyparty przez OpenEXR w produkcji efektów wizualnych składających się z wielu warstw.

Ciekawe informacje techniczne

  • Każdy plik Radiance HDR zaczyna się od nagłówka tekstowego '#?RADIANCE' lub '#?RGBE'.
  • Format został stworzony do symulacji fizycznego oświetlenia architektonicznego w projektowaniu budynków przed ich wzniesieniem.
  • Kultowy artykuł Paula Debeveca z 1997 roku na konferencji SIGGRAPH 'Recovering High Dynamic Range Radiance Maps from Photographs' wykorzystał ten format do zrewolucjonizowania oświetlenia CGI.

Często zadawane pytania techniczne

Do czego służy plik HDRI w grafice 3D?

Pliki HDRI (.hdr) są używane jako panoramiczne mapy środowiskowe 360 stopni w celu zapewnienia fotorealistycznego oświetlenia, cieni i odbić w świecie rzeczywistym na obiektach 3D.

Jak działa 32-bitowe kodowanie RGBE?

Zamiast przechowywać trzy oddzielne liczby zmiennoprzecinkowe, RGBE używa po 8 bitów dla koloru czerwonego, zielonego i niebieskiego oraz wspólnego 8-bitowego wykładnika, mieszcząc pełną rozpiętość tonalną HDR w zaledwie 4 bajtach na piksel.

Czy mogę przekonwertować plik HDR do formatu JPG?

Tak. File2File.app potrafi przeprowadzić mapowanie tonów i przekonwertować 32-bitowe pliki Radiance HDR na standardowe obrazy JPG lub PNG bezpośrednio w Twojej przeglądarce.