• Spiele
  • Branche
  • Ressourcen
  • Community
  • Lernen
  • Support
Entwicklung
Unity Engine
Erstellen Sie 2D- und 3D-Spiele für jede Plattform
HerunterladenAbonnements und Preise
Monetarisierung
In-App-Kauf (IAP)
Entdecken und verwalten Sie IAP über die Stores
Mediation
Maximieren Sie den Umsatz und optimieren Sie die Monetarisierung
Anzeigenqualität
Schützen Sie das Benutzererlebnis Ihrer App
Tapjoy
Langfristige Benutzerloyalität aufbauen
Alle Monetarisierungsprodukte
Nutzerakquisition
Nutzerakquisition
Entdecken Sie und gewinnen Sie mobile Benutzer
Unity Vector AI
Verbinden Sie Spieler mit den richtigen Spielen
Aura On-Device-Werbung
Erreichen Sie Benutzer auf dem Gerät zur Spitzenzeit der Interaktion
Alle Wachstumsprodukte
Anwendungsfälle
3D-Zusammenarbeit
Erstellen und überprüfen Sie 3D-Projekte in Echtzeit
Immersive Schulung
In immersiven Umgebungen trainieren
Kundenerlebnisse
Interaktive 3D-Erlebnisse erstellen
Alle branchenspezifischen Lösungen
Branchen
Fertigung
Betriebliche Exzellenz erreichen
Einzelhandel
In-Store-Erlebnisse in Online-Erlebnisse umwandeln
Automobilindustrie
Innovation und In-Car-Erlebnisse steigern
Alle Branchen
Technische Bibliothek
Dokumentation
Offizielle Benutzerhandbücher und API-Referenzen
Entwicklertools
Versionsfreigaben und Fehlerverfolgung
Roadmap
Bevorstehende Funktionen überprüfen
Glossar
Bibliothek technischer Begriffe
Einblicke
Fallstudien
Erfolgsgeschichten aus der Praxis
Best-Practice-Leitfäden
Experten Tipps und Tricks
Alle Ressourcen
Neues
Blog
Aktualisierungen, Informationen und technische Tipps
Neuigkeiten
Nachrichten, Geschichten und Pressezentrum
Community Hub
Diskussionen
Diskutieren, Probleme lösen und verbinden
Veranstaltungen
Globale und lokale Veranstaltungen
Gemeinschaftsgeschichten
Made with Unity
Präsentation von Unity-Schöpfern
Livestreams
Schließen Sie sich Entwicklern, Kreativen und Insidern an
Unity Awards
Feier der Unity-Schöpfer weltweit
Für jedes Niveau
Unity Learn
Meistern Sie Unity-Fähigkeiten kostenlos
Professionelles Training
Verbessern Sie Ihr Team mit Unity-Trainern
Neu bei Unity
Erste Schritte
Beginnen Sie noch heute mit dem Lernen
Unity Essential Pathways
Sind Sie neu bei Unity? Starten Sie Ihre Reise
Anleitungen
Umsetzbare Tipps und bewährte Verfahren
Bildung
Für Studierende
Starten Sie Ihre Karriere
Für Lehrkräfte
Optimieren Sie Ihr Lehren
Lizenzstipendium für Bildungseinrichtungen
Bringen Sie die Kraft von Unity in Ihre Institution
Zertifizierungen
Beweisen Sie Ihre Unity-Meisterschaft
Kundendienstoptionen
Hilfe erhalten
Wir helfen Ihnen, mit Unity erfolgreich zu sein
Erfolgspläne
Erreichen Sie Ihre Ziele schneller mit Expertenunterstützung
FAQ
Antworten auf häufige Fragen
Kontakt aufnehmen
Verbinden Sie sich mit unserem Team
Abonnements und Preise
Sprache
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Sozial
Währung
Kaufen
  • Produkte
  • Unity Ads
  • Abonnement
  • Unity Asset Store
  • Wiederverkäufer
Bildung
  • Schüler/Studierende
  • Lehrkräfte
  • Einrichtungen
  • Zertifizierung
  • Learn
  • Programm zur Entwicklung von Fähigkeiten
Herunterladen
  • Unity Hub
  • Datei herunterladen
  • Beta-Programm
Unity Labs
  • Labs
  • Veröffentlichungen
Ressourcen
  • Lernplattform
  • Community
  • Dokumentation
  • Unity QA
  • FAQ
  • Status der Dienste
  • Fallstudien
  • Made with Unity
