ViewWiki

שיעור 1 מתוך 4

מעקב קרניים.

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

שלב 1 מתוך 6 · שתי תמונות

שלב 1 מתוך 6

שתי תמונות

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

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

הסתכלו על כדור המראה בשתי התמונות.

לשאלה

שלב 2 מתוך 6

קרני מצלמה

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

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

לשאלה

שלב 3 מתוך 6

קרני צל

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

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

חזרה לניסוי

גודל מקור האור עומד עכשיו על 2 m. הסתכלו על שולי הצל של הכדור האדום, ונבאו.

לשאלה

שלב 4 מתוך 6

החזרות

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

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

לשאלה

שלב 5 מתוך 6

רעש

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

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

לשאלה

שלב 6 מתוך 6

התמונה כולה

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

לשאלה

תמונה של הסצנה התלת־ממדית „גרפיקה תלת־ממדית ומעקב קרניים”
סצנה אינטראקטיבית

הגרסה האינטראקטיבית נטענת…

כל שלב מכין לכם את הסצנה, ובקר שמסומן „קבוע” נשאר במקומו בשלב הזה.

לניסוי

תרגול · בחרו

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

לניסוי

תרגול · בחרו

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

לניסוי

תרגול · נבאו, ואז הסתכלו

גודל מקור האור עומד על 2 m, סופטבוקס גדול. מה יקרה לשולי הצללים כשתורידו את גודל מקור האור עד 0.1 m?

לניסוי

תרגול · חשבו

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

לניסוי

תרגול · נבאו, ואז הסתכלו

ב־16 קרניים לפיקסל, הגרף שליד הסצנה מראה כמה רעש נשאר ביחס לקרן אחת. מה יקרה לרעש כשתעברו ל־64 קרניים לפיקסל, פי ארבעה?

לניסוי

תרגול · חשבו

התמונה ברוחב 96 פיקסלים ובגובה 60. קרניים לפיקסל: 1616⁠, והחזרות: 22⁠, כך שכל קרן מצלמה גוררת עד 2(b+1)=62(b + 1) = 6⁠ קרניים. כמה קרניים לכל היותר דורשת התמונה כולה?