Machen Sie sich mit den HDRP-Einstellungen für verbesserte Leistung vertraut

MATHIEU MULLER / UNITYSenior Manager, Product Management
Oct 22, 2021|13 Min.
Machen Sie sich mit den HDRP-Einstellungen für verbesserte Leistung vertraut
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.

Erfahren Sie, wie Sie die Einstellungen der High Definition Render Pipeline (HDRP) nutzen können, um die Leistung zu maximieren und gleichzeitig leistungsstarke Grafiken zu erzielen.

Mit der Veröffentlichung von HDRP Version 10 für Unity 2020 LTS und darüber hinaus hat das HDRP-Paket weiterhin die Priorität auf seine benutzerfreundliche Oberfläche, flexible Funktionen, Stabilität und übergreifende Leistung gelegt. Um HDRP optimal nutzen zu können, ist es jedoch wichtig, alle wichtigen Einstellungen zu kennen und zu wissen, wie sie funktionieren und was sie bewirken. Aus diesem Grund betrachten wir die Funktionsweise von HDRP aus der Perspektive der CPU/GPU-Profiler-Aufzeichnungen, der Render-Pipeline-Debug-Ansicht und des Shader-Frameworks von HDRP.

Von Grafik-Debugging bis hin zu Profilerstellung und Optimierung - in diesem Blog finden Sie Tipps, wie Sie HDRP mit der Custom Pass API oder einem anderen lokalen Teil des Pakets für Ihr Projekt anpassen können.

Die Struktur von HDRP UX

Bevor wir mit der Analyse der Frames beginnen, ist es wichtig, die HDRP-Merkmale zu kennen. Wir empfehlen unsere Unite Now-Präsentation " Achieving high-fidelity graphics for games with HDRP", das Webinar " Ray tracing with Unity's High Definition Render Pipeline" und den Vortrag " Volumetric Clouds, Lens Flare, and Light Anchor", die allesamt großartige Anleitungen für HDRP sind.

Benutzer, die von der integrierten Render-Pipeline auf HDRP umsteigen, stellen häufig fest, dass die Umstellung einige Zeit in Anspruch nimmt. Der Grund dafür ist:

  • HDRP verfügt über einen einheitlichen und physikalisch basierten Darstellungsrahmen, was bedeutet, dass die Attribute reale Einheiten verwenden: Der Belichtungswert wird für die Lichtempfindlichkeit der Kamera verwendet, während Candela für die Lichtintensität verwendet wird. In unserem Unite Nowtalk erfahren Sie, wie Sie bei der Beleuchtung einer Szene auf physikalische Weise denken müssen, um konsistente Ergebnisse zu erzielen.
  • Es gibt viele Parameter, die Sie in einem HDRP-Projekt steuern können, und diese Parameter sind an vielen Stellen vorhanden. Das liegt zum Teil daran, dass HDRP über mehr integrierte Funktionen verfügt und sowohl Künstlern als auch Ingenieuren tiefere Anpassungsmöglichkeiten zur Feinabstimmung und Optimierung ihrer Arbeit bietet.

Um sich mit den HDRP-Funktionen vertraut zu machen, sehen wir uns zunächst die globalen Einstellungen an.

Globale Einstellungen

Für die integrierte Render-Pipeline decken die Grafikeinstellungen die meisten projektbezogenen Grafikeinstellungen ab. Es gibt auch Player-Einstellungen, die einige allgemeine Grafikeinstellungen im Kontext einer bestimmten Zielplattform enthalten, wie z. B. Windows, Linux, Mac oder Xbox.

Bild des Ortes, an dem die Grafikeinstellungen in HDRP-Projekten zu finden sind