Unity
  • Unser Unternehmen
  • Newsletter
  • Blog
  • Veranstaltungen
  • Stellenangebote
  • Hilfe
  • Presse
  • Partner
  • Investoren
  • Partner
  • Sicherheit
  • Social Impact
  • Inklusion & Vielfalt
  • Kontakt aufnehmen
Copyright © 2025 Unity Technologies
  • Rechtliches
  • Datenschutzrichtlinie
  • Cookies
  • Verkaufen oder teilen Sie nicht meine personenbezogenen Daten

"Unity", Unity-Logos und sonstige Marken von Unity sind Marken oder eingetragene Markenzeichen von Unity Technologies oder den zugehörigen verbundenen Unternehmen in den USA und anderen Ländern (weitere Informationen finden Sie hier). Alle anderen Namen oder Marken sind Marken ihrer jeweiligen Eigentümer.

Hero background image

Leistungsoptimierung für High-End-Grafik auf PC und Konsole

Diese Website wurde aus praktischen Gründen für Sie maschinell übersetzt. Die Richtigkeit und Zuverlässigkeit des übersetzten Inhalts kann von uns nicht gewährleistet werden. Sollten Sie Zweifel an der Richtigkeit des übersetzten Inhalts haben, schauen Sie sich bitte die offizielle englische Version der Website an.
Klicken Sie hier.

Dies ist der zweite in einer Reihe von Artikeln, in denen Optimierungstipps für Ihre Unity Projekte vorgestellt werden. Verwenden Sie sie als Leitfaden für die Ausführung mit höheren Bildraten mit weniger Ressourcen. Sobald Sie diese Best Practices ausprobiert haben, sollten Sie sich unbedingt die anderen Seiten der Serie ansehen:

  • Konfigurieren Sie Ihr Unity Projekt für eine höhere Leistung
  • Verwaltung der GPU-Nutzung für PC und Konsolenspiele
  • Erweiterte Programmier- und Codearchitektur
  • Verbesserte Physikleistung für ein reibungsloses Gameplay

Sehen Sie sich unsere neuesten Optimierungsleitfäden für Unity 6-Entwickler und Grafiker an:

  • Optimieren der Spieleleistung für Mobilgeräte, XR und Web in Unity
  • Optimieren der Spieleleistung für Konsolen und PCs in Unity

Mit den Grafiktools von Unity können Sie optimierte Grafiken in jedem Stil und auf einer Vielzahl von Plattformen erstellen – von Mobilgeräten bis hin zu High-End-Konsolen und Desktop-PCs. Dieser Prozess hängt in der Regel von Ihrer künstlerischen Leitung und Rendering-Pipeline ab. Bevor Sie also beginnen, empfehlen wir Ihnen, die verfügbaren Render-Pipelines zu prüfen.

  • Commit für eine Rendering-Pipeline
  • Forward Rendering
  • Deferred Rendering
  • Shader-Graphen
  • Integrierte Shader-Einstellungen entfernen
  • Strip-Shader-Varianten
  • Glatte Kanten mit Anti-Aliasing
  • Räumlich-zeitliche Nachbearbeitung
  • Bake Lightmaps
  • Minimieren Sie Reflexionssonden
  • Schatten deaktivieren
  • Shader-Effekt ersetzen
  • Light-Ebenen verwenden
  • GPU Lightmapper verwenden

Commit für eine Rendering-Pipeline

Die Optimierung der Szenenbeleuchtung ist keine exakte Wissenschaft, sondern eher ein iterativer Prozess. Es handelt sich dabei um Versuch und Irrtum und der Prozess hängt in der Regel von der künstlerischen Leitung und der Rendering-Pipeline ab.

Bevor Sie mit der Beleuchtung Ihrer Szenen beginnen, müssen Sie eine der verfügbaren Rendering-Pipelines auswählen. Eine Rendering-Pipeline führt eine Reihe von Operationen aus, bei denen der Inhalt einer Szene auf dem Bildschirm angezeigt wird.

Unity bietet drei vorgefertigte Rendering-Pipelines mit unterschiedlichen Funktionen undLeistungsmerkmalen. Sie können aber auch Ihre eigene erstellen.

