יום שני, 28 בינואר 2013

איך הגעתי לשם?

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

יום ראשון, 13 בינואר 2013

להתייעל

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

לסייקלס ברינדור מעבד יש 2 אפשרויות של חישוב דגימה, (ניתן לברור בניהם על ידי הורדה והוספת הV מכפתור הרדיו שבקטגוריית Sampling).

progressive - חישוב דגימה שווה לכל סוגי החומרים בסצנה, במידה והגדרנו 200 דגימות כל חומר יחושב 200 פעם, תכונה זו מופעלת ברירת מחדל.
non progressive - חישוב דגימה ידני, כל חומר יחושב לפי הדגימות שניתן לו, כך שישנה אפשרות שחומר מסוג Diffuse  יחושב 5 פעמים בעוד חומר מסוג Glossy יחושב 200 פעם.


החיסכון, איהו?


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

להציץ כמובן

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



כפי שניתן לראות יש לנו 5 רשומות בצד ימין ואחת נוספת בצד שמאל, 2 הרשומות הראשונות בצד ימין אנו יודעים על מה הן אחראיות השלישית Transmission אחראית על חומרי זכוכית למינם, הרביעית AO אחראית על Ambient occlusion והחמישית אחראית על התאורה. 
הרשומה הנוספת שיש לנו בצד שמאל היא AA והיא אחראית על Anti-aliasing.

החשבון הוא כזה, דגימה אחת של AA כוללת את כל סכום הדגימות של הרשומות בצד ימין, אם למשל הגדרנו 50 דגימות לכל ערך בצד ימין ו4 דגימות בAA אז כל דגימה של AA תכלול 50 דגימות Diffuse ו50 דגימות Glossy וכו' כך שבסופו של יום יהיה לנו 200 דגימות לכל הסצנה, כמובן שכל דגימה של AA תיקח יותר זמן אבל בצורה כזאת אני יכול לחסוך חישובים מיותרים של דגימות שבסופו של דבר עולות בזמן רינדור.

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


הכן צא!


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

אז כך ברינדור הרגיל לקח לי 00:05:32 
ברינדור הלא פרוגרסיבי הכי מהיר לקח לי 00:03:14
מה שאומר שיש לי כ-40% חיסכון בזמן רינדור.

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

נ.ב. התמונות מסודרות ברצף עולה של דגימות ה-AA
תהנו :-)