במאמר זה ננסה קצת להבין מהן בעצם תוכנות הרנדור, אלו רכיבים במחשב הרנדור משפיעים על פעולתם, ומדוע הן מתנהגות באופן שונה ואפילו מספקות תוצאה שונה.
מהו מנוע רנדור?
בקצרה, מנוע רנדור הוא הקבלן המבצע של הפרויקטים שלנו. הוא זה שיעבד את המודל, התכנון, שירטוט או סצנה שלנו וימיר אותו לתמונה (או וידאו). אך אי אפשר לתאר מנוע רנדור ללא התייחסות לגרפיקה וקטורית.
גרפיקה וקטורית מתבססת על פוליגונים (צורות בעל מספר סופי של קווים ישרים), המתוארים ע"י נקודות דו-מימדיות. כל אחת מן הנקודות בעלת מיקום ברור על צירי X ו- Y, ומהן מפיקים מסלול (Path), בעל מאפיינים שונים (כמו צבע, מילוי וכדומה), שמהן תיווצר בסופו של דבר תמונה.
גרפיקה וקטורית היא ההפך המוחלט מגרפיקה מבוססת מפת-ביטים (Raster / Bitmap), המורכבת מפיקסלים בצבע ספציפי, שיחדיו מייצרים תמונה. גרפיקה וקטורית מצטיינת בשמירה על יחסים ומתמודדת היטב עם שינויים ברזולוציה. דמיינו שאתם צריכים לעשות זום מאסיבי על אלמנט מסוים בתמונה, או שאולי איור שביצעתם צריך להופיע על שלט חוצות הדורש רזולוציה מרובעת, ביחס שונה מהמקור. גרפיקה וקטורית אינה תלויה ברזולוציה וניתן בקלות לייצא תוכן וקטורי לאיזה רזולוציה שתחפצו. תהליך זה יקרא Rastering, והוא מיועד לייצא תוצר של מפת ביטים (פיקסלים) סופיים.
גם גרפיקה תלת-מימדית מתבססת על גרפיקה וקטורית דו-מימדית. נכון להיום, המסכים, הדפים, ומרבית הציוד שלנו אינו תלת-מימדי, ולכן בסוף היום אנחנו מפיקים תוצאה דו-מימדית הנתפסת כתלת-מימדית.
כ"קבלן", מנוע הרנדור יודע לקבל דרישות כמו "צייר לי קו" או "צייר עיגול עם מילוי בצבע אדום" ולממש אותם. מנועי הרנדור שנדרשים לתלת מימד לוקחים את הדברים כמה צעדים קדימה ומתבססים על עקרונות פיזיקליים בשילוב טקסטורות, תיאורה, מיקום "מצלמה" ועוד מידע, לצורך רנדור הסצנה לה אנו נדרשים.
סוגי רנדור
ישנם מספר סוגי אלגוריתמים לרנדור חלק אף משולבים יחד בתוכנות הרנדור השונות:
-
רסטריזציה (Rasterization) בשילוב עם בדיקת-חפיפה (Scanline). אלגוריתם בסיסי ללא אפקטים אופטיים.
-
תשדורת-קרן (Ray Casting) התייחסות לסצנה מנקודת מבט ספציפית. חישוב מבוסס על גיאומטריה ופיזיקה אופטית ברמה בסיסית ביותר לצד הוספת אפקטים פשוטים להורדת ארטיפקטים (כמו טכניקות מונטה קרלו).
-
מעקב-קרן (Ray Tracing) התייחסות לסצנה מנקודת מבט ספציפית. בטכניקה זו נורות קרניים מהמצלמה ("עיניים") והמסלול אותו הן עוברות משפיע על כל קרן שבסוף מסוכמות לפיקסלים על ה"מצלמה" (המסך שלנו). גם פה, יתווספו טכניקות כדוגמאת מונטה קרלו לשיפור הנראות והתפישה.
-
הארה (Radiosity) - טכניקה המחשבת מה קורה לנקודת אור (יחידה) המקרינה על משטחים שונים. השטחים הללו מרונדרים ע"י אחת משלושת הטכניקות הקודמות. שיטה זו אפקטיבית בעיקר ברנדור חללים פנימיים.
רנדור BIASED מול UNBIASED
מאפיין נוסף הרלוונטי עבור מנועי רנדור המתבססים על RayTracing הוא השימוש בהטיות.
רנדור מוטה (BIASED), מתבסס על חישובים מקדימים לאובייקטים השונים, בשילוב פרמטרים המאפשרים חיסכון בזמן ותגובה מהירה. לדוגמא מנוע V-RAY.
לעומתו, רנדור שאינו-מוטה (UNBIASED), מחשב עבור כל קרן אור את ההשפעות השונות. לדוגמא, ARNOLD. בתעשיית הקולנוע בשנים האחרונות מתעדפים רנדור שאינו-מוטה, אך כמובן שכל מקרה לגופו.
מונחים נפוצים בעיבוד גרפי:
Shader - בימי המאיצים הגרפים הראשונים היו ה- Shaders מיועדים לחישוב הצללה וזו הסיבה לשמם. היום הם משמשים לעוד הרבה דברים, Shader הינה למעשה תוכנה זעירה. על כרטיסי מסך ירוצו בד"כ אלפי Shader-ים, כשהמגבלה העיקרית תהיה הזיכרון בכרטיס המסך. ה- Shader-ים קיימים אך ורק במעבדים גרפים כמובן (אין בהם צורך ברנדור מבוסס מעבד). וקיימים מספר רב של סוגי Shader-ים.
Vertices - נקודה המייצגת מפגש בין קווים, גבולות, מפגש קרני אור, זוויות וקימורים.
מיקרופוליגון (MICROPOLYGON) - פוליגון קטן משמעותית מהתמונה המרונדרת. בד"כ יהיה קרוב או קטן מהשטח של פיקסל. חישוב המיקרופליגון מאפשר להגיע לפירוט משמעותי יותר בתמונה.
רנדור וכוח עיבוד
רנדור היא פעולת חישוב מורכבת ודורשת כוח עיבוד רב. נכון להיום רנדור יכול להתבצע באמצעות מעבד המחשב (CPU), כרטיסי מסך (GPU), או באופן משולב ע"י שניהם יחד. מנועי רנדור הם בעל דרישות שונות ולכן חשוב ומומלץ להתאים את החומרה למנוע הרנדור בו אנו מתכננים להשתמש.
למרות שגם ה- CPU וגם ה- GPU הם יחידות עיבוד עצמאיות. הם עובדים אחרת לגמרי ולא תמיד תומכים ברנדור עם הגדרות זהות (לדוגמא עם VRAY). בשנים האחרונות, מנועי רנדור רבים מאפשרים גישה ל- 2 השיטות (CPU / GPU) וחלק מהם אף מאפשר רנדור היברידי המשתמש בו זמנית ב- CPU וב- GPU. ברכישת מחשב רנדור והדמיה, יש לדעת מראש איזו חומרה "תחמיא" לתוכנות המידול והרנדור המרכזיות שלנו. גם מעבדים וגם כרטיסי מסך אינם זולים ולכן יש לתקצב את המחשב לאחר בדיקות ביצועי התוכנה.
חלוקה לתת משימות
אחד האתגרים בתוכנה הוא יכולת לפרק משימה גדולה להרבה תת-משימות בלתי-תלויות. לשמחתנו רוב שלבי הרנדור ניתנים לחלוקה שכזו. בזכות היכולת לחלוקה מרובה, נראה בד"כ ביצועים טובים יותר בעבודה מול יותר ליבות ומעבדים. גם בעיבוד CPU וגם בעיבוד GPU.
יצרניות מנועי הרנדור יודעים זאת כמובן, ולכן פיתחו גרסאות מסוג NODE (או תמיכה במצב כזה מתוך התוכנה), המאפשרות להריץ חלקים מהרנדור על מחשב(ים) נוסף(ים). חלק מהחברות דורשות תשלום נוסף על כל רישיון (NODE) רנדור. יש להתייחס לנתון זה בתמחור מערכת ובחירה במספר ליבות ומעבדים ומספר מאיצים גרפיים.
מהו פלאגין?
בעולם המחשוב פלאגין הוא תוסף תוכנה. יצרני התוכנות השונים מספקים למפתחים אחרים כלים לתקשר עם התוכנה שלהם. הפלאגין הוא רכיב המותקן ומזוהה ע"י התוכנה המרכזית (תוכנות BIM, CAD או תלת כמו SketchUp, Rhino3D, 3ds Max, Maya, Blender, Revit וכדומה) ומאפשר לה לפתוח את אותו רכיב (פלאגין) שבד"כ יתחבר למנוע הרנדור איתו נרנדר את הסצנה מן התוכנה. מרבית מנועי הרנדור נמכרים כפלאגין בהתאם לתוכנה איתה אנו עובדים.
אחרי ההקדמה והצגת הטרמינולוגיה המוכרת ננסה כעת לבצע סקירה של מנועי הרנדור השונים:
תוכנות רנדור:
שם תוכנה |
פלאגינים לתוכנות |
שימוש עיקרי |
תכונות |
סוג מנועי רנדור |
MAYA, CINEMA 4D, HOUDINI, KATANA, 3DS MAX, SOFTIMAGE |
אנימציה |
Hair, Fur, Clouds, Fire, Fog, Smoke, Face (Cosmetics) |
Multi CPU Multi GPU |
|
MAYA, CINEMA 4D, 3DS MAX |
אנימציה |
UNBIASED Monte |
Multi GPU |
|
SOLIDWORKS יכולת פתיחת קבצים מתוכנות רבות. |
הנדסה עם יכולות אנימציה. חשוב לבדוק תכונות/הבדלים בין PRO לרגיל. |
Multi Core Photon Mapping, |
Multi CPU שימוש קל ב- GPU |
|
תשתית לפיתוח פלאגינים / וכלים לתוכנות שונות. |
מגוון מוצרים לכל התחומים. |
nVIDIA Multi GPU |
||
3ds Max, AutoCAD , Inventor, Maya, Blender, Carrara, CINEMA 4D, DAZ Studio, ArchiCAD, Houdini, LightWave , NUKE, Revit, Rhinoceros, SketchUp, Poser, Softimage |
אנימציה |
Physically-based / Spectral Light Transport, Unbiased and Direct Lighting / Ambient Occlusion,Object Motion Blur, Hair / Fur Primitives, OpenSubDiv Surfaces, HDRI + Sun Environment, Texture Animation |
Multi GPU |
|
Maya, Softimage, 3dsMax, Cinema4D, Houdini, Katana. |
אנימציה |
Biased Renderer, Hair, Fur, Motion Blur etc. |
NVIDIA GPU |
|
3DSMax, MAYA, Cinema 4D, Modo, NUKE, KATANA, formZ, SketchUp, Rhino, Revit, Blender |
אדריכלות, הנדסה, אנימציה |
Optimized Ray-Tracing, Denoiser, Global Illumination, Adaptive Lights, Photorealistic Cameras, Physically Based Materials, Alsurface Skin Shader, Hair & Fur, Proxy Support, |
Hybrid Multi CPU & GPU |
|
(תוכנה של PIXAR) |
Maya, Houdini, Katana, Blender |
אנימציה |
Uni-Directional Path Tracer, Bi-Directional Path Tracer, Maya Fluids, Oren-Nayar Diffuse Complex Surface Layering system Physical camera Tilt-shift, chromatic aberration, rolling shutter |
Multi CPU (SSE4) שימוש קל ב- GPU (Denoiser) |
Sketchup, Rhinoceros, ArchiCAD, REVIT, 3dsmax, MAYA, CINEMA 4D, MODO, FORM Z, ICAD3D+, Optional - Post Production Tools: Photoshop, After Effects, NUKE |
אדריכלות והנדסה ופוסט פרודקשן. |
Advanced Ray Tracing, Physical Sky, Fast Scene, Scene Setup, Multilight, Grass, Fur, Hair, Accurate 3D Motion Blur, |
שימוש עיקרי ב CPU יכולת רנדור רשת. |
|
3D Model import: DWG, DXF, DAE, FBX, MAX, 3DS, OBJ, SKP, Revit & SketchUp LiveSync |
אדריכלות - מציעה קלות שימוש עבור הדמיות אדריכליות. |
Easy model placement, Advanced sky and cloud rendering, Realistic water rendering, OpenStreetMap import |
Multi GPU |
מדוע המחשב מגיב לאט בזמן רנדור מאסיבי ושימוש ב GPU?
רנדור על GPU יעיל עלול להשתמש בכרטיס מסך בצורה מאסיבית. הדבר משאיר הרבה פחות כוח גרפי למערכת ההפעלה לצייר את החלונות וממשק המערכת. ניתן להתגבר על תופעות אלו ע"י הוספת כרטיס פשוט לשימוש יומיומי או עצירת הרנדור.
האם ניתן לשלב מספר כרטיסי מסך ולקבל שיפור ביצועים?
מנועי רנדור המתבססים על מאיצים גרפים בד"כ ידעו לעבוד עם מספר כרטיסים. חלק ממנועי הרנדור מבוססי GPU מסוגלים כיום להשתמש בקישור בין כרטיסי המסך (גשר NVLINK למשל) לצורך שיתוף זיכרון ה- VRAM בין הכרטיסים. כמו כן צריך להבין שתוכנות הרנדור "טוענות" תוכנה על הכרטיס עבור כל רנדור. זה דורש שהמידע והטקסטורות יהיו על כל אחד מכרטיסי המסך המשולבים במחשב הרנדור, ולכן רצוי שהכרטיסים במחשב המרנדר יהיו זהים אחרת לא בהכרח תקבלו שיפור בביצועים עם הוספת כרטיסי מסך נוספים.
מה המשמעות של PCIe x16 / x8 וכדומה בכרטיסי מסך?
רכיבי המחשב השונים מתקשרים ביניהם כמובן. הסטנדרט לתקשורת זו הוא PCIe. עם השנים לשיפור הביצועים יצרניות המעבדים החלו להוסיף את בקר ה PCIe למעבדים עצמם (הבקר אחראי על ניתוב המידע בין הרכיבים השונים) זאת על מנת לשפר ביצועים. כמובן שההנחה הבסיסית תהיה שנרוויח מלעבוד ב x16 אך בפועל - כאשר רוב הרנדור נעשה על הכרטיסים במקביל ולא נדרש להעביר הרבה מידע בין המעבד/מדיה/כרטיס מסך במהלך הרנדור, לא נרגיש יותר מדי הבדל. השימוש ברוחב הפס יהיה בעיקר בשלב טעינת הטקסטורות והמידע לכרטיסי המסך, אבל בזמן הרנדור לא נרוויח מאותו רוחב פס.