HDRP-Projekte verwenden die Grafik- und Player-Einstellungen in ähnlicher Weise. Zusätzlich gibt es drei weitere Einstellungssätze, die Zugriff auf erweiterte Standardkonfigurationen der Render-Pipeline bieten.

  • In den Grafikeinstellungen beziehen sich beispielsweise die Einstellungen für die skriptfähige Render-Pipeline (SRP) auf ein Standard-HD-Render-Pipeline-Asset. Dieses HD-Rendering-Pipeline-Asset enthält Einstellungen, die für jede Qualitätsstufe überschrieben werden können.
  • Die Registerkarte HDRP-Standardeinstellungen konfiguriert:
  • Standardrahmeneinstellungen mit Standardeigenschaften, die für jede Kamera überschrieben werden können (einschließlich Kameras, die für planare Reflexionen oder Reflexionssonden verwendet werden). Hier können Sie festlegen, ob die Kameras standardmäßig transparente Objekte rendern sollen.
  • Standard-Volumenkomponenten, die Eigenschaften enthalten, die für jede "Kameraposition in der Szene" außer Kraft gesetzt werden können. So können Sie zum Beispiel Standardintensitäten für Nachbearbeitungseffekte festlegen, die Sie überschreiben und mit bestimmten Lautstärken für Ihre Szenen zu "stark im Freien, aber schwach in Innenräumen" machen können.
  • Die Eigenschaft Standard-Diffusionsprofil-Assets, die durch eine Diffusionsprofil-Überschreibungskomponente im Abschnitt Volumenkomponenten auf der Registerkarte HDRP-Standardeinstellungen überschrieben werden kann. Dies wiederum kann per "Kameraposition in der Szene" außer Kraft gesetzt werden. Derzeit gibt es auch eine "redundante Überschreibungsebene" für das Diffusionsprofilsystem, aber da wir ständig bemüht sind, die Benutzerfreundlichkeit von HDRP zu verbessern, ist eine Lösung für dieses Problem bereits in Arbeit.
  • Andere Eigenschaften, die "reine globale Einstellungen" sind, können nicht außer Kraft gesetzt werden.
  • Schließlich werden im Paket HDRP Config einige Einstellungen auf niedriger Ebene angegeben, bei denen es weniger wahrscheinlich ist, dass sie konfiguriert werden müssen. Diese Einstellungen sind auch "reine globale Einstellungen". Ihre Änderung erfordert eine Neukompilierung der C#-Assembly und des HDRP-Shader-Frameworks. Deshalb sind sie an einem anderen Ort platziert.

Qualitätsstufen

Mit der integrierten Render-Pipeline können Sie auf der Registerkarte Qualitätseinstellungen eine Reihe von Qualitätsstufen festlegen. Für jede Qualitätsstufe können einige Grafikeinstellungen, wie z. B. die anisotrope Texturnutzung, festgelegt werden, damit auf Low-End-Plattformen weniger Hardwareressourcen verbraucht werden.

Speziell für HDRP-Projekte kann für jede Qualitätsstufe ein HD-Render-Pipeline-Asset ausgewählt werden, das überschrieben wird. Im Vergleich zur integrierten Render-Pipeline bietet dies mehr Konfigurationsmöglichkeiten, da das HD-Render-Pipeline-Asset mehrere Parameter speichert, z. B. die maximale Anzahl der gerichteten, punktuellen und flächigen Lichter auf dem Bildschirm, die Größe der Farbabstufungs-LUT und die Größe des Licht-Cookie-Atlasses.

Einige Eigenschaften auf der Registerkarte Qualitätseinstellungen für ein integriertes Render-Pipeline-Projekt gelten nur für die integrierte Render-Pipeline. In einem HDRP-Projekt können diese Einstellungen von ihrem ursprünglichen Standort verschwinden und an anderer Stelle als "Ersatzeinstellungen" wieder auftauchen.

In einem Projekt mit integrierter Render-Pipeline steuert die Registerkarte Qualitätseinstellungen beispielsweise die Eigenschaft Schattenauflösung. In einem HDRP-Projekt steuert jedoch der Abschnitt Beleuchtung > Schatten eines HD-Render-Pipeline-Assets die Auflösung der Schattenkarten.

Screenshot der Eigenschaften in den Qualitätseinstellungen eines integrierten Render-Pipeline-Projekts im Vergleich zu einem HDRP-Projekt
Viele Eigenschaften in den Qualitätseinstellungen werden in das HD Render Pipeline Asset verschoben

Kamera- und Rahmeneinstellungen

