Unity מספקת מגוון תכונות מתקדמות של GPU שמשתמשות ב-instancing וב-occlusion culling כדי להפחית באופן משמעותי את קריאות הציור ולמנוע את הרינדור של אובייקטים מוסתרים. התכונות האלה פועלות יחד כדי למקסם את יעילות ה-GPU בסצנות מורכבות.
מגירה של GPU Resident
ה-GPU Resident Drawer משתמש אוטומטית ב-GPU instancing כדי לצמצם את מספר קריאות הציור ולפנות זמן עיבוד ב-CPU. התכונה הזו יעילה במיוחד בסצנות גדולות עם הרבה אובייקטים שמשתמשים באותה רשת.
הפעלת התכונה
- בתפריט הראשי של Unity, לוחצים על Edit > Project Settings > Graphics (עריכה > הגדרות הפרויקט > גרפיקה).
- בקטע Shader Stripping (הסרת Shader), מגדירים את האפשרות Batch Renderer Group Variants (וריאציות של קבוצות עיבוד באצווה) לערך Keep All (שמירת הכול).
- מחפשים את הנכס Default Render Pipeline, שהוא גם נכס URP.
- מחפשים את הנכס הזה בפרויקט.
- לוחצים לחיצה ימנית על הנכס ובוחרים באפשרות מאפיינים.
- ברשימת רכיבי ה-Renderer, לוחצים לחיצה ימנית על Universal Renderer (רכיב Renderer אוניברסלי) ובוחרים באפשרות Properties (מאפיינים).
- מגדירים את Rendering Path (נתיב רינדור) לערך Forward+ (העברה קדימה).
- חוזרים לנכס URP, בוחרים אותו ולוחצים על סמל שלוש הנקודות ואז על ניפוי באגים.
- מגדירים את GPU Resident Drawer Mode בתור Instanced Drawing.
הסרת חלקים מוסתרים ב-GPU
Occlusion Culling משתמש במעבד הגרפי (GPU) במקום במעבד המרכזי (CPU) כדי להחריג אובייקטים שמוסתרים מאחורי אובייקטים אחרים. התכונה הזו יעילה במיוחד בסצנות עם חסימה משמעותית, כמו סצנות פנים או סביבות צפופות.
הפעלת התכונה
- בתפריט הראשי של Unity, לוחצים על Edit > Project Settings > Graphics (עריכה > הגדרות הפרויקט > גרפיקה).
- מפעילים את האפשרות GPU Occlusion Culling (הסרת חלקים מוסתרים ב-GPU).
- בוחרים בכרטיסייה URP.
- בקטע Render Graph (תרשים רנדור), משביתים את האפשרות Compatibility Mode (Render Graph Disabled) (מצב תאימות (תרשים רנדור מושבת)).
אופטימיזציה של מחיקות מהמאגר
האופטימיזציה הזו משפרת את הביצועים על ידי השמטה של נתוני מאגר עומק מיותרים ועיבוד יעיל של מאגרי צבעים של MSAA, וכך מצמצמת את פעולות הזיכרון.
יתרונות
- מבטל העתקה והעברה מיותרות של נתוני גרפיקה.
- מאיץ את רינדור ה-GPU בכל המקרים.
הפעלת התכונה
- בתפריט הראשי של Unity, לוחצים על Edit > Project Settings (עריכה > הגדרות הפרויקט).
- מרחיבים את הקטע XR Plug-in Management (ניהול פלאגינים של XR) ואז לוחצים על OpenXR.
- בוחרים בכרטיסייה Android.
- בוחרים את קבוצת התכונות Android XR.
- לוחצים על סמל גלגל השיניים לצד תמיכה ב-Android XR.
מפעילים את האפשרות אופטימיזציה של ביטול מאגרי נתונים (Vulkan).
השבתת עיבוד מלפנים לאחור
Front-to-back rendering הוא ניסוי בסדר רינדור שאפשר לנסות בסצנה. בשילוב עם אופטימיזציות כמו Low-Resolution-Z (LRZ), יכול להיות שהיא תעזור לשפר את הביצועים בסצנות עם הסתרה משמעותית שבהן אובייקטים ברקע משתמשים ב-fragment shaders יקרים.
עם זאת, הפעלת ההגדרה הזו עלולה גם להפחית את הביצועים. לכן, מומלץ להשאיר את ההגדרה הזו כברירת מחדל (מושבתת).