Ray-Tracing Using POV-RAY

34
Ray-Tracing Ray-Tracing Using POV-RAY Using POV-RAY ןןן ןןןןןןן ןןן ןןןןןןן61013793 61013793 ןןןן ןןןן ןןןן ןןןן37730793 37730793 ןןןןן ןןןןן4 4

description

Ray-Tracing Using POV-RAY. ניר סולומון 61013793 ליאת כהנא 37730793 קבוצה 4. ראשי פרקים. הקדמה- מהו Ray-Tracing ? אופן פעולת Ray-Tracer . בעייתיות בשיטת Ray-Tracing . מקבול Ray-Tracing . הפרויקט שלנו. אז מה זה בעצם Ray-Tracing ?. Ray-Tracing היא השיטה המקובלת כיום - PowerPoint PPT Presentation

Transcript of Ray-Tracing Using POV-RAY

Page 1: Ray-Tracing Using POV-RAY

Ray-Tracing Ray-Tracing Using POV-RAYUsing POV-RAY

6101379361013793ניר סולומון ניר סולומון 3773079337730793ליאת כהנא ליאת כהנא

44קבוצה קבוצה

Page 2: Ray-Tracing Using POV-RAY

ראשי פרקיםראשי פרקים

הקדמה- מהו הקדמה- מהוRay-TracingRay-Tracing?? אופן פעולת אופן פעולתRay-TracerRay-Tracer.. בעייתיות בשיטת בעייתיות בשיטתRay-TracingRay-Tracing.. מקבול מקבולRay-TracingRay-Tracing...הפרויקט שלנו.הפרויקט שלנו

Page 3: Ray-Tracing Using POV-RAY

-Ray-Rayאז מה זה בעצם אז מה זה בעצם TracingTracing??

Ray-TracingRay-Tracing היא השיטה המקובלת כיום היא השיטה המקובלת כיום

ליצירת תמונות ממוחשבות של נופים ועצמיםליצירת תמונות ממוחשבות של נופים ועצמים

תלת מימדיים. תלת מימדיים.

Page 4: Ray-Tracing Using POV-RAY

כל סרטי האנימציה הממוחשבים, למשל, הם כל סרטי האנימציה הממוחשבים, למשל, הםסדרות של תמונות מיוצרות מחשב, כאשר כל סדרות של תמונות מיוצרות מחשב, כאשר כל

על מנת על מנת Ray-TracingRay-Tracing תמונה עברה תהליך של תמונה עברה תהליך של לייצר אותה.לייצר אותה.

יכולות יכולות Ray-TracingRay-Tracing התמונות הנוצרות ע"י התמונות הנוצרות ע"י להיות פשוטות ומהירות לתכנון...להיות פשוטות ומהירות לתכנון...

Page 5: Ray-Tracing Using POV-RAY