1. Die Universal Render Pipeline (URP) ist eine vorgefertigte Scriptable Render Pipeline (SRP). URP bietet grafikerfreundliche Workflows zur Erstellung optimierter Grafiken für eine Reihe von Plattformen, von Mobilgeräten bis hin zu High-End-Konsolen und PCs. URP ist der Nachfolger der integrierten Rendering-Pipeline, die Grafik- und Rendering-Funktionen bietet, die mit der älteren Pipeline nicht verfügbar sind. Um die Leistung aufrechtzuerhalten, werden Kompromisse eingegangen, um die Rechenkosten für Beleuchtung und Verschattung zu reduzieren. Wählen Sie URP, wenn Sie die meisten Zielplattformen wie Mobilgeräte und VR erreichen möchten.

Einen vollständigen Überblick über die Funktionen von URP erhalten Sie im E-Book Einführung in die Universal Render Pipeline für fortgeschrittene Unity Entwickler (Ausgabe Unity 6).

2. Bei der High Definition Render Pipeline (HDRP) handelt es sich um eine weitere vorgefertigte SRP für modernste, naturgetreue Grafik. HDRP ist für leistungsfähige Hardware wie PC, Xbox und PlayStation konzipiert. Es ist die empfohlene Rendering-Pipeline für die Erstellung fotorealistisch realistischer Grafiken mit dem höchsten Grad an Realismus in Ihrem Spiel, mit fortschrittlicher Beleuchtung, Reflexionen und Schatten. HDRP verwendet physikalisch basierte Beleuchtung und Materialien und unterstützt verbesserte Debugging-Tools.

Erhalten Sie einen vollständigen Überblick über die Funktionen der HDRP im E-Book Beleuchtung und Umgebungen in der High Definition Render Pipeline.

3. Bei der eingebauten Rendering-Pipelinehandelt es sich um die ältere, allgemein nutzbare Rendering-Pipeline von Unity mit begrenzter Anpassung. Diese Pipeline wird während des gesamten Unity 6.x-Zyklus weiterhin unterstützt.

Unity_Time Ghost-Demo
Ein Bild aus der High-End-Demo Time Ghost von Unity

Forward Rendering

Beim Forward-Rendering projiziert die Grafikkarte die Geometrie und teilt sie in Eckpunkte auf. Diese Eckpunkte werden weiter in Fragmente oder Pixel unterteilt, die auf den Bildschirm rendern, um das endgültige Bild zu erstellen.

Die Pipeline übergibt jedes Objekt einzeln an die GrafikAPI. Das Forward-Rendering ist mit Kosten für jedes Licht verbunden. Je mehr Lichter in Ihrer Szene vorhanden sind, desto länger dauert das Rendering.

Der Forward-Renderer der integrierten Pipeline zeichnet jedes Licht in einem separaten Durchgang pro Objekt. Wenn mehrere Lichter auf ein und dasselbe GameObject treffen, kann dies zu einem erheblichen Overdraw führen, bei dem überlappende Bereiche denselben Pixel mehr als einmal zeichnen müssen. Minimieren Sie die Anzahl der Echtzeitbeleuchtung, um den Overdraw zu reduzieren.

Anstatt einen Durchgang pro Licht zu rendern, kulliert die URP die Lichter pro Objekt. Dadurch kann die Beleuchtung in einem einzigen Durchgang berechnet werden, was zu weniger Draw Calls im Vergleich zum Forward Renderer der integrierten Render Pipeline führt.

Weiter +

Das Forward+-Rendering verbessert das Standard-Forward-Rendering, indem Lichter räumlich anstatt pro Objekt kultiviert werden. Dies erhöht die Gesamtzahl der Lichter, die für das Rendering eines Frames verwendet werden können. Im Deferred Rendering unterstützt es die native RenderPass API, sodass G-Puffer- und Beleuchtungsdurchläufe in einem einzigen Renderdurchlauf kombiniert werden können.

Eine Illustration, wie Forward Rendering funktioniert
Eine Illustration, wie Forward Rendering funktioniert

Deferred Rendering

Bei verzögerter Beschattung wird die Beleuchtung nicht pro Objekt berechnet.

Deferred Shading verschiebt stattdessen die Beleuchtungsberechnung – auf einen späteren Zeitpunkt. Deferred Shading verwendet zwei Durchläufe.