Um Ihre Szene in HDRP zu rendern, müssen Sie genau wie in der integrierten Render-Pipeline Kameras hinzufügen. HDRP verwendet auch eine zusätzliche HD-Zusatzkameradatenkomponente (die an dasselbe Spielobjekt angehängt ist), um zusätzliche kameraspezifische Parameter zu speichern.

In der Tat bietet HDRP viel mehr kameraspezifische Parameter zur Anpassung. Es gibt mehrere physische Kameraeinstellungen, und wenn Sie die Eigenschaft Benutzerdefinierte Rahmeneinstellungen einer Kamera markieren, können Sie über das Rahmeneinstellungssystem entscheiden, wie die Kamera den Rahmen zeichnet.

Das System der Rahmeneinstellungen besteht aus einer Reihe von Kameraeigenschaften, die überschrieben werden können. Auf der Registerkarte HDRP-Standardeinstellungen können Sie Standardwerte für Frame-Einstellungen festlegen. Darüber hinaus kann jede Kamera die Standard-Rahmeneinstellungen überschreiben.

Die Kamerabedienfelder desFenstersRender-Pipeline-Debug helfen bei der Visualisierung des Stapels von Frame-Einstellungen, die überschrieben werden.

Verwenden des Kamerabedienfelds

Das folgende Beispiel veranschaulicht die Funktionsweise des Kamerabedienfelds im Debugfenster der Render-Pipeline:

In der Szene gibt es eine Kamera namens Hauptkamera. Die Hauptkamera zeichnet nur statische Objekte. Die Registerkarte HDRP-Standardeinstellungen ermöglicht das Zeichnen von Bewegungsvektoren, während die Überschreibung der Bildeinstellungen der Hauptkamera diese Funktion zur Verbesserung der Gesamtleistung deaktiviert.

Der Überschreibungsstapel von Motion Vectors zeigt den Status der OverriddenFrame-Einstellungen links neben den DefaultFrame-Einstellungen an. Siehe Abbildung 4, Highlight A:

Frame-Einstellungen überschreiben den im Debug-Fenster der Render-Pipeline angezeigten Stapel

Außerdem zeigt das Debug-Fenster der Render-Pipeline den Status der SanitizedFrame-Einstellungen links neben den OverriddenFrame-Einstellungen an. Die Sanitisierung stellt sicher, dass die Einstellungen des überschriebenen Rahmens konsistent bleiben. Im gleichen Beispiel wurden die Bewegungen "Opake Objektbewegung" und "Transparente Objektbewegung" in den Bildeinstellungen der Hauptkamera nicht explizit deaktiviert. Da jedoch der Bewegungsvektor deaktiviert ist, werden diese abhängigen Merkmale vom Bereinigungssystem ebenfalls ausgeschaltet, wie in Abbildung 4, Highlight B, zu sehen ist.

Volumen-System

Wie in unserem Unite Nowtalk besprochen, unterstützt HDRP ein Volume-System. Ähnlich wie der Post-Processing-Stack in der integrierten Render-Pipeline steuert das HDRP-Volumen-System die Nachbearbeitung. Darüber hinaus bestimmt sie unter anderem die Art und Weise, wie der Himmel gerendert wird, die Stärke des indirekten Lichts und einige Schatteneinstellungen.

Einfach ausgedrückt ist das HDRP-Volumensystem ein abstraktes Gerüst, das verwendet werden kann, um Rendering-Einstellungen zu ändern, während sich die Kamera durch die Szene bewegt. Für jede Volumeneigenschaft gibt es einen fest programmierten Standardwert. Um diese Werte zu sehen, verwenden Sie das Bedienfeld Lautstärke im Debug-Fenster der Render-Pipeline. Siehe die Spalte ganz rechts in Abbildung 5, wo die Standardintensität der Linsenverzerrung 0 ist.

Vom Debug-Fenster der Render-Pipeline angezeigter Stapel zum Überschreiben des Volumens

Diese fest kodierten Standardeigenschaften können durch Eigenschaftsüberschreibungen im Abschnitt Volume Components der HDRP Default Settingstabüberschrieben werden. Beachten Sie, dass diese Eigenschaftsüberschreibungen in ähnlicher Weise von Volumes in der Szene überschrieben werden können.