::לדוגמאלדוגמא

))תמונה לא ריאלסטית בעליל שיצרנו לצורך המצגתתמונה לא ריאלסטית בעליל שיצרנו לצורך המצגת((

Page 6: Ray-Tracing Using POV-RAY

אבל התמונות יכולות להיות מרשימות וכמעטאבל התמונות יכולות להיות מרשימות וכמעט

..פוטו-ריאליסטיותפוטו-ריאליסטיות

(..(..וגם לגרוף כמה מאות מיליוני דולרים בקופותוגם לגרוף כמה מאות מיליוני דולרים בקופות))

Page 7: Ray-Tracing Using POV-RAY

::למשללמשל

באופן מקבילי. באופן מקבילי.Ray-TracingRay-Tracing "שרק" הוא סרט אנימציה באורך מלא, שכולו יוצר בשיטת "שרק" הוא סרט אנימציה באורך מלא, שכולו יוצר בשיטת

Page 8: Ray-Tracing Using POV-RAY

::או תמונה פוטו-ריאליסטית מוצלחתאו תמונה פוטו-ריאליסטית מוצלחת

Internet Ray-Tracing Competition (www.irtc.org)Internet Ray-Tracing Competition (www.irtc.org)זוכה פרס ראשון בחודש מרץ-אפריל בתחרות זוכה פרס ראשון בחודש מרץ-אפריל בתחרות

Page 9: Ray-Tracing Using POV-RAY

??איך עושים את זהאיך עושים את זה

הכרזה על עצמים)הגדרת "עולם"(:

הגדרת "מצלמה"- הגדרת מקורות אור-- הגדרת אובייקטים מוצגים-

Rendering

)התהליך ארוך ודורש מיליארדי חישובים.

מקביל לקומפילציה בתכנות(

קלט

עיבוד

פלטתמונה מוגמרת

Page 10: Ray-Tracing Using POV-RAY

נפרט על כל אחד מהשלבים...

Page 11: Ray-Tracing Using POV-RAY

: הגדרת ה"עולם: הגדרת ה"עולם11שלב שלב ""

כשבונים תמונה של עולם תלת מימדי,כשבונים תמונה של עולם תלת מימדי,

מדברים על שלושה מרכיבים עיקריים:מדברים על שלושה מרכיבים עיקריים:

המצלמההמצלמהמקורות אורמקורות אוראובייקטים ממגוון סוגיםאובייקטים ממגוון סוגים

Page 12: Ray-Tracing Using POV-RAY

המצלמההמצלמה

כמו במצלמה אמיתית, נגדיר:כמו במצלמה אמיתית, נגדיר:

קורדינטות()קורדינטות(מיקום במרחב מיקום במרחב(

וקטור כיוון()וקטור כיוון(כיוון להסתכל עליו כיוון להסתכל עליו(

כמו בעדשה()כמו בעדשה(זוית מרחבית זוית מרחבית(

אם מעוניינים)אם מעונייניםוקטור תנועה וקטור תנועה(

באנימציה( באנימציה(

Page 13: Ray-Tracing Using POV-RAY

מקורות האורמקורות האור(.(.בלעדיהם נקבל תמונה שחורהבלעדיהם נקבל תמונה שחורהמקורות אור חיוניים לתמונה )מקורות אור חיוניים לתמונה )

למקורות אור נגדיר: למקורות אור נגדיר:

כמו לכל אובייקט()כמו לכל אובייקט(מיקום במרחב וכיוון מיקום במרחב וכיוון(

אור רך לכל הכיוונים, "ספוט", לייזר...()אור רך לכל הכיוונים, "ספוט", לייזר...( סוג האור סוג האור(

נוכל להשתמש בצבע אור על מנת לדמות שקיעה, )נוכל להשתמש בצבע אור על מנת לדמות שקיעה, צבעצבע(

למשל(למשל(

ביום תהיה עוצמת האור חזקה מהלילה, למשל()ביום תהיה עוצמת האור חזקה מהלילה, למשל( עוצמהעוצמה(

)ניתן ורצוי לשלב מספר מקורות אור בסצינה אחת()ניתן ורצוי לשלב מספר מקורות אור בסצינה אחת(

Page 14: Ray-Tracing Using POV-RAY

האובייקטיםהאובייקטיםלכל אובייקט נגדיר:לכל אובייקט נגדיר:

.מרחב : גודל, צורה, ומיקום.מרחב : גודל, צורה, ומיקום)במקרה של כדור, למשל, נצטרך להגדיר רק מיקום מרכז הכדור והרדיוס שלו.)במקרה של כדור, למשל, נצטרך להגדיר רק מיקום מרכז הכדור והרדיוס שלו.

במקרה של הפנים של שרק נצטרך לעצב גוף מאוד מורכב ולייצג אותו בעזרת כמות במקרה של הפנים של שרק נצטרך לעצב גוף מאוד מורכב ולייצג אותו בעזרת כמות אדירה של אינפורמציה.(אדירה של אינפורמציה.(

.מרקם: המרקם הוא הדרך שבה מגיב הגוף לאור.מרקם: המרקם הוא הדרך שבה מגיב הגוף לאור- סוג החומר- סוג החומר

)גוף יכול להיות מבריק כמו מתכת, מחוספס ובולע אור, שקוף, פרוותי ועוד()גוף יכול להיות מבריק כמו מתכת, מחוספס ובולע אור, שקוף, פרוותי ועוד(

- צבע או תבניות צבעוניות - צבע או תבניות צבעוניות )מתכת כסופה, פסים חומים בעץ וכו'(.)מתכת כסופה, פסים חומים בעץ וכו'(.

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

Page 15: Ray-Tracing Using POV-RAY

RenderingRendering 22שלב שלב : : -Ray-Rayלאחר סיום הכנסת המידע המחשב מקבל קובץ בשפה ייחודית ל-לאחר סיום הכנסת המידע המחשב מקבל קובץ בשפה ייחודית ל-

TracingTracing הנקראת הנקראת POV-RAYPOV-RAY..

זהו קובץ הגדרת עולם שהתקבל:זהו קובץ הגדרת עולם שהתקבל:

הגדרת המצלמה

איפה במרחב

כדורהגדרת אובייקט:

כיוון המצלמה

camera { camera { location <0, 2, -3> location <0, 2, -3> look_at <0, 1, 2> look_at <0, 1, 2>

} } sphere { sphere {

<0, 1, 2>, 2<0, 1, 2>, 2 texture { texture {

pigment { color pigment { color Orange } Orange }

} } }}

הגדרת מרכז ורדיוסמרחב:

מרקם:צבע הכדור

נניח גם תאורה אחידה בחלל.

Page 16: Ray-Tracing Using POV-RAY

RenderingRendering((המשךהמשך)) כשמו כן הוא: מעקב אחר קרניים. כשמו כן הוא: מעקב אחר קרניים. Ray-TracingRay-Tracingתהליך תהליך

בעולם האמיתי, תהליך קליטה הקרניים כולל פיזור קרני בעולם האמיתי, תהליך קליטה הקרניים כולל פיזור קרני אור ממקור אור ע"י האובייקט, וקליטת חלק מקרניים אור ממקור אור ע"י האובייקט, וקליטת חלק מקרניים

בעין האנושית )או המצלמה(:בעין האנושית )או המצלמה(:

קרניים

נקלטות

קרניים מתפזרות

Page 17: Ray-Tracing Using POV-RAY

RenderingRendering((המשךהמשך)) בעולם הוירטואלי, הדבר לא שימושי.בעולם הוירטואלי, הדבר לא שימושי.

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

באובייקט.באובייקט.

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

Page 18: Ray-Tracing Using POV-RAY

......הבעייתיות – זמן חישובהבעייתיות – זמן חישוב

תהליך יצירת תמונה יכול לקחת עשרות שעות.תהליך יצירת תמונה יכול לקחת עשרות שעות.

הדבר נובע משתי סיבות :הדבר נובע משתי סיבות : תהליך תכנון ומיקום האובייקטים יכול להיות ארוך תהליך תכנון ומיקום האובייקטים יכול להיות ארוך

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

לעשות לעשותRenderingRendering לתמונה מורכבת יכול לקחת לתמונה מורכבת יכול לקחת שעות במחשבים חזקים ומודרניים של היום.שעות במחשבים חזקים ומודרניים של היום.

Page 19: Ray-Tracing Using POV-RAY

פתרונות?פתרונות?

לבעיות אין פתרונות קסם,לבעיות אין פתרונות קסם,ניתן רק לנסות לשפר את זמני הביצוע:ניתן רק לנסות לשפר את זמני הביצוע:

ממשק ממשק את זמן התכנון ניתן לקצר ע"י שיפור את זמן התכנון ניתן לקצר ע"י שיפור לא ניתן לייצר תמונות מורכבות מדי ע"י לא ניתן לייצר תמונות מורכבות מדי ע"י המשתמש.המשתמש.

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

( לתכנות ( לתכנות ASMASMלהבדל בין שימוש בשפת מכונה )להבדל בין שימוש בשפת מכונה )(.(.....C, JavaC, Javaבשפת על )כגון בשפת על )כגון

Page 20: Ray-Tracing Using POV-RAY

ומה ניתן לעשות לגבי ה – ומה ניתן לעשות לגבי ה – RenderingRendering??

Page 21: Ray-Tracing Using POV-RAY

Enter… Enter… Parallel POV-Parallel POV-

RAYRAY!!

Page 22: Ray-Tracing Using POV-RAY

מדוע צריכים לאמץ שיפור זמן דווקא מדוע צריכים לאמץ שיפור זמן דווקא ??RenderingRenderingב-ב-

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

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

דקות. דקות.1010הסצינה דורש כ-הסצינה דורש כ-

נתון:נתון: :20482048רזולציית הסרט: רזולציית הסרט X 1536X 1536 :זמן חישוב פיקסל ממוצע: זמן חישוב פיקסל ממוצעmSecmSec0.150.153030 סטנדרט( סטנדרט תמונות בשנייה( תמונות בשנייה NTSCNTSC))

Page 23: Ray-Tracing Using POV-RAY

טיפוסי טיפוסי RenderingRenderingחישוב זמן חישוב זמן

לאחר חישוב :לאחר חישוב :

2048*1536*0.15m*30*5 = 19.6 Hours!2048*1536*0.15m*30*5 = 19.6 Hours!

שניות, שניות, 55כלומר, כדי ליצור מקטע סרט באורך כלומר, כדי ליצור מקטע סרט באורך )פחות ממילי-שניה לכל )פחות ממילי-שניה לכל בהנחה שמדובר במחשב-על בהנחה שמדובר במחשב-על

שעות, אפילו אם שעות, אפילו אם 2020 ניאלץ להמתין כ- ניאלץ להמתין כ-פיקסל(,פיקסל(,תכנות הסצינה בשפה כלשהי הוא מספר תכנות הסצינה בשפה כלשהי הוא מספר

דקות.דקות.

Page 24: Ray-Tracing Using POV-RAY

Parallel Ray-TracingParallel Ray-Tracing

כיוון שיש גבול ליכולת המחשוב כיום, הפתרון הטבעי כיוון שיש גבול ליכולת המחשוב כיום, הפתרון הטבעי במקביל על מספר במקביל על מספר RenderingRenderingהוא הרצת ה - הוא הרצת ה -

מחשבים. הפתרון שימושי ביותר ממספר סיבות:מחשבים. הפתרון שימושי ביותר ממספר סיבות: ניתן להריץ )ניתן להריץ מחיר : זול מחיר : זול(RenderingRendering על מחשבי על מחשבי PCPC

רגילים(רגילים(

:ניתן להרצה גם על מחשבים שאינם בשימוש באותו ניתן להרצה גם על מחשבים שאינם בשימוש באותו יעילות: יעילותרגע.רגע.

."והכי חשוב – ניתן למקבול "אלגנטי".והכי חשוב – ניתן למקבול "אלגנטי

Page 25: Ray-Tracing Using POV-RAY

-Parallel Ray-Parallel Ray((המשךהמשך)) TracingTracing

ניתן ניתן RTRTנקודת המוצא של הפרוייקט שלנו היא ש-נקודת המוצא של הפרוייקט שלנו היא ש-למקבול יעיל ביותר. למעשה – למקבול יעיל ביותר. למעשה –

Ray-TracingRay-Tracing is an is an Embarrassingly Embarrassingly Parallel ApplicationParallel Application! !

Page 26: Ray-Tracing Using POV-RAY

איך הדבר נעשה...איך הדבר נעשה...

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

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

התהליכים.התהליכים.

)הדבר חשוב במיוחד כי יש חלקים בתמונה שזמן )הדבר חשוב במיוחד כי יש חלקים בתמונה שזמן העיבוד שלהם שונה משל אחרים.( העיבוד שלהם שונה משל אחרים.(

Page 27: Ray-Tracing Using POV-RAY

)המשך()המשך(איך הדבר נעשה... איך הדבר נעשה...

המפתח הוא בחלוקת עומס דינמית.המפתח הוא בחלוקת עומס דינמית.

תהליך אחד מפרק את התמונה לגושים, ויוצר תהליך אחד מפרק את התמונה לגושים, ויוצר Work-PoolWork-Pool.של חתיכות תמונה. של חתיכות תמונה

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

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

Page 28: Ray-Tracing Using POV-RAY

??איפה אנחנו נכנסים לתמונהאיפה אנחנו נכנסים לתמונה

מדידת יעילות מדידת יעילות המטרה של הפרוייקט שלנו היא המטרה של הפרוייקט שלנו היא

למערכות למערכות Ray-TracingRay-Tracing שונים ל שונים לאלגוריתמיםאלגוריתמים

(.(.DwarvesDwarves)ה-)ה-שאנחנו עובדים איתן שאנחנו עובדים איתן

Page 29: Ray-Tracing Using POV-RAY

פרמטרים למדידת יעילות פרמטרים למדידת יעילות האלגוריתמיםהאלגוריתמים

המקבילייםהמקביליים-מורכבות התמונה ל-מורכבות התמונה לRendringRendring ככל שלוקח יותר )ככל שלוקח יותר(

זמן "לקמפל" את התמונה- השיפור במיקבול משמעותי יותר(זמן "לקמפל" את התמונה- השיפור במיקבול משמעותי יותר(

שיטת המיקבול שיטת המיקבול((MPIMPI, , PVMPVM)וכדומה )וכדומה

SpeedupSpeedup – – בדיקה אמפירית של השפעת הוספת בדיקה אמפירית של השפעת הוספתמעבדים על המהירות.מעבדים על המהירות.

Page 30: Ray-Tracing Using POV-RAY

מדידת יעילות- הלכה למעשהמדידת יעילות- הלכה למעשה

לשם מדידת הפרמטרים, נשתמש ב לשם מדידת הפרמטרים, נשתמש בRendererRenderer שנקרא שנקרא POV-RAYPOV-RAY..

POV-RAY = POV-RAY = PPersistence ersistence oof f VVision ision RAYRAY Tracer Tracer

Page 31: Ray-Tracing Using POV-RAY

POVPOV--RAYRAY

POV-RAYPOV-RAY הינה תוכנה חופשית עם מספר הינה תוכנה חופשית עם מספר גרסאות, ביניהן גרסאות מקביליות.גרסאות, ביניהן גרסאות מקביליות.

-POV-POVהגדרת ה"עולם" נעשת באמצעות שפת הגדרת ה"עולם" נעשת באמצעות שפת RAYRAY בעלת מבנה דומה לשפת , בעלת מבנה דומה לשפת ,CC..

)כפי שראינו בשקופיות קודמות()כפי שראינו בשקופיות קודמות(

Page 32: Ray-Tracing Using POV-RAY

שלבים בביצוע הפרויקטשלבים בביצוע הפרויקט

הרצת תמונה מורכבת לשם הרצת תמונה מורכבת לשםBenchmarkingBenchmarking בשתי שיטות המיקבול : בשתי שיטות המיקבול : )מדידת כח חישוב של מערכת()מדידת כח חישוב של מערכת(

11 . .MPIMPI

22..PVMPVMRendringRendring בכל שיטה על מספר שונה של בכל שיטה על מספר שונה של

באופן אמפירי. באופן אמפירי.SpeedupSpeedupמעבדים, ומדידת מעבדים, ומדידת השוואת התוצאות להרצת תמונות פחות השוואת התוצאות להרצת תמונות פחות

מורכבות.מורכבות.

Page 33: Ray-Tracing Using POV-RAY

כל זאת ועוד יעשה בפרויקט ה-כל זאת ועוד יעשה בפרויקט ה-

Ray TracingRay Tracing

תודה שהקשבתם-תודה שהקשבתם-

44קבוצה קבוצה

Page 34: Ray-Tracing Using POV-RAY

finfin