עקיבת קרניים היא טכניקה לעיבוד גרפיקה ממוחשבת היוצרת תמונה על ידי מעקב אחר נתיב הקרניים בסצנה. הקרניים יכולות ליצור אינטראקציה עם עצמים בסצנה, להקפיץ אותם ולקבל תכונות, כגון צבע.
Ray Tracing: The Basics
עקיבת קרניים מחקה תאורה בעולם האמיתי. האור שאנו רואים הוא תוצאה של פוטונים הנפלטים ממקורות אנרגיה, כמו השמש. פוטונים יכולים לקפוץ ולהתפזר כשהם מתנגשים בעצמים. מראה היא כל מה שאתה צריך כדי לראות את זה בפעולה. אור הפוגע במראה יוצר השתקפות.
עקיבת קרינים מדמה זאת. מספר הקרניים שהתחקה בהם הוא זעום בהשוואה לעולם האמיתי, שבו מיליוני פוטונים קופצים על פני שדה הראייה שלנו. משחקים מודרניים מתארים איפשהו בין קרן אחת לארבע לפיקסל. ובכל זאת, זה מספיק כדי לדמות את העולם האמיתי.
התחקות אחר נתיב קרן מאפשרת לה גם לקיים אינטראקציה עם עולם המשחק. קרן שמקפיצה אובייקט אדום יכולה להיות מושפעת מהצבע הזה, מטילה זוהר אדום בקרבת מקום. קרניים יכולות להתפזר בדרכים שונות על סמך המאפיינים שאמני המשחק נותנים לחפצים, מה שמאפשר משטחים ריאליסטיים חצי רפלקטיביים או מחוספסים.
מעקב אחר קרניים הוא צעד משמעותי קדימה עבור גרפיקה תלת-ממדית. זה יוצר תמונה מציאותית על ידי הדמיית נתיב הקרניים כשהן נעות במשחק. זה מוביל לתאורה שיכולה לקיים אינטראקציה עם הסביבה גם כאשר הסביבה אינה נראית לנגן. מעקב אחר קרניים אינו דורש חומרה ייעודית כדי לתפקד, אבל הוא מעשי רק בכרטיס מסך או קונסולת משחקים שיכולים להאיץ את מעקב הקרניים מכיוון שהוא מאוד תובעני.
Ray Tracing לעומת Rasterization (או, גרפיקה תלת-ממדית כפי שהכרת אותה)
אתה עדיין עלול להיות מבולבל גם אם אתה מבין את ההסבר הזה. הרהורים היו נוכחים במשחקי העבר, אפילו אלה בני כמה עשורים. במה שונה איתור קרניים?
משחקי תלת-ממד קודמים, ורוב המשחקים המודרניים, משתמשים ברסטריזציה. רסטריזציה משלבת את האלמנטים של עולם משחק תלת מימד הנראה לשחקן לתמונה דו מימדית. זה מציג רק את מה שצריך להיות גלוי לשחקן, מכיוון שכל ביצועים המשמשים ליצירת מה שהשחקן לא יכול לראות מתבזבז. עם זאת, זה יוצר בעיה.
בוא נחזור לדוגמה של מראה. סביבת השחקן ודמות השחקן אינן גלויות לשחקן (במשחק בגוף ראשון, לפחות). עם רסטר, אין מה למראה לשקף.
כמובן, מראות קיימות במשחקים מודרניים. הם מציגים את הסצנה פעמיים. מעבר אחד הוא מנקודת מבטו של השחקן, בעוד שמעבר אחר הוא מנקודת מבט אחרת. עם זאת, זה מכפיל את הביצועים הדרושים לעיבוד סצנה.
השתקפויות של חלל מסך, טכניקה במנועי משחק תלת מימד פופולריים, השתמשו בנתונים על המסך כדי ליצור השתקפות. טכניקה זו אידיאלית עבור משטחים מחזירי אור בזווית לנקודת המבט של השחקן, כגון מים.עם זאת, אובייקטים משתקפים נעלמים אם הפריט המשתקף זז מחוץ למסך.
מעקב אחר קרניים אינו חולק את הבעיות הללו מכיוון שבניגוד לרסטרינג, הוא יכול להתחקות מחוץ לפרספקטיבה של השחקן.
כמו כן, במשחקים המאפשרים לקרניים ליצור אינטראקציה עם משטחים, מעקב אחר קרניים יכול להציג דימום צבע מציאותי ומשטחים חצי רפלקטיביים שקשה לטפל בהם ברסטר.
איזו חומרה דורשת איתור ריי?
איתור קרינים אינו רעיון חדש. מדעני מחשב ערכו ניסויים במעקב אחר קרניים בתחילת שנות ה-80, ויצרו תמונות סטטיות עם תאורה, השתקפויות וצללים מציאותיים. לרוע המזל, לקח להם שעות לעבד.
משחק וידאו צריך מעקב אחר קרניים בזמן אמת בקצב של 30 פריימים לשנייה ומעלה. זה אפשרי רק עם כרטיס מסך שנועד להאיץ את מעקב הקרניים.
מעקב אחר קרני RTX של Nvidia מסתמך על סיליקון הנקרא Tensor Core.ליבות Tensor נמצאות רק בכרטיסי מסך RTX. כרטיסי ה-GTX של Nvidia יכולים להציג משחק באמצעות מעקב אחר קרניים מכיוון שכאמור, מעקב אחר קרניים אינו דורש סיליקון בנוי ייעודי. עם זאת, הביצועים תהומיים בהשוואה לכרטיסי RTX. וחלק מהמשחקים, כמו Minecraft עם מעקב קרני RTX, דורשים כרטיס מסך RTX בגלל הדרך הספציפית שהם מאפשרים מעקב אחר קרניים.
כרטיסי AMD שמאיצים מעקב אחר קרניים אינם בעלי מיתוג ספציפי ואין להם סיליקון ייעודי. במקום זאת, הם משתמשים בהתאמות חומרה ובעדכוני תוכנה לתוצאות טובות יותר. קשה יותר לזהות כרטיסי AMD שמאיצים את מעקב הקרניים, אז שימו לב לפרטים.
ל-PlayStation 5 ו-Xbox Series X ו-S של Sony יש חומרה גרפית של AMD שיכולה להאיץ את מעקב הקרניים. עם זאת, זה תלוי במפתחים להפעיל, ומשחקים רבים לא. דוגמה בולטת היא Cyberpunk 2077, שתמך במעקב אחר קרני RTX במחשב בעת ההשקה, אך לא תמך במעקב אחר קרניים בקונסולות מהדור הבא. התכונה מובטחת עבור קונסולות הדור הבא בתיקון עתידי.