Umgekehrt nimmt die Kamera eine Mischung aus Eigenschaftswerten von Volumes in der Szene auf. Sind keine vorhanden, werden die Eigenschaftswerte aus der Registerkarte HDRP-Standardeinstellungen übernommen. Andernfalls werden die fest kodierten Standard-Eigenschaftswerte übernommen.

Wie in Abbildung 5 gezeigt, ist das Fenster "Lautstärke" im Debug-Fenster der Render-Pipeline nützlich, um den aktuellen Überschreibungsstapel der Eigenschaft "Lautstärke" zu visualisieren. Sie ist besonders effektiv bei der Fehlersuche, da sie die aktuell verwendeten Volume-Eigenschaften anzeigt.

Netze und Flächen

Genau wie in der integrierten Render-Pipeline werden die zu rendernden Geometrien in der Regel durch Mesh Renderer oder Skinned Mesh Renderer in der Scene festgelegt. HDRP-spezifische Daten werden überwiegend in den Materialiengespeichert ,damit sie die entsprechenden Renderer oder Shader-Graphen verwenden können.

Beleuchtung

Wie in der integrierten Render-Pipeline gibt es in HDRP-Projekten Lichter mit HDRP-spezifischer Datenspeicherung für jedes Licht. Die HD-Zusatzlichtdaten-Komponenten werden neben den regulären Lichtkomponenten angebracht.

Bedenken Sie, dass es viele Einstellungen für die Beleuchtung gibt, die von anderen Stellen als Spielobjekten mit Lichtkomponenten stammen. Hier sind nur einige Beispiele:

Indirekte Beleuchtungssteuerung Volumenanteil
Suche nach Immobilien

Nachdem wir nun einen Rundgang durch die HDRP-UX gemacht haben, wollen wir uns nun einigen weniger bekannten grafischen Eigenschaften für Ihr nächstes HDRP-Projekt zuwenden. Abbildung 7 zeigt einen möglichen Ansatz, beginnend mit den allgemeinen Einstellungen oben und den Überschreibungseinstellungen unten. Wie Sie sehen können, erweitert sich die Bandbreite von oben nach unten.

eine mögliche Routine für die Suche nach Grafikeigenschaften in Ihrem HDRP-Projekt
Abmessungen der Grafikeinstellungen

Die HDRP-Grafikeinstellungen müssen sich an Folgendes anpassen:

  • Das Qualitätsniveau des Programms, z. B. die Plattform, auf der das Programm läuft
  • Die aktuell aktive Kamera
  • Position der Kamera in der Szene
  • Die Materialien der gerenderten Geometrien
  • Die Lichter, die die gerenderten Geometrien beeinflussen

Beachten Sie, dass die HDRP-Einstellungen besonders gut auf die Dimensionen der Einstellungen abgestimmt sind.

Widersprüche zwischen den Dimensionen der Einstellungen

Häufig gibt es Konflikte zwischen den Dimensionen der folgenden Einstellungen:

  • Die Qualitätsstufe und die aktuell aktive Kamera versuchen möglicherweise, denselben Grafikparameter zu steuern. Wenn Sie beispielsweise die Anzahl der Subsurface Scattering-Samples auf Low-End-Geräten reduzieren möchten, sollten Sie auch die Anzahl der Subsurface Scattering-Samples für Kameras reduzieren, die für Bild-in-Bild-Effekte in Rendertexturen rendern.
  • Die Qualitätsstufe und die Kameraposition in der Szene versuchen möglicherweise, denselben Grafikparameter zu steuern. Wenn Sie also die Qualität von Post-Processing-Effekten auf Plattformen mit begrenzter GPU-Leistung verringern wollen, müssen Sie sich der Tatsache bewusst sein, dass einige Scene-Standorte bereits erhebliche GPU-Zeit für komplexe Beleuchtungen benötigen. Daher sollten Sie sich bemühen, die Qualität der Nachbearbeitungseffekte an diesen Stellen zu verringern, um einen Teil des Leistungsbudgets zurückzugewinnen.
  • Die Qualitätsstufe und die Lichter in der Szene versuchen möglicherweise, denselben Grafikparameter zu steuern. Wenn Sie also die Auflösung der Schattenkarten auf Plattformen mit begrenztem Arbeitsspeicher reduzieren wollen, müssen Sie bedenken, dass es in der Szene wahrscheinlich viele kleine schattenwerfende Scheinwerfer gibt, die Schattenkarten mit geringerer Auflösung erfordern.

