מה זה Ray Tracing והאם מדובר במהפיכה בגיימינג?

השתקפויות האש על הרכב – Battlefield V עם Ray Tracing

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

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

איך המשחק שלנו הופך לתמונה על המסך?

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

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

מצד שמאל: מצלמה בתוך המשחק. מצד ימין: כך נראית הסצנה מעיני המצלמה. מתוך מנוע UE4

נשמע מסובך? זהו בהחלט תהליך תובעני, שדורש הרבה חישובים – ואם זה לא מספיק, המחשב צריך לצייר מחדש את הסצנה עשרות פעמים בשניה (למשל, 60 תמונות בשניה) כדי שנקבל את התחושה שאנו נעים באופן חלק בעולם התלת מימדי. מדובר במעמסה גדולה מאוד של חישובים, וככל שהסצנה מורכבת יותר, כך ייקח למחשב זמן רב יותר לצייר אותה על המסך. אז איך המחשב מצליח לעשות זאת? לשם כך נוצרו כרטיסי המסך שלנו, או כפי שהיה נהוג לקרוא להם פעם: "מאיץ גרפי".

איך כרטיסי מסך עובדים (בערך)

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

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

אם נסתכל מקרוב, נראה שעצמים "חלקים" בעצם מורכבים מפוליגונים קטנים. תמונה: MAFIA 2.

כיום עומדות לרשותינו מערכות מורכבות, כמו OpenGL לדוגמה, שמטפלות בציור התמונה על המסך באמצעות שרשרת של חישובים – החל מתרגום הקורדינטות של המודלים השונים, חישובי צורות, עומק, תאורה, ועד להפיכתה לתמונה דו-מימדית שאפשר להציג על המסך שלנו, וצביעת כל פיקסל בתמונה. (הערה: ישנן שיטות ציור אחרות, שאינן מבוססות פוליגונים).

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

Ray Tracing

Ray Tracing היא שיטה מאוד וותיקה בעולם המחשוב, שהחלה את דרכה אי שם בשנות ה-70. בשיטה זו, אנו ממש יורים קרן "אור" מכל פיקסל במסך אל עבר הגופים השונים בסצינה שלנו, ובודקים איפה הקרן פוגעת. אם הקרן פגעה בעצם כלשהו, נוכל לדעת מה הצבע שאמור להיות בפיקסל המתאים. אך ניתן גם להתחכם, ולבדוק מה קורה אם הקרן קופצת הלאה (שיקוף) או אולי אם היא חודרת את החומר (כמו שקורה בעצמים שקופים, כגון זכוכית).

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

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

סצינה וירטואלית עם חישובי אור ריאליסטיים. צילום: Octane Render

עתיד הגיימינג

לאחרונה הציגה Nvidia כמה הדגמות שעוררו התלהבות רבה בתעשיית המשחקים. הדגמה בולטת במיוחד היתה של "מלחמת הכוכבים". לטענת החברה, במקום לבצע קירובים זולים של התאורה, כל תמונה בהדגמה מצויירת עם חישובי אור בשיטת Ray Tracing. החישובים מבוצעים מספיק מהר עד שניתן לומר כי המשחק רץ ב"זמן אמת", עם זמן תגובה סביר. בהדגמה עצמה ניתן לראות שאכן ההשתקפויות, הצללים וחישובי התאורה נראים מרשימים הרבה יותר ממה שהיינו מצפים לקבל במשחק רגיל.

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

אז האם מדובר במהפיכה? לכל הפחות מדובר בקפיצת מדרגה. ל-Ray Tracing יש את הפוטנציאל להיראות הרבה, הרבה יותר טוב מכל מה שהתרגלנו לראות במשחקי מחשב, וככל שיש לנו חומרה חזקה יותר, נוכל ליהנות מאפקטים מורכבים יותר של תאורה והשתקפויות, קפיצות נוספות של קרני האור, ותמונה קרובה יותר למציאות. סביר להניח שעם התקדמות הטכנולוגיה הזו נוכל להתקרב לרמת פוטוריאליזם שאנו רואים בסרטי אנימציה וקטעי CGI בקולנוע – שבבסיסם משתמשים בשיטות דומות כדי להציג לנו אפקטים פוטו-ריאליסטיים.

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


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

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

השוואת מפרטים