Im ersten Durchgang bzw. G-Puffer-Geometriedurchlauf rendert Unity die GameObjects. Dieser Durchgang ruft verschiedene Arten von geometrischen Eigenschaften ab und speichert sie in einem Satz von Texturen. G-Puffer-Texturen können umfassen:

  • Diffuse und spiegelnde Farben
  • Oberflächenglätte
  • Okklusion
  • Weltraumnormale
  • Emission + Umgebung + Reflexionen + Lightmaps

Im zweiten Durchgang bzw. Beleuchtungsdurchlauf rendert Unity die Beleuchtung der Szene auf Basis des G-Puffers. Stellen Sie sich vor, Sie iterieren über jedes Pixel und berechnen die Beleuchtungsinformationen auf Basis des Puffers anstelle der einzelnen Objekte. Das Hinzufügen von mehr Nicht-Schattenwurflichtern bei verzögerter Verschattung führt also nicht zu demselben Leistungstreffer wie beim Forward-Rendering.

Obwohl die Wahl eines Rendering-Pfades nicht per se eine Optimierung ist, kann sich dies darauf auswirken, wie Sie Ihr Projekt optimieren. Die anderen Techniken und Workflows in diesem Abschnitt können je nach Rendering-Pipeline und gewähltem Rendering-Pfad variieren.

Eine Veranschaulichung, wie der Pfad zum verzögerten Shading-Rendering funktioniert
Eine Veranschaulichung, wie der Pfad zum verzögerten Shading-Rendering funktioniert

Shader-Graphen

Sowohl HDRP als auch URP unterstützen Shader Graph, eine visuelle Schnittstelle zur Shader-Erstellung. Dadurch können einige Benutzer komplexe Shading-Effekte erzeugen, die zuvor möglicherweise unerreichbar waren. Verwenden Sie die über 150 Knoten im Visual-Graph-System, um weitere Shader zu erstellen. Sie können mit der API auch Ihre eigenen Nodes erstellen.

Beginnen Sie jeden Shader Graph mit einem kompatiblen Master-Node, der die Ausgabe des Graphs bestimmt. Fügen Sie Knoten und Operatoren mit der visuellen Oberfläche hinzu und konstruieren Sie die Shader-Logik.

Dieser Shader Graph gelangt dann in das Backend der Rendering-Pipeline. Das Endergebnis ist ein ShaderLab-Shader, der funktionell einem in HLSL oder Cg geschriebenen Shader ähnelt.

Die Optimierung eines Shader Graphs folgt vielen der gleichen Regeln wie herkömmliche HLSL/Cg-Shader. Je mehr Verarbeitung Ihr Shader Graph durchführt, desto mehr beeinträchtigt dies die Leistung Ihrer Anwendung.

Wenn Sie CPU-gebunden sind, verbessert die Optimierung Ihrer Shader nicht die Framerate, sondern kann dennoch die Akkulaufzeit für mobile Plattformen verbessern.

Wenn Sie GPU-gebunden sind, befolgen Sie diese Richtlinien zur Verbesserung der Leistung mit Shader Graphs:

- Dezimieren Sie Ihre Nodes: Entfernen Sie ungenutzte Nodes. Ändern Sie keine Standardwerte oder verbinden Sie keine Knoten, es sei denn, diese Änderungen sind notwendig. Shader Graph stellt ungenutzte Funktionen automatisch zusammen. Wenn möglich, können Sie Werte in Texturen umwandeln. Anstatt beispielsweise einen Node zum Aufhellen einer Textur zu verwenden, wenden Sie die zusätzliche Helligkeit auf das Textur-Asset selbst an.

- Verwenden Sie ein kleineres Datenformat: Wechseln Sie nach Möglichkeit zu einer kleineren Datenstruktur. Ziehen Sie in Betracht, Vector2 anstelle von Vector3 zu verwenden, wenn sich dies nicht auf Ihr Projekt auswirkt. Sie können die Präzision auch reduzieren, wenn es die Situation zulässt (z. B. Half statt float).

- Reduzierung der mathematischen Operationen: Shader-Operationen laufen mehrmals pro Sekunde, optimieren Sie also nach Möglichkeit alle mathematischen Operatoren. Versuchen Sie, Ergebnisse zu mischen, anstatt einen logischen Branch zu erstellen. Verwenden Sie Konstanten und kombinieren Sie Skalarwerte, bevor Sie Vektoren anwenden. Konvertieren Sie schließlich alle Eigenschaften, die nicht im Inspector erscheinen müssen, in Inline-Nodes. All diese schrittweisen Beschleunigungen können Ihrem Frame-Budget helfen.

