נכתב ע"י gulmer חבר פורום XBOX
למה ל-Halo 3 יש את מערכת התאורה הכי מתקדמת שיצאה במשחק עד היום? ממש לא מזמן נתקלתי במצגת של באנגי מפסטיבל Gamefest שבה הם הסבירו איך HDR נעשה אצלם. את המצגת המלאה למי שמתעניין בתחום (52 מגה) ניתן להוריד מכאן.
אז בואו נתחיל מלהסביר מה זה HDR, למה השיטה המתקדמת שבאנג'י אימצו הופכת את היילו 3 למשחק הכי מתקדם בתחום התאורה ומרהיב גרפית, ולמה באותו זמן השיטה הזו הפכה אותו למשחק נכה גרפית (כן זה אפשרי).
אז מה זה HDR?
High Dynamic Range, או "טווח תאורה דינמית" בעברית הוא מושג שקשור להרבה תחומים. בתחום הצילום והגרפיקה הממוחשבת, הוא מתייחס לטווח של ניגודיות הצבעים שאפשר לראות בעין האנושית. העין שלנו מסוגלת להבחין בטווח ניגודיות עצום של 100 מיליון רמות.
טווח הניגודיות הוא דינאמי: כלומר בגלל שהאישון שלנו מתכווץ ונפתח וסופג רמות שונות של תאורה בכל מצב זה אומר אנחנו לא יכולים להבחין בכל הרמות בו זמנית, אלא רק בחלק מהן בכל רגע נתון. בגלל זה למשל אנחנו לא יכולים לראות את הכוכבים והירח כשיש אור שמש חזק, ובגלל זה למשל אנחנו מסתנוורים כשאנחנו יוצאים ממקום חשוך למקום מואר (האישון מתכווץ וזה לוקח לו זמן לאזן את רמות האור). הניגודיות שאנחנו יכולים לראות בכל רגע נתון בפועל מוערכת בלמעלה מ-10,000 רמות שונות (או 1:10000).
מן הסתם, קשה לשחזר את הניגודיות הזו באמצעים כמו צילום, הדפסה, או מסכי מחשב. למעשה, מסכי מחשב היום מציגים רק 256 גוונים של אדום, כחול וירוק בו זמנית (יחד מדובר בכ16.7 מיליון צבעים אפשריים שונים, הרבה פחות מתמונה איכותית והרבה הרבה פחות ממה שהעין שלנו רואה באמת). לצורך העניין קוראים לזה LDR (או Low Dynamic Range) אבל בשביל לשחק במשחקים זה מספיק טוב לנו בינתיים, לא?
אז אם זה מספיק טוב ואי אפשר לקבל יותר - מה זה משנה?
או, טוב ששאלתם. אם נסתכל על עולם הצילום שקרוב לעולם של הגרפיקה הממוחשבת, אז יש לכל תמונה את היסטוגרמת הצבע שלה (שבמצלמות דיגיטליות נראית כמו עקומה קשתית כזו, אבל זה לא באמת משנה כרגע). תמונה טובה צריכה היסטוגרמה מאוזנת שבה רוב הצבע נמצא באמצע הקשת.
תמונה שתצלמו באזור בוהק מידי לא תצליח להיקלט טוב בחיישן כי עודף הצבע הבהיר "ישרוף" את התמונה ותראו המון לבן בלי שהחיישן של המצלמה הצליח להבדיל בין הגוונים של הלבן. בדיוק באותה מידה, תמונה חשוכה מידי תאבד את הצבעים הכהים אם היסטוגרמת הצבע שלה לא מאוזנת ולא תוכלו להבדיל בין הגוונים השחורים. בעיקרון אפשר לסדר את הבעיה אם משתמשים ברמת רגישות שונה של החיישן אבל כשיש בתמונה גם אזורים כהים וגם אזורים בהירים, אי אפשר לעשות כלום בנידון ואו שהכהים יצאו כהים מידי ולא תראו כלום, או שהבהירים יצאו בהירים מידי ולא תראו כלום.
אז איך מתקנים את זה?
כמו שיש LDR, יש גם HDR, או High Dynamic Range Imaging. מאחר ואמרנו שהחיישן האלקטרוני (או הפילם של פעם) לא מספיק רגיש, מה שעושים הוא בעצם לצלם שתי תמונות שונות זהות ברמות חשיפה שונות. אחת תופסת את הצבעים הכהים יותר טוב, ואחת את הבהירים יותר טוב. ואפשר לתפוס גם יותר תמונות:
אחר כך, כל מה שצריך הוא תוכנת מחשב שמאחדת את כל התמונות בטכניקת Rendering משוכללת שלא ניכנס אליה, ויודעת לשמר את החלקים הבהירים והכהים בתמונה בצורה מאוזנת ובלי לשרוף שום חלק. תראו מה מקבלים:
נחמד, לא?
ובחזרה לעולם המשחקים
בעולם המשחקים קיים תהליך דומה, שנקרא High Dyanmic Range Rendering או HDR Rendering. המון משחקים כבר מסוגלים "להציג" מוקדי תאורה שונים במספרים גדולים מהמספר המקסימלי שהמסך יכול להציג, ורק אחרי שהמידע עובר כל מיני חישובים מסובכים בשביל לדעת כמה בהיר צריך לצאת אובייקט מואר כלשהו, האובייקט עובר Rendering ומוצג על המסך.
יש כל מיני שיטות וטכנולוגיות, ומנועים שונים עושים את זה בצורות שונות, החל מ-Half Life Lost Coast ועד Crysis שהוסיף כל מיני דברים מגניבים כמו שבירת קרני אור במים, תאורה עם נפח ודברים מפוצצים אחרים.
אז במה היילו 3 שונה משאר המשחקים?
היילו 3 שונה, בגלל שהוא מיישם את שיטת ה-HDR שמוכרת מעולם הצילום: המשחק למעשה מייצר 2 תמונות שונות בכל רגע נתון, ומלביש אותן אחת על השניה. בהשוואה לחישובים וההתחכמויות שעשו מפתחים אחרים בחישובי אור וטקסטורות, מדובר במהפכה: אין יותר דברים כאלו, פשוט מלבישים תמונה כהה על תמונה בהירה ומקבלים את טווח הצבע הגבוה ש-HDR מעניק.
בואו ונשווה שתי תמונות. ככה Halo 3 היה נראה ב-LDR (וככה כל משחק LDR נראה):
וככה הוא נראה בפועל בזכות ה-HDR:
שימו לב שמעבר לכך שהצללים הכהים נשמרים טוב ורואים אותם רק בתמונת ה-HDR, אנחנו מקבלים בנוסף גם אפקט Bloom של סינוור ממקור אור חזק. הרבה משחקים עושים את זה היום בשביל האפקט המגניב, אבל זה בפועל הדבר הפחות חשוב. מה שיותר חשוב זה שרואים את הפרטים הקטנים מצויין.
גם היילו משתמש בטכניקות ופתרונות להאיץ את החישובים בלי לפגוע בצבע שהעין האנושית יכולה לראות. הוא לא צריך לשמר את כל הטווח בתמונה השניה אלא רק את הצבע שנשרף.
ואיך היילו 3 עושה את זה?
או, אז הנה התאור בשלבים של מה שקורה בהיילו מתחת למנוע בכל פריים במשחק:
כאן מעל תוכלו לראות תמונת LDR רגילה
וכאן תוכלו לראות את התמונה המוצללת שמעובדת ברקע ברמת חשיפה נמוכה יותר כדי לשמור על הצבעים הכהים.
פה מתחילים החישובים הכבדים. התמונה החשוכה עוברת חשיפה מחודשת וכמה שכבות של פילטרים של טשטוש:
הפילטרים השונים שומרים כל אחד רמה אחרת של תאורה. עכשיו כולם מולבשים בשלבים על התמונה המוצללת:
ואחרי כל העיבודים הכבדים שהתמונה השנייה עוברת, קיבלנו את הפילטר לתאורה שיולבש על תמונת ה-LDR המקורית בשביל לקבל את טווח הניגודיות המלא של תמונת הHDR. תשוו את זה לתמונה המקורית:
וככה, בניגוד למשחקים האחרים שמריצים כמה חישובים על מוקדי תאורה ומעגלים פינות, היילו 3 עובד כמו בעולם הצילום, משמר כל פיקסל ופיקסל בתמונה הסופית ושומר על מראה ה-HDR המרשים.
אבל רגע, מאיפה הכח לעשות את זה?
הטכניקה הזו, שמאד כבדה מבחינת צריכת משאבים בזמן אמת, מתאפשרת באמצעות הארכיטקטורה המתוחכמת של ה-XBOX: בכרטיס הגרפי של הקונסולה יש מעין תוספת שנקראת EDRAM שמיועדת לחישובים גרפיים עצמאיים. התוספת הזו היא הסיבה שלא מעט משחקים שיוצאים גם ל-X360 וגם ל-PS3 נראים יותר טוב על ה-X360: ה-EDRAM מאפשרת לקונסולה לבצע Anti-Aliasing (שיטה שהופכת תמונות לחלקות יותר ונותנת להם מראה פחות מחודד - אבל לא ניכנס לזה) בלי שהמפתחים צריכים לדאוג לזה בכלל. משחקים עם AA נראים פשוט יותר טוב.
Halo 3 מנצל את הEDRAM בצורה אופטימלית למטרת ה-HDR, וככה הכל מתבצע בלי לפגוע כלל בביצועים של המשחק, בעיבוד עוצמתי של 60 פריימים בשנייה.
אבל רגע, כמה זה עולה לי?
נכון. פה מגיעה בעייה מסויימת. החישובים הכבדים האלו באים על חשבון משהו: בין היתר הרזולוציה. היילו 3 רץ ברזולוציה קצת יותר נמוכה מרזולוציית ה-HD הטבעית של 720P ועובד ב680P. הקונסולה "מותחת" את התמונה כדי שתתאים לטלוויזיה. תמונה ברזולוציה יותר נמוכה שנמתחת יוצרת יותר "חידודים" ולכן נראית פחות חלקה ויפה. ולחלק מהאנשים זה כואב.
איך זה ש-COD4 נראה הרבה יותר חלק למרות שהוא רץ ברזולוציה יותר נמוכה?
נכון, COD4 הוא גם משחק עם מנוע גרפי מתקדם וכבד, וכדי שירוץ בצורה חלקה על הקונסולה הגרפיקה שלו רצה ברזולוציה יותר נמוכה מהיילו 3: רזולוציה של 640P. אבל משום מה, התמונה שלו כן נראה לנו יותר חלקה מאשר בהיילו 3, נכון? וככה גם עם הרבה משחקים חדשים אחרים.
אז פה אנחנו חוזרים ל-EDRAM: זוכרים שה-EDRAM משמש בדרך כלל ל-AA ומשפר את איכות התמונות של המשחקים ל-X360? אז כמו שציינתי, מעבר לכך שהמשחק רץ ברזולוציה של 680, בהיילו 3 ה-EDRAM מנוצלת עד תום בשביל להציג את ה-HDR במלוא הדרו - והדבר צריך לבוא על חשבון משהו אחר. Anti Aliasing במקרה שלנו.
וכך, בCOD4 אנחנו מקבלים תמונה ברזולוציה קצת יותר נמוכה, אבל שעברה AA, בעוד בהיילו המשחק לא עובר שום AA אחרי המתיחה, ולכן באמת נראה פחות חלק.
למעשה, זה קצת אבסורדי, כי משחק הדגל של הקונסולה שהטכנולוגיה שלה מאפשרת AA מובנה שהופך משחקים ליפים יותר, בעצם לא עושה את זה בפועל כי הוא מנצל אותה למטרה אחרת. האם ההקרבה של הרזולוציה וה-AA היו שווים את השיטה של באנג'י למשחק צבעוני יותר? את זה כבר יחליט מי ששיחק בו.
התאורה במשחק בכלל לא ריאליסטית! Crysis הרבה יותר ריאליסטי! וגם COD4 וגם [הכנס משחק כאן]
היילו 3, כידוע לאנשים ששיחקו בו, הוא משחק מד"ב עתידני וצבעוני. בניגוד ל-COD4 ול-CRYSIS הוא בכלל לא אמור להיראות ריאליסטי. בנוסף, כבר ציינו שלשני המשחקים האחרים ול-Crysis במיוחד יש עוד שפע של אפקטים וטכנולוגיות שנותנות לו מראה ריאליסטי יותר. הרבה יותר. זה עולם אחר למעשה.
אז מה זה היילו ב-HDR בעצם?
היילו 3 הוא מופע מרהיב של זיקוקי דינור. הוא לא מנסה לגרום לכך שכשתאירו בפנס על עץ קוקוס הצל שהוא יטיל על הרקע בזמן שהעץ מתנועע יהיה הכי מדוייק שאפשר, הוא מנסה לשמור על הצבעוניות של העולם שלו והחגיגה לעיניים באמצעות ה-HDR: כאשר תירו על מישהו עם Spartan Laser אז הם יראו את הצבע האדום שורף להם את המסך, כאשר תשגרו על Warthog טיל אז הפיצוץ הצבעוני והמרהיב יטיס אותו לשמיים, שכשתדביקו Plasma Granade לבאנשי תוכלו לשים לב לרימון הכחול הזוהר ביד שלכם שמשתקף על הקסדה שלכם ועל המשטח הסגול והמבריק של הבאנשי. ואז לחייך כל הדרך להילוך החוזר. תבלו
תגובות
1
18:50 21.03.2008 | jacoby308 (אורח)
לתשומת לבך
הטווח הדינמי של פילם
במצלמות גדול בהרבה מזה
של חיישנים דיגיטלים.
בנוסף, הטווח הדינמי של
פילם שחור לבן גדול מזה
של פילם צבעוני. ע"ע אנסל
אדאמס ושיטת ה-Zone System
שלו.
2
19:03 21.03.2008 | darkstar
ואללה כל הכבוד על ההשקעה
למרות שבשבילי האפקט הזה
לא כלכך חיוני כמו ה AA
3
19:23 21.03.2008 | Woolin
מצאתי את הכתבה חסרת טעם
ההתגוננות הזאת בסוף על קרייסיס
ו-COD4, ובאופן כללי ציון
העובדה ש'היום יש טכנולוגיות
חדשות' נראים לי מיותרים. בכלל,
זה מעניין אבל חסר טעם להצגה
בפורום מעיין זה.
עדיין, ח"ח על ההשקעה.
4
19:35 21.03.2008 | RomanEmpire
הערה לגבי ה-AA וHDR
קודם כל הרבה מאוד אם לא
כול מישחקי קונסולות
סובלות ממחסור של AA
כיוון שקונסולה עוד לא
מיתמודדת עם ה-AA כמו
שבאופן מעולה למדי המחשב
מיתמודד(כאשר רזולוצייה
גבוהה מאוד). אז אין שום
צורך להגיד שה-XBOX 360
פועל עם AA טוב יותר מזה
של PS3.אבל אני יכול לצדד
שבאמת ה-HDR עושה שימוש
מרהיב ביכולת שלו במישחק
הזה
5
21:25 21.03.2008 | Mastix
הערה לגביי Halo
לדעתי הוא סתם משחק FPS ממוצע
שכולם מתלהבים ממנו, עלילה
טיפשית ומשחקיות לא משהו.
6
21:42 21.03.2008 | Artigo
מושקע ומעניין!
למרות שאין לי xbox 360 מצאתי
את עצמי שוקע בכתבה. למדתי הרבה
דברים שלא ידעתי. קבל חיזוק חיובי!
7
22:04 21.03.2008 | kapcheR
gulmer כל הכבוד על ההשקעה!
ח'ח המשך כך! :)
8
23:29 21.03.2008 | jacoby308 (אורח)
וזה קשור לכתבה, איך?
הוא סיפר פה על טכניקה
שהשתמשו בה בפיתוח המשחק,
לא כתב ביקורת עליו.
9
09:40 22.03.2008 | navekeinan
לפי דעתי המפתחים עשו טעות שלא השתמשו...
לדעתי המפתחים עשו טעות
שלא השתמשו בטכנולוגית הHD
המשחק היה נראה הרבה
יותר טוב אם הטכנולוגיה
הזו.
10
10:40 22.03.2008 | kaminsky (אורח)
וואו!!
מושקע מאוד! המשך כך...
11
13:27 22.03.2008 | Tamiros4
מרתק...
אחת הכתבות היותר מעניינות
שראיתי בויגיימס עד היום!!!
כל הכבוד וישר כוח!
12
16:18 22.03.2008 | Wan7ed
!!!
אחלה כתבה גולמר! נהנתי
לקרוא...
13
20:17 22.03.2008 | חגי
כתבה מקצועית לעילא ולעילא
שכוייח!
14
21:46 22.03.2008 | bozeman
לעילא ולעילא?
התבלבלת, היום פורים, לא
כיפורים...
15
14:12 23.03.2008 | Mur'gul
נכון, לא אמרתי שלא
פילם עובד על כימיקלים
שרגישים הרבה יותר
מהחיישן האלקטרוני, אבל
לא מצאתי מקום להיכנס לזה
במסגרת הכתבה ולהפוך את
זה לדיון "פילם מול
דיגיטלי".
16
15:42 23.03.2008 | Mur'gul
ה"התגוננות" כביכול
היתה כדי למנוע מראש
תגובות מסוג זה בפורום של
אנשים שלא מבינים שנושא
הדיון אינו השוואה בין
גרפיקה של משחקים שונים.
האם רק ההתגוננות נראתה
לך חסרת טעם, או כל הכתבה
באופן כללי?
17
16:48 23.03.2008 | DTR69
FTW
"למה ל-Halo 3 יש את מערכת
התאורה הכי מתקדמת שיצאה במשחק
עד היום"
מממ ל HALO 3 אין את המערכת
התאורה הכי מתקדמת שיצאה במשחק
עד היום..ל CRYSIS יש ..
18
17:52 23.03.2008 | ע (אורח)
נשמע מאוד מעניין זה חומר לימודי שמסביר אודות כרטיסי מסך וHDR
כל הכבוד לכתב ואני מעריך
את זה לטובת הכתב
19
21:12 23.03.2008 | Dodge1
מדריך מדהים
תודה!!! נהנתי
20
10:05 26.03.2008 | Lycaon (אורח)
יופי של כתבה!
למרות שאני גיימר PC ואחד
שלא ממש מתלהב מ-FPS
למיניהם, הערך הדידקטי של
הכתבה הזו הוא גבוה
בשבילי.
אני אשמח לראות עוד כתבות
כאלה על AA, Pixel Shaders
ואפילו על 3DFX המנוח.
יישר כח!
21
| פורסם ע"י