Um diese Konflikte zu lösen, unterstützt das HD Render Pipeline Asset Tieredsettings. Anstatt nur einen Wert für eine Eigenschaft anzugeben, kann eine Reihe von Werten einer Reihe von Stufen zugeordnet werden - niedrig, mittel, hoch und in einigen Fällen eine Ultra-Stufe.

für jede Stufe angegebener Wert
für jede Stufe angegebener Wert
für jede Stufe angegebener Wert

Bei Kameras, die den Bild-in-Bild-Effekt rendern, können Sie eine Ebene sowohl für die Volumen, die die Nachbearbeitungseffekte steuern, als auch für die Scheinwerfer, die die Schattenkarten anfordern, festlegen:

Geben Sie eher Stufen als Werte an.
Geben Sie eher Stufen als Werte an.
Geben Sie eher Stufen als Werte an.

HDRP kann dann die Eigenschaft auf der entsprechenden Ebene im aktiven HD Render Pipeline-Asset nachschlagen. Diese Eigenschaft wird genutzt.

Natürlich ist es auch möglich, dass Kameras, Lautstärken und Lichter das System der abgestuften Einstellungen ignorieren und ihr gewünschtes Verhalten direkt festlegen.

Überschneidung der Dimensionen von drei Einstellungen

Betrachten wir ein weiteres Beispiel, bei dem sich die Abmessungen der Einstellungen überschneiden.

Stellen Sie sich vor, dass es in der Szene einige Mesh-Renderer gibt, die einen Shader-Graphen mit komplexen Vertex-Animationen verwenden. Es könnte zu teuer sein, Vertex-Animationen auf Low-End-Geräten durchzuführen. Für die Render-Textur gibt es auch ein zusätzliches Kamera-Rendering, wenn es um Bild-in-Bild-Effekte geht, so dass Sie diese zusätzliche Kamera nicht zum Rendern mit einer Vertex-Animation benötigen.

In diesem Fall überschneiden sich die Dimensionen von drei Einstellungen:

  • Materialien der Geometrien in der Szene
  • Qualitätsniveau des Programms
  • Kameras in der Szene

Für solche Fälle gibt es ein spezielles Materialqualitäts-Schlüsselwort, das in Shader Graph zur Verfügung steht:

Das Schlüsselwort Materialqualität in Shader Graph

Im Gegensatz zu regulären Shader Graph-Schlüsselwörtern, die von den Benutzern pro Material kontrolliert werden, ist dies ein globales Schlüsselwort, das intern von HDRP eingerichtet wird. Im HD Render Pipeline Asset können Sie die verfügbaren Materialqualitätsstufen sowie die Standardmaterialqualitätsstufe festlegen.

Die verfügbaren Materialqualitätsstufen und die Standardmaterialqualitätsstufe

Für jede Kamera können Sie die Standard-Rahmeneinstellungen außer Kraft setzen und eine Materialqualitätsstufe angeben, die das aktive HD-Render-Pipeline-Asset außer Kraft setzt.

Festlegen der Materialqualitätsstufe über die Bildeinstellungen einer Kamera (Override)

Der HDRP hat einen systematischen Ansatz für den Umgang mit Einstellungen von Künstlern. Schließlich ist die Aufrechterhaltung einer großartigen UX für Künstler der Schlüssel zur Inspiration für hochwertige Inhalte.

Optimierung der HDRP-Einrichtung

Wenn Sie ein HDRP-Projekt mit einer einfachen Einrichtung beginnen, kann das Projekt überraschend viel Leistung kosten. Dies liegt daran, dass HDRP viele der verwendeten Funktionen standardmäßig festlegt. Am besten ist es, die HDRP-Einstellungen zu kontrollieren, damit Sie nur für das bezahlen, was Sie auch nutzen wollen.