- Branch eine Vorschau: Je größer Ihr Graph wird, desto langsamer kann es beim Kompilieren werden. Vereinfachen Sie Ihren Workflow mit einem separaten, kleineren Branch, der nur die Vorgänge enthält, die Sie sich gerade ansehen möchten, und iterieren Sie dann schneller mit diesem kleineren Branch, bis Sie die gewünschten Ergebnisse erzielen.

Wenn der Branch nicht mit dem Master-Node verbunden ist, können Sie den Vorschau-Branch sicher in Ihrer Grafik lassen. Unity entfernt Knoten, die sich während der Kompilierung nicht auf die Endausgabe auswirken.

- Manuelles Optimieren: Selbst als erfahrener Grafikprogrammierer können Sie einen Shader Graph verwenden, um Standardcode für einen skriptbasierten Shader festzulegen. Wählen Sie das Asset Shader Graph und dann im Kontextmenü Shader kopieren aus.

Erstellen Sie einen neuen HLSL/Cg Shader und fügen Sie dann den kopierten Shader Graph ein. Dies ist ein Einbahnstraßenbetrieb, aber er ermöglicht es Ihnen, zusätzliche Leistung mit manuellen Optimierungen zu erreichen.

EINE KNOTENBASIERTE VISUELLE OBERFLÄCHE FÜR DIE SHADER-ERSTELLUNG IN SHADER GRAPH
Eine knotenbasierte visuelle Oberfläche für die Shader-Erstellung in Shader Graph.

Integrierte Shader-Einstellungen entfernen

Entfernen Sie alle Shader, die Sie nicht verwenden, aus der Liste der immer enthaltenen Shader in den Grafikeinstellungen (Bearbeiten > Projekteinstellungen > Grafik). Fügen Sie hier Shader hinzu, die Sie für die gesamte Lebensdauer der Anwendung benötigen.

Immer enthaltene Shader
Immer enthaltene Shader

Strip-Shader-Varianten

Shader-Varianten können für plattformspezifische Funktionen nützlich sein, erhöhen aber die Build-Zeit und Dateigröße.

Sie können die Shader-Kompilierungspragmarichtlinien verwenden, um den Shader für Zielplattformen unterschiedlich zu kompilieren. Verwenden Sie dann ein Shader-Keyword (oder Shader Graph Keyword Node), um Shader-Varianten mit aktivierten oder deaktivierten Funktionen zu erstellen.

Sie können verhindern, dass Shader-Varianten in Ihren Build aufgenommen werden, wenn Sie wissen, dass sie nicht erforderlich sind.

Parsen Sie das Editor.log nach Shader-Timing und Größe. Suchen Sie die Zeilen, die mit „Compiled Shader“ und „Compressed Shader“ beginnen. In einem Beispielprotokoll zeigt Ihnen Ihr TEST-Shader möglicherweise Folgendes an:

Kompilierter Shader 'TEST Standard (Specular setup)' in 31.23s

d3d9 (interne Programme insgesamt: 482, unique: 474)

d3d11 (interne Programme insgesamt: 482, unique: 466)

Metall (interne Programme insgesamt: 482, unique: 480)

glcore (interne Programme insgesamt: 482, unique: 454)

Komprimierter Shader „TEST Standard (Specular Setup)“ auf d3d9 von 1,04 MB auf 0,14 MB

Komprimierter Shader „TEST Standard (Specular Setup)“ auf d3d11 von 1,39 MB auf 0,12 MB

Komprimierter Shader „TEST Standard (Specular setup)“ auf Metall von 2,56 MB bis 0,20 MB

Komprimierter Shader „TEST Standard (Specular Setup)“ auf Glcore von 2,04 MB auf 0,15 MB

Dies sagt Ihnen einiges über diesen Shader:

- Der Shader erweitert sich dank #pragma multi_compile und Shader_feature auf 482 Varianten.

- Unity komprimiert den in den Spieldaten enthaltenen Shader in etwa auf die Summe der komprimierten Größen: 0,14 + 0,12 + 0,20 + 0,15 = 0,61 MB.

- Während der Laufzeit speichert Unity die komprimierten Daten (0,61 MB), während die Daten für Ihre aktuell verwendete Grafik-API unkomprimiert sind. Wenn Ihre aktuelle API beispielsweise Metal wäre, würde das 2,56 MB ausmachen.

