תמונת Radiance HDR (.hdr)
Radiance תקןRadiance RGBE (HDR) הוא פורמט הטווח הדינמי הגבוה הבסיסי שפותח עבור מערכת ההדמיה הסינתטית Radiance, השומר ערכי בהירות מדויקים פוטומטרית באמצעות מעריך (exponent) של 8 סיביות משותף.
בדיקה ומטא-דאטה
מערכות הפעלה ומנתחי קבצים מזהים קבצי 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 |
|---|---|---|---|---|
| קידוד פיקסלים | 32-bit RGBE (shared 8-bit exponent) | 16-bit half / 32-bit float per channel | מספר שלם 8/16-סיביות או צף 32-סיביות | 8-bit gamma-encoded integer |
| מקרה שימוש עיקרי | תאורת סביבה של 360 מעלות (IBL) | קומפוזיציית VFX מרובת מעברים | צילום והכפלה לדפוס | גרפיקת רשת סטנדרטית |
| היקף טווח דינמי | 76 סדרי גודל (10^-38 עד 10^38) | טווח צף אינסופי מעשית | משתנה לפי עומק סיביות | טווח SDR מוגבל של 8 סיביות |
| ערוצים נתמכים | RGB בלבד | ערוצים שרירותיים ללא הגבלה | ערוצים שרירותיים מרובים | RGB / CMYK |
מצבי שיחשות נפוצים ומדריך שחזור הקסדצימלי (Hex)
התמונה מציגה פסי רשת אופקיים לכל רוחב המסגרת.
גורם שורש: בית ספירת אורך ריצה פגום בפענוח RLE של שורת סריקה.
התאוששות: שחזר סמני שורות סריקה פגומים באמצעות File2File HDR Repair או המר ל-EXR.
ניתוח אבטחה ווקטורי התקפה על מנתחים (Parsers)
מפנחי Radiance HDR מנתחים לעתים קרובות שורות כותרת ASCII באמצעות שגרות מחרוזת בלתי מוגבלות העלולות לעורר גלישות מחסנית (stack buffer overflows).
ווקטורי תקיפה ידועים
- קריאות sprintf/sscanf בלתי מוגבלות בעת קריאת כותרות מחרוזת רזולוציה ('-Y %d +X %d').
- כתיבה מחוץ לגבולות הערימה בעת פענוח שורת סריקה פגומה ב-RLE.
- גלישת מספר שלם בעת הקצאת חוצצי נקודה צפה של 32 סיביות ליעד.
השיטות המומלצות להגנה:
היסטוריה ואבני דרך
יתרונות מרכזיים
- טביעת רגל זיכרון קומפקטית של 32 סיביות לפיקסל תוך כדי כיסוי 76 סדרי גודל של בהירות אור פיזי.
- תמיכה אוניברסלית בכל חבילות ההדמיה התלת-ממדיות (Blender, Unreal Engine, Unity, Cinema 4D) למפות סביבה של 360 מעלות.
- מבנה קובץ פשוט וחזק המיושם בקלות בכל פלטפורמות התוכנה.
מגבלות טכניות וחסרונות
- תופעות פסי קוונטיזציה (Banding) עלולות להתרחש באזורים חשוכים קיצוניים עקב קידוד מעריך של 8 סיביות משותף.
- ערוצי RGB אינם יכולים לאחסן מספרים שליליים או שכבות מרובות מעברים שרירותיות.
- הוחלף במידה רבה על ידי OpenEXR עבור הפקת אפקטים ויזואליים מרובי-מעברים.
עובדות טכניות מעניינות
- כל קובץ Radiance HDR מתחיל בכותרת הטקסט '#?RADIANCE' או '#?RGBE'.
- הפורמט נוצר כדי לדמות תאורה אדריכלית פיזית בתכנון מבנים טרם בנייתם.
- מאמר SIGGRAPH האייקוני של פול דבבץ משנת 1997 'שחזור מפות בהירות טווח דינמי גבוה מתצלומים' השתמש בפורמט זה כדי לחולל מהפכה בתאורת CGI.
שאלות טכניות נפוצות
למה משמש קובץ HDRI בתלת-ממד?
קובצי HDRI (.hdr) משמשים כמפות סביבה פנורמיות ב-360 מעלות כדי לספק תאורה, צללים והשתקפות פוטוריאליסטיים מהעולם האמיתי על גבי אובייקטים תלת-ממדיים.
כיצד פועלת קידוד RGBE ב-32 ביט?
במקום לאחסן שלושה מספרי נקודה צפה נפרדים, RGBE משתמש ב-8 ביט כל אחד עבור אדום, ירוק וכחול, בתוספת מעריך (exponent) משותף של 8 ביט, ובכך דוחס טווח דינמי מלא של HDR לתוך 4 בייטים בלבד פיקסל.
האם אני יכול להמיר HDR ל-JPG?
כן. File2File.app יכול לבצע מיפוי גוונים ולהמיר קובצי Radiance HDR ב-32 ביט לתמונות JPG או PNG תקניות ישירות בדפדפן שלך.