Um eine minimalistische Rendering-Auslastung darzustellen, erstellen wir eine Szene mit 225 Würfeln, die von einem Scheinwerfer, einem Punktlicht, einem gerichteten Licht und einer Umgebungsbeleuchtung beleuchtet werden, wobei das Standardmaterial verwendet wird.

Beispiel für eine Szene mit 225 Würfeln

Wie funktioniert diese einfache Einrichtung? Erstellen wir einen eigenständigen Player mit einer Auflösung von 2880x1620 auf dem IL2CPP-Skript-Backend, wobei VSync deaktiviert ist. Wenn der Player auf einem Windows-Rechner mit Intel i9-10980HK-Grafikkarte und NVIDIA RTX2080-Grafikkarte ausgeführt wird, zeigt der Profiler, dass die durchschnittliche Frame-Zeit 4,6 ms beträgt.

Ein Blick auf die Timeline-Ansicht des Profiler zeigt, dass der DXGI.WaitOnSwapChainmarker sehr viel Zeit in Anspruch nimmt, was darauf hindeutet, dass er GPU-gebunden ist.

Sowohl die Built-in Render Pipeline- als auch die HDRP-Tests sind GPU-gebunden.

Eine GPU-Aufnahme mit Nsight Graphics zeigt, dass dies darauf zurückzuführen ist, dass der HDRP standardmäßig mehrere Funktionen aktiviert hat:

  • Es sind viele zusätzliche visuelle Effekte aktiv, wie SSAO, Subsurface Scattering, Dynamic Exposure, Motion Blur und Bloom.
  • Es sind mehrere Farbpyramiden-Passes und ein Upsample Low-res Transparent Pass in Aktion, die alle komplexes transparentes Rendering unterstützen.
HDRP hat viele Auswirkungen und ist standardmäßig aktiviert.

Wie Sie hier sehen, können Sie das HDRP-Asset steuern, die Rahmeneinstellungen der Kamera außer Kraft setzen und Lautstärkeüberschreibungen hinzufügen, so dass nur die absoluten Mindestfunktionen aktiviert sind. Mit anderen Worten:

  • Abziehbilder, niedrig aufgelöste Transparenz, transparente Rückseite, Tiefenvorpassung, Tiefennachpassung, SSAO, SSR, Kontaktschatten, Volumetrics, Subsurface Scattering und Verzerrungen sind im HDRP-Asset deaktiviert.
  • Refraktion, Post-Process, After Post-Process, Transmission, Reflection Probe, Planar Reflection Probe und Big Tile Prepass sind alle in den Frame-Einstellungen der Kamera deaktiviert.
  • Die Lautstärke setzt den Belichtungsmodus auf Festbelichtung um.

Nach der Änderung beträgt die mittlere Frame-Zeit nur noch 2,45 ms, was im Vergleich zum Rendern derselben Szene in einer integrierten Render-Pipeline erheblich ist.

In der Praxis ist es nicht nötig, so viele Funktionen der Hauptkamera in einem Spiel zu deaktivieren, obwohl einige Zusatzkameras diese Behandlung erfordern.

Wenn Sie an noch preiswerteren Kameras interessiert sind, können Sie mit dem HDRP UI Camera Stacking-Paket in 2021.2 mehrere Rendering UI-Kameras zu einem Bruchteil der Kosten einer Standardkamera stapeln.

Dieses Beispiel verdeutlicht nicht nur das Ausmaß der Kontrolle, die Sie über die Leistungsmerkmale von HDRP haben, sondern auch, wie wichtig es ist, die Einrichtung Ihres HDRP-Projekts zu optimieren.

Was kommt als nächstes?
Unity gebrandetes raytraced Ballbild

Es beginnt mit Licht: Der endgültige Leitfaden für die High Definition Render Pipeline

Das HDRP in Unity 2020 LTS bietet Ihnen verbesserte Werkzeuge für die Erstellung stimmungsvoller, hochwertiger Beleuchtung in Ihren Spielen. Holen Sie sich diesen neuen, ausführlichen Leitfaden, um zu erfahren, wie Sie die Möglichkeiten der physikalisch basierten Beleuchtung in HDRP nutzen können.

Holen Sie sich den Leitfaden