Nach einem Build kann der Projektauditor das Editor.log analysieren, um eine Liste aller Shader, Shader-Keywords und Shader-Varianten anzuzeigen, die zu einem Projekt kompiliert wurden. Es kann auch das Player.log analysieren, nachdem das Spiel ausgeführt wurde. Dies zeigt Ihnen, welche Varianten die Anwendung tatsächlich kompiliert und zur Laufzeit verwendet hat.

Nutzen Sie diese Informationen, um ein skriptfähiges Shader-Stripping-System zu erstellen und die Anzahl der Varianten zu reduzieren. Dies kann Build-Zeiten, Build-Größen und Laufzeitspeichernutzung verbessern.

Lesen Sie den Blog-Eintrag „Stripping scriptable Shader variants“, um diesen Prozess im Detail zu sehen.

Glatte Kanten mit Anti-Aliasing

Anti-Aliasing hilft, das Bild zu glätten, gezackte Kanten zu reduzieren und spiegelndes Aliasing zu minimieren.

Wenn Sie Forward-Rendering mit der integrierten Rendering-Pipeline verwenden, ist Multisample Anti-Aliasing (MSAA) in den Qualitätseinstellungen verfügbar. MSAA produziert hochwertiges Anti-Aliasing, kann aber teuer sein. Die MSAA Sample Count aus dem Dropdown-Menü (None, 2X, 4X, 8X) legt fest, wie viele Samples der Renderer zur Bewertung des Effekts verwendet.

Wenn Sie Forward-Rendering mit der URP oder HDRP verwenden, können Sie MSAA für das Render Pipeline Asset aktivieren.

Alternativ können Sie Anti-Aliasing als Nachbearbeitungseffekt hinzufügen. Dies wird auf der Kamerakomponente unter Anti-Aliasing angezeigt:

- Schnelles approximatives Anti-Aliasing (FXAA) glättet Kanten auf Pixelebene. Dies ist der am wenigsten ressourcenintensive Anti-Aliasing-Effekt und verwischt das endgültige Bild leicht.

- Subpixel morphological Anti-Aliasing (SMAA) mischt Pixel basierend auf den Rändern eines Bildes. Dies hat deutlich schärfere Ergebnisse als FXAA und eignet sich für flache, cartoonähnliche oder saubere Grafikstile.

In der HDRP können Sie auch FXAA und SMAA mit der Post-Anti-Aliasing-Einstellung an der Kamera verwenden. URP und HDRP bieten auch eine zusätzliche Option:

- Temporales Anti-Aliasing (TAA) glättet Kanten mit Frames aus dem Verlaufspuffer. Dies funktioniert effektiver als FXAA, erfordert aber Bewegungsvektoren, um zu funktionieren. TAA kann auch die Umgebungsokklusion und die Volumetrie verbessern. Es ist in der Regel hochwertiger als FXAA, kostet jedoch mehr Ressourcen und kann gelegentlich Ghosting-Artefakte erzeugen.

Suchen Sie in URP die MSAA Einstellungen im Render Pipeline Asset.
Suchen Sie in URP die MSAA Einstellungen im Render Pipeline Asset.

Räumliche zeitliche Nachbearbeitung

Spatial-Temporal Post-Processing (STP) wurde entwickelt, um die visuelle Qualität auf einer Vielzahl von Plattformen wie Mobilgeräten, Konsolen und PCs zu verbessern. STP ist ein räumlich-zeitlicher Anti-Aliasing-Upscaler, der sowohl mit HDRP als auch mit URP Render Pipelines funktioniert und eine hochwertige Inhaltsskalierung bietet, ohne dass Änderungen an bestehenden Inhalten vorgenommen werden müssen. Diese Lösung ist speziell für die GPU-Leistung optimiert, sorgt für schnellere Renderzeiten und erleichtert die Erzielung einer hohen Leistung bei gleichbleibender visueller Qualität.

So aktivieren Sie STP in der URP:

- Wählen Sie das aktive URP-Asset im Projektfenster aus.

- Navigieren Sie im Inspector zu Qualität > Upscaling Filter und wählen Sie Räumlich-Temporäre Nachbearbeitung aus.

STP innerhalb des URP-Assets aktivieren
STP innerhalb des URP-Assets aktivieren

Bake Lightmaps

