Unreal: מה לעזאזל אני רואה פה?

איך בדיוק המשחקים החדשים מצליחים להראות רמת פירוט כה גבוהה? למה הדמויות של Unreal Tournament 3 נראות כל כך הרבה יותר טוב מאלו של 2004? כתבה לאוהבי הפוליגונים<BR>

Unreal: מה לעזאזל אני רואה פה? | רשת 13

קשה להאמין שעברו רק 10 שנים מאז שיצא Unreal הראשון, אבל עוד יותר קשה להאמין שבפעם הראשונה שהפעלתי את המשחק אמרתי 'וואו! זה נראה כל כך ראליסטי!'. מסתבר שכמו שאיינשטיין אמר – הכל יחסי. ובאמת, בשנת 1998 הגרפיקה של Unreal הראשון היתה עוצרת נשימה – המים נראו בערך כמו מים, הצללים נראו כמעט כמו צללים והדמויות כבר לא נראו לגמרי מרובעות.

היום, כמובן, זה כבר לא מספיק לנו. בשביל לקבל בימינו את ההגדרה 'ריאליסטי', משחק צריך להציג מים שיראו כל כך אמיתיים שנרגיש צמאים, שהסביבה תשתקף בצורה מציאותית על פני המים, שעץ יצוף על המים בעוד שאבן תשקע, ושאם דמות תיכנס למים, היא תצא רטובה. ועדיין לא דיברתי על איך נראים היום הצללים או מה גובה רמת הפרוט של הדמויות במשחקים.

אז מה קרה ב-10 שנים האחרונות שאפשר למפתחי המשחקים לעשות קפיצות מדרגה כה גדולות בתחום הגרפיקה? ובכן, מסתבר שעד שנת 2004 דווקא היתה התפתחות הדרגתית והגיונית בתחום הגרפיקה הממוחשבת, שהלכה והתפתחה יד ביד עם כוח החישוב שהלך וגדל. ככל שהיה יותר כוח חישוב, כך המחשב יכל להציג יותר ויותר פרטים.

אך מסתבר שכשאתה נמצא מספיק זמן במקצוע, אתה לומד טריקים חדשים. טריקים שמאפשרים לך להציג הרבה מאוד פרטים במעט מאוד כוח חישוב. זו הסיבה להופעתם הפיתאומית של משחקים כמו Doom 3 או Far Cry דווקא בשנת 2004. ב-4 השנים שעברו מאז למדו המתכנתים להוציא את המיטב מהטריקים האלו, ומכיוון שרק קוסם לא מגלה את הטריקים שלו, הנה הסבר על שניים עיקריים (שניהם נלקחו מהמנוע Unreal 3, יש בשוק עוד מספר מנועי משחק מעולים, אך הוא האהוב עלי).

Normal Mapping

אחד הטריקים הראשיים בארסנל של המתכנתים נקרא Normal Mapping, והוא מאפשר ליצור את האשליה של מודל רב פוליגונים, בעוד שהמודל למעשה דל בפוליגונים. (מה זה פוליגונים? פוליגונים הם המשולשים שמהם מורכב כל מודל תלת מימדי. ככל שיש במודל יותר פוליגונים, כך כמות הפרטים שבמודל עולה). אז איך הם עושים את זה? בתור שלב ראשון הם מושיבים בן אדם מסכן שנקרא 'מודליסט' והתפקיד שלו הוא ליצור דמות תלת מימדית שיש בה כמה שיותר פרטים.

לאחר עבודת נמלים ממושכת מתקבל מודל שיש בו, בדרך כלל, בין מליון ל-10 מליון פוליגונים. את המודל הזה שום מחשב לא היה יכול להריץ בזמן אמת, הוא פשוט כבד מדי. לאחר שבנו את המודל עתיר הפוליגונים, הם יוצרים מודל זהה, אך דל בפוליגונים (בין 7,000 ל-10,000 פוליגונים בלבד). למודל הזה יש מעט מאוד פרטים אך מחשב ממוצע יוכל להריץ אותו בקלות.

אחר כך המתכנתים יוצרים קובץ מיוחד, הנקרא Normal, שמכיל בתוכו את כל ההבדלים הקיימים בין 2 המודלים, בעיקר את משחקי האור והצל על הדמות המפורטת יותר. בזמן המשחק, המחשב מריץ את הדמות דלת הפוליגונים, אך הוא 'שואב' את המידע החסר מתוך קובץ ה-Normal.

התוצאה היא דמות שלמחשב יהיה קשה יותר להריץ מאשר דמות שלא משתמשת ב-Normal Mapping, אך יהיה לו יותר קל להריץ אותה מאשר דמות עתירת פוליגונים. היחס הוא, אגב, כ-200 ל-1. כלומר – בהדגמת המנוע Unreal 3, הוצגה סביבה תלת מימדית שהורכבה מבערך מליון פוליגונים, אך היא היתה בנויה על סביבה בעלת 200 מליון פוליגונים. מבחינת הצופה, לא ממש ניתן לראות את ההבדל והסביבה נראית מפורטת במיוחד.

Virtual Displacement Mapping

אחותה הצעירה של ה-Normal Mapping. בעזרת טריק זה יוצרים המתכנתים אשליה של תלת מימד בתוך טקסטורה דו מימדית לחלוטין. כדי שהמוח שלכם לא יתחיל להעלות עשן אני רק אסביר בקצרה שהרעיון הוא טקסטורה המסוגלת להשתנות בהתאם לזוית שהשחקן צופה בה. נניח ויצרנו קיר גדול, שבנוי ממלבן חלק לחלוטין. כעת אנו שמים עליו טקסטורה של קיר לבנים. אם נביט בקיר מקדימה הוא יראה כמו קיר לבנים רגיל. אך אם נביט בו מהצד, מיד נוכל להבחין בכך שללבנים אין כל עומק.

בעזרת Virtual Displacement Mapping (הנקראת גם Parallax Mapping) הטקסטורה משתנה בהתאם לזוית שאנו מביטים בה, כך שהפעם כשנביט בקיר מהצד, נראה טקסטורה שבה הלבנים מסתירות מעט זו את זו ואף מטילות צל אחת על השניה, כך שהן נראות כאילו הן בולטות מתוך הקיר. האשליה הסופית היא כמעט מושלמת, רק בבחינה מדוקדקת במיוחד ניתן לשים לב שלמעשה האבנים אינן באמת בולטות ושמדובר בקיר חלק לחלוטין. גם במקרה זה, טקסטורה בעלת Virtual Displacement Mapping שוקלת הרבה יותר מטקסטורה רגילה, אך מעט מאוד לעומת קיר לבנים שעשוי כולו מפוליגונים.

בעזרת טריקים אלו ועוד רבים אחרים, מצליחים המפתחים בימינו ליצור עולמות ווירטואליים עשירים מאוד בפרטים, מבלי להעמיס על המעבד הגרפי יותר מדי חישובים. זו גם הסיבה שלא צריך מחשב מפלצתי במיוחד כדי להריץ את Unreal Tournament 3. גם על ההגדרות הכי נמוכות שלו, הוא עדיין נראה יותר מפורט ממשחקים אחרים, שאינם משתמשים בטריקים האלו.

קשה לנחש מה יהיו הטריקים הבאים שימציאו המתכנתים, אך כל עוד חוק מור ממשיך לעבוד, אין ספק שהרמה הגרפית במשחקי וידאו תמשיך לזנק קדימה בצעדים הולכים וגדלים. האח!