מעקב אחר קרניים בזמן אמת, ומה זה אומר עבור משחקי וידאו, הסביר

הפרטים נותרו דלים לעת עתה. סוני אישרה שהיא לא תשחרר את ה-PlayStation 5 (או איך שזה לא יקרא בסופו של דבר) לפני 2020, ומיקרוסופט אמרה שפרויקט סקרלט מתוכנן לחג 2020 (עםהילה אינסופיתבְּתוֹרכותרת ההשקה). אבל יש תכונה גרפית מרכזית של הדור הבא שנראה שצוברת אחיזה בקונסולות ובמשחקי מחשב - ולא, אנחנו לא מתכוונים לרזולוציית 8K, שבה ככל הנראה ה-PS5 ו-Project Scarlett יתמכו למרות שזה בקושי נוצץ ב- העין של רוב הצרכנים.

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

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

מהו מעקב אחר קרניים ואיך זה עובד?

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

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

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

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

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

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

לחברות כמו Weta Digital ו-Pixar יש "חוות רינדור" - מחשבי-על שעשויים להשתמש בעשרות אלפי ליבות מעבדים שעובדות יחד - שיכולות לבלות שעות על גבי שעות ביצירת פריים בודד של אפקט חזותי מסוים, או כל דבר על המסך ב-CG- סרט אנימציה. אבל כל חישובי המעבד וה-GPU שנכנסים להפקת פריים אחד של משחק וידאו צריכים להתבצע תוך שבריר שנייה. הסיבה לכך היא שמכונת משחק חייבת להיות מסוגלת לרנדר מסגרת חדשה לפחות 30 פעמים בכל שנייה, תוך כדי תנועה, כדי לספק חווית משחק חלקה. (זו הסיבה שקטעי חיתוך מעובדים מראש נראים לעתים קרובות טוב יותר ממשחק חי: כאשר מפתחים יכולים לקחת את הזמן שלהם כדי ליצור את הצילומים לסרטון שהוקלט מראש, הם יכולים להשקיע בו הרבה יותר.)

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

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

EA DICE השתמשה בטכניקה עבור השתקפויות בשדה הקרב 5, Crystal Dynamics התמקדה בצללים בShadow of the Tomb Raider, ו-4A Games נכנסו עם תאורה גלובלית וחסימת סביבהמטרו אקסודוס. תמיכת מעקב קרני נותרה מוגבלת לעת עתה, אך סביר להניח שזה עומד להשתנות.

מדוע ריי עוקב אחר עתיד הגרפיקה של משחקי וידאו?

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

מיקרוסופט שילבה תמיכה במעקב אחר קרניים ב-DirectX 12, תוכנת מפתח למשחקי Windows ו-Xbox One, בסתיו האחרון. בכנס מפתחי המשחקים לשנת 2019 במרץ, Epic Games ו- Unity Technologies הכריזו שמנועי המשחק שלהם - Unreal Engine ו- Unity, שהם שניים מהמנועים הפופולריים ביותר בפיתוח משחקים מודרניים - מציעים כעת תמיכה מקורית למעקב אחר קרניים. Crytek תשלב בקרוב מעקב אחר קרניים מבוסס תוכנה ב-CryEngine שלה, כלומר התכונה יכולה לעבוד במשחקי CryEngine ללא חומרה ייעודית כמו כרטיסי RTX של Nvidia.

היריבה הראשית של Nvidia, AMD, לא יושבת מהצד בכל הנוגע למעקב אחר קרניים. החברה עדיין לא הכריזה על GPUs משלה עם תמיכה מבוססת חומרה עבור התכונה - בחשיפת שני כרטיסים המבוססים על ארכיטקטורת Navi של הדור הבא שלה ב-E3 2019 ביום שני,Radeon RX 5700 XT וה-RX 5700 הזול יותר, AMD לא הזכירה שום מעקב אחר קרניים. עם זאת, גם Project Scarlett וגם הפלייסטיישן הבא יפעלו על סיליקון AMD, כולל GPUs מותאמים אישית המבוססים על Navi. אם ה-PS5 ו-Scarlett תומכים במעקב אחר קרניים, נראה כי זה הימור בטוח שגם חלק מכרטיסי ה-Navi של AMD יעשו זאת.

סביר להניח שעוד שנה מהיום, AMD תצטרף ל-Nvidia במכירת GPUs בעלי יכולת מעקב אחר קרניים. ובנקודה זו, אנו עשויים להיות במרחק של מספר חודשים בלבד מהופעות הבכורה של ה-PS5 וסקרלט. זה ייצור בסיס אדיר ומוצק עבור מפתחי משחקים, סיבה משכנעת ליצור משחקים התומכים בתכונות מעקב אחר קרניים. וזה ידחוף את הגרפיקה של משחקי וידאו קדימה, ויביא את המשחקים לרמה חסרת תקדים של פוטוריאליזם.