Die schnellste Option zum Erstellen von Beleuchtung ist eine, die nicht pro Frame berechnet werden muss. Verwenden Sie dazu Lightmapping, um statische Beleuchtung nur einmal zu backen, anstatt sie in Echtzeit zu berechnen.

Fügen Sie Ihrer statischen Geometrie mit Global Illumination (GI) eine dramatische Beleuchtung hinzu. Markieren Sie Objekte mit Contribute GI, damit Sie hochwertige Beleuchtung in Form von Lightmaps speichern können.

Der Prozess der Generierung einer Lightmap-Umgebung dauert länger, als nur eine Beleuchtung in Unity in der Szene zu platzieren, aber dies:

- Läuft schneller, 2- bis 3-mal schneller für 2-pro-Pixel-Beleuchtung

- Sieht besser aus – GI kann eine realistisch wirkende direkte und indirekte Beleuchtung berechnen. Der Lightmapper glättet und entrauscht die resultierende Karte.

Baked Shadows und Beleuchtung können dann ohne den gleichen Leistungshit wie Echtzeitbeleuchtung und Schatten rendern.

Komplexe Szenen können lange Baking-Zeiten erfordern. Wenn Ihre Hardware den Progressive GPU Lightmapper unterstützt, kann diese Option Ihre Lightmap-Erstellung erheblich beschleunigen, in einigen Fällen sogar um das Zehnfache.

Folgen Sie dieser Anleitung, um mit Lightmapping in Unity zu beginnen.

Passen Sie die Lightmapping-Einstellungen (Windows > Rendering > Beleuchtungseinstellungen) und die Lightmap-Größe an, um die Speichernutzung zu begrenzen.
Passen Sie die Lightmapping-Einstellungen (Windows > Rendering > Beleuchtungseinstellungen) und die Lightmap-Größe an, um die Speichernutzung zu begrenzen.

Minimieren Sie Reflexionssonden

Eine Reflection Probe-Komponente kann realistische Reflexionen erzeugen, was jedoch sehr stapelweise teuer sein kann. Verwenden Sie niedrig aufgelöste Cubemaps, Culling-Masken und Texturkompression, um die Laufzeitleistung zu verbessern. Typ verwenden: Baking, um Updates pro Frame zu vermeiden.

Bei Verwendung von Typ: Echtzeit ist in URP erforderlich, vermeiden Sie nach Möglichkeit jeden Frame. Passen Sie den Aktualisierungsmodus und die Time Slicing-Einstellungen an, um die Aktualisierungsrate zu reduzieren. Sie können die Aktualisierung auch mit der Via Scripting-Option steuern und den Probe aus einem benutzerdefinierten Skript gerendert werden.

Bei Verwendung von Typ: Echtzeit ist in HDRP erforderlich, verwenden Sie den On-Demand-Modus. Sie können die Frame-Einstellungen auch unter Projekteinstellungen > HDRP Standardeinstellungen ändern. Reduzieren Sie die Qualität und Funktionen unter Realtime Reflection für eine verbesserte Leistung.

Reduzieren Sie die Qualität und Funktionen unter Real-Time Reflection für eine verbesserte Leistung.

Jede Reflexionssonde erfasst ein Bild der Umgebung in einer Cubemap-Textur.
Jede Reflexionssonde erfasst ein Bild der Umgebung in einer Cubemap-Textur.

Adaptive Probe Volumes verwenden

Unity 6 führt Adaptive Probe Volumes (APVs) ein, die eine ausgeklügelte Lösung für die globale Beleuchtung in Unity bieten und eine dynamische und effiziente Beleuchtung in komplexen Szenen ermöglichen. APVs können sowohl die Leistung als auch die visuelle Qualität optimieren, insbesondere auf mobilen und weniger leistungsstarken Geräten, und bieten gleichzeitig erweiterte Funktionen für High-End-Plattformen.

APVs bieten eine Reihe von Funktionen zur Verbesserung der globalen Beleuchtung, insbesondere in dynamischen und großen Szenen. URP unterstützt jetzt Pro-Vertex-Sampling für eine verbesserte Leistung auf weniger leistungsstarken Geräten, während VFX-Partikel von einer in Probe-Volumes integrierten indirekten Beleuchtung profitieren.

