תמונת Radiance HDR (.hdr)
תקן תקן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
מפרט טכני
| מבנה המכולה | כותרת ASCII המסתיימת בשורה ריקה, ואחריה מחרוזת רזולוציה ושורות סריקה בינאריות בדחיסת RLE |
| דחיסה | קידוד אורכי ריצה (RLE) אדפטיבי, המוחל על כל שורת סריקה בכל ערוץ |
| סדר בתים (Endianness) | Big-Endian (סדר בתים ברשת) |
| מרחבי צבע | RGB ליניארי של Rec.709 עם קואורדינטות כרומטיות CIE |
| ערוצים ומבנה | RGBE: אדום, ירוק וכחול (מנטיסות של 8 סיביות) ומעריך משותף של 8 סיביות |
| ממדים מרביים | מגבלות מעשיות כמעט שאינן קיימות (מחרוזות רזולוציה עם ערכים לא מסומנים של 32 סיביות) |
| שקיפות | ללא (מדידות של בהירות קרינתית פיזיקלית) |
| הזרמה ופרוגרסיביות | הזרמה רציפה של שורות סריקה, שורה אחר שורה |
מטריצת השוואה טכנית: HDR מול מתחרים
| תכונה טכנית | HDR (נוכחי) | EXR | TIFF | JPEG |
|---|---|---|---|---|
| קידוד פיקסלים | RGBE של 32 סיביות (מעריך משותף של 8 סיביות) | Half של 16 סיביות / Float של 32 סיביות לערוץ | מספרים שלמים של 8/16 סיביות או מספרים בנקודה צפה של 32 סיביות | 8-bit gamma-encoded integer |
| שימוש עיקרי | תאורת סביבה של 360 מעלות (IBL) | קומפוזיציית VFX מרובת מעברים | צילום וקדם-הדפסה | גרפיקת רשת סטנדרטית |
| היקף הטווח הדינמי | 76 סדרי גודל (10^-38 עד 10^38) | טווח צף אינסופי מעשית | משתנה לפי עומק סיביות | טווח SDR מוגבל של 8 סיביות |
| ערוצים נתמכים | RGB בלבד | ערוצים שרירותיים ללא הגבלה | ערוצים שרירותיים מרובים | RGB / CMYK |
מצבי השחתה נפוצים ומדריך שחזור הקסדצימלי (Hex)
התמונה מציגה פסי רשת אופקיים לכל רוחב המסגרת.
גורם שורש: בית ספירת אורך ריצה פגום בפענוח RLE של שורת סריקה.
שחזור: שחזר סמני שורות סריקה פגומים באמצעות File2File.app HDR Repair או המר ל-EXR.
ניתוח אבטחה ווקטורי תקיפה נגד מנתחי פורמטים (parsers)
מפענחי Radiance HDR מנתחים לעיתים קרובות שורות כותרת ASCII באמצעות שגרות מחרוזת ללא הגבלת אורך, העלולות לגרום לגלישת חוצץ במחסנית.
ווקטורי תקיפה ידועים
- קריאות sprintf/sscanf ללא הגבלת אורך בעת קריאת כותרות של מחרוזות רזולוציה (-Y %d +X %d).
- כתיבה מחוץ לגבולות הערימה בעת פענוח שורת סריקה פגומה בדחיסת RLE.
- גלישת מספר שלם בעת הקצאת מאגרי יעד בנקודה צפה של 32 סיביות.
שיטות מומלצות להגנה: אמת את אורך כותרת ה-ASCII ואת ממדי שורות הסריקה לפני הקצאת מאגרי תמונה.
היסטוריה ואבני דרך
יתרונות מרכזיים
- נפח זיכרון קומפקטי של 32 סיביות לפיקסל, תוך כיסוי של 76 סדרי גודל בבהירות האור הפיזית.
- חבילות רינדור תלת-ממדיות רבות תומכות בו למפות סביבה, אך התמיכה תלויה באפליקציה.
- מבנה קובץ קומפקטי יחסית, שניתן למימוש בתוכנות התומכות ב-Radiance HDR.
מגבלות טכניות וחסרונות
- תופעות פסי קוונטיזציה (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 תקניות ישירות בדפדפן שלך.