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 (מצב מגירת GPU) לערך Instanced Drawing (ציור מופעים).
הסרת חלקים מוסתרים ב-GPU
Occlusion Culling משתמש במעבד הגרפי (GPU) במקום במעבד המרכזי (CPU) כדי להחריג אובייקטים שמוסתרים מאחורי אובייקטים אחרים. התכונה הזו יעילה במיוחד בסצנות עם הסתרה משמעותית, כמו סצנות פנים או סביבות צפופות.
הפעלת התכונה הזאת
- בתפריט הראשי של Unity, לוחצים על Edit > Project Settings > Graphics (עריכה > הגדרות הפרויקט > גרפיקה).
- מפעילים את האפשרות GPU Occlusion Culling.
- בוחרים בכרטיסייה 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.
מפעילים את האפשרות Optimize Buffer Discards (Vulkan) (אופטימיזציה של מחיקת מאגרי נתונים זמניים (Vulkan)).
השבתת עיבוד מקדימה לאחור
Front-to-back rendering הוא ניסוי בסדר רינדור שאפשר לנסות בסצנה. בשילוב עם אופטימיזציות כמו Low-Resolution-Z (LRZ), יכול להיות שהיא תעזור לשפר את הביצועים בסצנות עם הסתרה משמעותית שבהן אובייקטים ברקע משתמשים ב-fragment shaders יקרים.
עם זאת, הפעלת ההגדרה הזו עלולה גם להפחית את הביצועים. לכן, מומלץ להשאיר את ההגדרה הזו כברירת מחדל (מושבתת).