تصویر Radiance HDR (.hdr)
Radiance استانداردرادینس RGBE (با پسوند HDR) فرمت پایه دامنه دینامیکی بالایی است که برای سیستم تصویربرداری مصنوعی Radiance توسعه یافته و مقادیر روشنایی دقیق فتومتریک را با استفاده از یک نمایانگر (Exponent) مشترک ۸ بیتی ذخیره میکند.
بررسی و فراداده
سیستمعاملها و تحلیلگرهای فایل، فایلهای HDR را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای هدر در سطح بایت (Magic Bytes)
سیستمعاملها و تحلیلگرهای فایل، فایلهای HDR را با بررسی توالی بایتهای دودویی ابتدایی شناسایی میکنند:
امضای HEX (آفست 0):
23 3F 52 41 44 49 41 4E 43 45 0Aنمایش ASCII: #?RADIANCE\n
استانداردسازی: Radiance Synthetic Imaging System Standard
مشخصات فنی
| معماری کانتینر | ASCII header ending with empty line followed by resolution string and binary RLE scanlines |
| فشردهسازی | Adaptive adaptive run-length encoding (RLE) applied per-channel scanline |
| ترتیب بایتها (Endianness) | Big-Endian / Network byte order |
| فضاهای رنگی | Linear Rec.709 RGB with CIE chromaticity coordinates |
| کانالها و ساختار | RGBE: Red, Green, Blue (8-bit mantissas) + shared 8-bit Exponent |
| حداکثر ابعاد | Practically unlimited (32-bit unsigned resolution strings) |
| شفافیت مشخصات | None (physical radiant luminance measurements) |
| استریمینگ و پیشرونده | Sequential scanline-by-scanline streaming playback |
ماتریس مقایسه فنی: HDR در برابر رقبا
| ویژگی فنی | HDR (فعلی) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| رمزگذاری پیکسل | ۳۲ بیت RGBE (نمایانگر مشترک ۸ بیتی) | ۱۶ بیت نیمهدقت / ۳۲ بیت اعشاری به ازای هر کانال | اعداد صحیح ۸/۱۶ بیتی یا اعشاری ۳۲ بیتی | عدد صحیح کدگذاری شده با گام ۸ بیتی |
| کاربرد اصلی | نورپردازی محیطی ۳۶۰ درجه (IBL) | ترکیببندی چندپاسه VFX | عکاسی و پیشچاپ | گرافیک استاندارد وب |
| محدوده دامنه دینامیکی | ۷۶ مرتبه بزرگی (۱۰ به توان ۳۸- تا ۱۰ به توان ۳۸) | محدوده اعشاری عملاً نامحدود | متغیر بر اساس عمق بیت | محدوده محدود SDR هشت بیتی |
| کانالهای پشتیبانیشده | فقط RGB | کانالهای دلخواه نامحدود | چندین کانال دلخواه | RGB / CMYK |
حالتهای رایج خرابی و راهنمای بازیابی هگز
تصویر نوارهای خطکشی افقی را در کل عرض فریم نمایش میدهد.
علت ریشهای: بایت شمارش طول اجرا (RLE count) آسیبدیده در بازگشایی خط اسکن RLE.
بازیابی: بازسازی نشانگرهای خط اسکن آسیبدیده با استفاده از ابزار تعمیر HDR فایلتوفایل یا تبدیل به EXR.
تحلیل امنیتی و بردارهای حمله تجزیهکننده (Parser)
رمزگشایان Radiance HDR اغلب خطوط هدر اسکی را با استفاده از توابع رشتهای بدون مرز تجزیه میکنند که میتواند باعث سرریز بافر پشته شود.
بردارهای حمله شناختهشده
- فراخوانیهای بدون مرز sprintf/sscanf هنگام خواندن هدرهای رشته وضوح ('-Y %d +X %d').
- نوشتن خارج از محدوده حافظه هیپ (Heap out-of-bounds write) در طول رمزگشایی خط اسکن معیوب RLE.
- سرریز عدد صحیح هنگام تخصیص بافرهای نقطه شناور ۳۲ بیتی مقصد.
بهترین روشهای پدافندی:
تاریخچه و نقاط عطف
مزایا و نقاط قوت کلیدی
- حافظه مصرفی فشرده ۳۲ بیتی به ازای هر پیکسل در عین پوشش ۷۶ مرتبه بزرگی از روشنایی نور فیزیکی.
- پشتیبانی جهانی در بستههای رندر سهبعدی (مانند بلندر، آنریل انجین، یونیتی، سینما 4D) برای نقشههای محیطی ۳۶۰ درجه.
- ساختار فایل ساده و مقاوم که به راحتی در تمام پلتفرمهای نرمافزاری پیادهسازی میشود.
محدودیتها و معایب فنی
- بروز بندهای کوانتیزاسیون (Quantization banding) در نواحی بسیار تاریک به دلیل استفاده از کدگذاری نمایانگر مشترک ۸ بیتی.
- کانالهای RGB نمیتوانند اعداد منفی یا لایههای چندپاسه دلخواه را ذخیره کنند.
- تا حد زیادی توسط OpenEXR برای تولید جلوههای ویژه چندپاسه منسوخ شده است.
نکات فنی جالب
- هر فایل Radiance HDR با هدر متنی '#?RADIANCE' یا '#?RGBE' شروع میشود.
- این فرمت برای شبیهسازی نورپردازی معماری فیزیکی در طراحی ساختمان پیش از ساخت سازهها ایجاد شد.
- مقاله نمادین پل دیبیوس در سال ۱۹۹۷ در کنفرانس SIGGRAPH با عنوان «بازیابی نقشههای رادینس دامنه دینامیکی بالا از عکسها» از این فرمت برای ایجاد انقلاب در نورپردازی CGI استفاده کرد.
سوالات فنی متداول
یک فایل HDRI برای چه مواردی در حوزه سهبعدی استفاده میشود؟
فایلهای HDRI (پسوند .hdr) به عنوان نقشههای محیطی پانورامای ۳۶۰ درجه برای فراهم کردن نورپردازی، سایهها و بازتابهای واقعگرایانه در دنیای واقعی روی اجسام سهبعدی استفاده میشوند.
رمزگذاری ۳۲ بیتی RGBE چگونه کار میکند؟
به جای ذخیره سه عدد ممیز شناور جداگانه، RGBE از ۸ بیت برای هر رنگ قرمز، سبز و آبی به همراه یک توان ۸ بیتی مشترک استفاده میکند که دامنه پویای کامل HDR را در تنها ۴ بایت در هر پیکسل جای میدهد.
آیا میتوانم HDR را به JPG تبدیل کنم؟
بله. File2File.app میتواند فایلهای ۳۲ بیتی Radiance HDR را پردازش کرده و مستقیماً در مرورگر شما به تصاویر استاندارد JPG یا PNG تبدیل کند.