APV-Daten können von Festplatte zu CPU und GPU gestreamt werden, um Beleuchtungsinformationen für große Umgebungen zu optimieren. Entwickler können mehrere Beleuchtungsszenarien backen und kombinieren, um Echtzeitübergänge wie Tag-Nacht-Zyklen zu ermöglichen. Das System unterstützt auch Himmelsokklusion, integriert sich in die Ray Intersector API für effizientere Sondenberechnungen und bietet Kontrolle über die Probedichte von Light Probes, um Lichtlecks zu reduzieren und Iterationen zu beschleunigen. Die neue C#-Baking API ermöglicht auch das unabhängige Baking von APV aus Lightmaps oder Reflexionssonden.

Sehen Sie sich den Vortrag Effiziente und wirkungsvolle Beleuchtung mit Adaptive Probe Volumes von der GDC 2023 an, um erste Schritte mit APVs zu machen.

Mehrere APVs sind hilfreich, um mehr Kontrolle über die Sondendichte im Level zu haben.
Mehrere APVs sind hilfreich, um mehr Kontrolle über die Sondendichte im Level zu haben.

Schatten deaktivieren

Schattenwurf kann pro MeshRenderer und Beleuchtung deaktiviert werden. Deaktivieren Sie nach Möglichkeit Schatten, um Draw Calls zu reduzieren.

Sie können auch gefälschte Schatten mit einer unscharfen Textur erstellen, die auf ein einfaches Mesh oder Quad unter Ihren Charakteren angewendet wird. Andernfalls können Sie Blob-Schatten mit benutzerdefinierten Shadern erstellen.

Vermeiden Sie es insbesondere, Schatten für Punktlichter zu aktivieren. Jedes Punktlicht mit Schatten erfordert sechs Shadow-Map-Durchläufe pro Licht – vergleichen Sie dies mit einem einzelnen Shadow-Map-Durchlauf für ein Spotlight. Erwägen Sie, Punktlichter durch Spotlights zu ersetzen, bei denen dynamische Schatten absolut notwendig sind. Wenn Sie dynamische Schatten vermeiden können, verwenden Sie stattdessen einen Cubemap als Light.cookie mit Ihren Punktlichtern.

Deaktivieren Sie den Schattenwurf, um Draw Calls zu reduzieren.
Deaktivieren Sie den Schattenwurf, um Draw Calls zu reduzieren.

Shader-Effekt ersetzen

In manchen Fällen können Sie einfache Tricks anwenden, anstatt mehrere zusätzliche Lichter hinzuzufügen. Verwenden Sie beispielsweise anstelle eines Lichts, das direkt in die Kamera scheint, einen Shader, der die Felgenbeleuchtung simuliert (eine Implementierung in HLSL finden Sie in Surface Shader-Beispielen).

Light-Ebenen verwenden

Bei komplexen Szenen mit vielen Lichtern trennen Sie Ihre Objekte mit Ebenen und beschränken dann den Einfluss jedes Lichts auf eine bestimmte Culling Mask.

 Ebenen können den Einfluss Ihres Lichts auf eine bestimmte Culling Mask beschränken.
Ebenen können den Einfluss Ihres Lichts auf eine bestimmte Culling Mask beschränken.

GPU Lightmapper verwenden

Der GPU Lightmapper ist in Unity 6 produktionsreif. Es beschleunigt die Generierung von Beleuchtungsdaten durch Nutzung der GPU erheblich und bietet im Vergleich zu herkömmlichem CPU-Lightmapping deutlich schnellere Baking-Zeiten. Es führt ein neues Light-Baking-Backend ein, das die Codebasis vereinfacht und vorhersehbarere Ergebnisse liefert. Darüber hinaus wurde die Mindest-GPU-Anforderung auf 2 GB gesenkt und enthält auch eine neue API zum Verschieben von Light Probe-Positionen während der Laufzeit, die neben verschiedenen Verbesserungen der Lebensqualität besonders nützlich für prozedural generierte Inhalte ist.

GPU Lightmapper auswählen
GPU Lightmapper auswählen
Unity E-Books
Weitere Tipps für Unity 6

Im Hub für Best Practices von Unity finden Sie viele weitere Best Practices und Tipps für fortgeschrittene Unity Entwickler. Wählen Sie aus über 30 Leitfäden aus, die von Branchenexperten, Unity Entwicklern und Technical Artists erstellt wurden und Ihnen helfen, mit den Toolsets und Systemen von Unity effizient zu entwickeln.

Mehr bewährte Verfahren