Unity bietet eine Vielzahl von erweiterten GPU-Funktionen, die Instanziierung und Occlusion Culling verwenden, um die Anzahl der Draw Calls erheblich zu reduzieren und das Rendern verborgener Objekte zu vermeiden. Diese Funktionen arbeiten zusammen, um die GPU-Effizienz in komplexen Szenen zu maximieren.
GPU-residenter Drawer
Der GPU-Resident-Drawer verwendet automatisch GPU-Instancing, um die Anzahl der Zeichenaufrufe zu reduzieren und CPU-Verarbeitungszeit freizugeben. Diese Funktion ist am effektivsten für große Szenen mit vielen Objekten, die dasselbe Mesh verwenden.
Diese Funktion aktivieren
- Klicken Sie im Unity-Hauptmenü auf Edit > Project Settings > Graphics (Bearbeiten > Projekteinstellungen > Grafik).
- Legen Sie im Abschnitt Shader Stripping (Shader-Entfernung) für Batch Renderer Group Variants (Batch-Renderer-Gruppenvarianten) die Option Keep All (Alle beibehalten) fest.
- Suchen Sie nach Ihrem Default Render Pipeline-Asset, das auch Ihr URP-Asset ist.
- Suchen Sie in Ihrem Projekt nach diesem Asset.
- Klicken Sie mit der rechten Maustaste auf das Asset und wählen Sie Eigenschaften aus.
- Klicken Sie in der Renderer List (Renderer-Liste) mit der rechten Maustaste auf Universal Renderer (Universeller Renderer) und wählen Sie Properties (Eigenschaften) aus.
- Legen Sie Rendering Path (Rendering-Pfad) auf Forward+ fest.
- Kehren Sie zu Ihrem URP-Asset zurück, wählen Sie es aus und klicken Sie dann auf die drei Punkte und Debuggen.
- Setzen Sie GPU Resident Drawer Mode auf Instanced Drawing.
GPU-Occlusion Culling
Beim Occlusion Culling (Verdeckungs-Culling) wird die GPU anstelle der CPU verwendet, um Objekte auszuschließen, die hinter anderen Objekten verborgen sind. Diese Funktion ist am effektivsten in Szenen mit erheblicher Verdeckung, z. B. in Innenräumen oder dichten Umgebungen.
Diese Funktion aktivieren
- Klicken Sie im Unity-Hauptmenü auf Edit > Project Settings > Graphics (Bearbeiten > Projekteinstellungen > Grafik).
- Aktivieren Sie GPU Occlusion Culling (GPU-Okklusions-Culling).
- Wählen Sie den Tab URP aus.
- Deaktivieren Sie im Bereich Render Graph (Render-Diagramm) die Option Compatibility Mode (Render Graph Disabled) (Kompatibilitätsmodus (Render-Diagramm deaktiviert)).
Pufferverwerfungen optimieren
Durch diese Optimierung wird die Leistung verbessert, da unnötige Daten im Tiefenpuffer verworfen und MSAA-Farbpuffer effizient verarbeitet werden. Dadurch werden Speichervorgänge reduziert.
Vorteile
- Unnötiges Kopieren und Verschieben von Grafikdaten wird vermieden.
- Beschleunigt das GPU-Rendering in allen Fällen.
Diese Funktion aktivieren
- Klicken Sie im Unity-Hauptmenü auf Edit > Project Settings (Bearbeiten > Projekteinstellungen).
- Maximieren Sie den Bereich XR Plug-in Management (XR-Plug-in-Verwaltung) und klicken Sie dann auf OpenXR.
- Wählen Sie den Tab Android aus.
- Wählen Sie die Featuregruppe Android XR aus.
- Klicken Sie neben Android XR-Unterstützung auf das Zahnradsymbol.
Aktivieren Sie Optimize Buffer Discards (Vulkan).
Rendering von vorn nach hinten deaktivieren
„Front-to-back“-Rendering ist ein Rendering-Reihenfolgetest, den Sie in Ihrer Szene ausprobieren können. In Kombination mit Optimierungen wie Low-Resolution-Z (LRZ) kann dies die Leistung in Szenen mit erheblicher Verdeckung verbessern, in denen Hintergrundobjekte teure Fragment-Shader verwenden.
Das Aktivieren dieser Einstellung kann jedoch auch die Leistung beeinträchtigen. Aus diesem Grund wird empfohlen, die Standardeinstellung (deaktiviert) beizubehalten.