Dieser Artikel ist der erste in einer Reihe von Artikeln, in denen erklärt wird, wie Entwickler und Technical Artists die High Definition Render Pipeline (HDRP) in Unity einrichten und nutzen können, um grafischen Realismus der Spitzenklasse zu erreichen. HDRP stellt einen Technologiesprung im Echtzeit-Rendering von Unity dar, so dass Sie mit Licht arbeiten können, wie es sich in der realen Welt verhält.
Lesen Sie auch die anderen Artikel in unserer Serie über hochwertige Beleuchtung:
HDRP erweitert das bestehende Beleuchtungssystem von Unity um eine Vielzahl von Funktionen, die das Rendering Ihrer Szene der realen Beleuchtung näher bringen:
- Physikalische Lichteinheiten und Exposition: HDRP verwendet reale Beleuchtungsstärken und -einheiten. Vergleichen Sie die Bilder von bekannten Lichtquellen und stellen Sie die Belichtung mit physischen Kameras ein.
- Erweiterte Beleuchtung: Steuern Sie die Lichtplatzierung mit zusätzlichen Formoptionen für Spot- und Flächenleuchten. Verwenden Sie Lichtebenen, um den Einfluss von Lichtern auf bestimmte Meshes zu begrenzen. Wenden Sie Echtzeiteffekte wie Screen Space Global Illumination (SSGI) und Screen Space Refraction an.
- Himmelslandschaften: Erzeugen Sie mit verschiedenen Techniken einen natürlich wirkenden Himmel. Verwenden Sie das physikalisch basierte Himmelssystem, um die Planetenatmosphäre prozedural zu simulieren, und fügen Sie volumetrische Wolken und Wolkenschichten hinzu oder wenden Sie HDRIs an, um einen statischen Himmel zu simulieren.
- Nebel: Verleihen Sie Ihren Szenen mit Nebel Tiefe und Dimension. Aktivieren Sie die Volumetrics, um Nebeleffekte in Ihre Vordergrundobjekte zu integrieren und kinoreife Lichtschächte zu rendern. Behalten Sie die Kontrolle über volumetrisches Licht und Schatten bei und verwenden Sie die Komponente "Lokaler volumetrischer Nebel" zur Feinsteuerung der Nebeldichte mit einer 3D-Maskentextur.
- Lautstärkesystem: HDRP verfügt über ein intuitives System, mit dem Sie verschiedene Beleuchtungseffekte und -einstellungen je nach Kamerastandort oder nach Priorität ausblenden können. Überlagern und überblenden Sie Volumes, um die Kontrolle über jeden Quadratmeter Ihrer Szene zu erhalten.
- Nachbearbeitung Die HDRP-Nachbearbeitung wird durch eine Reihe von Volume Overrides gesteuert, die auf dem bestehenden Volume-System aufbauen. Fügen Sie Anti-Aliasing, Tonemapping, Farbkorrektur, Bloom, Tiefenschärfe und eine Vielzahl anderer Effekte hinzu.
- Fortgeschrittene Schatten: HDRP bietet eine erweiterte künstlerische und leistungsbezogene Kontrolle über Schatten. Ändern Sie deren Farbton, Filterung, Auflösung, Speicherbudget und Aktualisierungsmodi. Akzentuieren Sie kleine Details und verleihen Sie ihnen Tiefe mit Kontaktschatten und Mikroschatten.
- Fortgeschrittene Überlegungen: Reflektierende Oberflächen können mit verschiedenen Techniken gerendert werden. Reflexionssonden bieten einen traditionellen Ansatz für die Abbildung von Reflexionen, während Planarreflexionssonden erweiterte Optionen für flache Oberflächen bieten. Screen Space Reflection (SSR) fügt eine Echtzeittechnik hinzu, die den Tiefenpuffer verwendet.
Unity 2021 LTS und höher enthält das HDRP-Paket bei der Installation, um sicherzustellen, dass Sie immer mit dem neuesten verifizierten Grafikcode arbeiten. Wenn Sie die neueste Version von Unity installieren, wird auch die entsprechende Version von HDRP installiert.
HDRP-Paketversion Kompatible Unity-Version 13.x 2022.1 12.x 2021 LTS (in dieser Anleitung verwendet)
Die Bindung der HDRP-Grafikpakete an bestimmte Unity-Versionen hilft, die Kompatibilität zu wahren. Sie können jedoch auch zu einer benutzerdefinierten Version von HDRP wechseln, indem Sie die Manifestdatei überschreiben.
Systemanforderungen
HRDP ist derzeit mit den folgenden Zielplattformen kompatibel:
- Windows und Windows Store, mit DirectX 11 oder DirectX 12 und Shader Model 5.0
- Moderne Konsolen (mindestens Sony PlayStation 4 oder Microsoft Xbox One)
- MacOS (mindestens Version 10.13) mit Metal-Grafik
- Linux- und Windows-Plattformen mit Vulkan
HDRP funktioniert nur auf Konsolen- und Desktop-Plattformen, die Compute-Shader unterstützen. Es unterstützt keine OpenGL- oder OpenGL ES-Geräte. Weitere Einzelheiten zu Anforderungen und Kompatibilität finden Sie in der Dokumentation.
Unter Virtual Reality in der High Definition Render Pipeline finden Sie Informationen zu unterstützten VR-Plattformen und -Geräten.
Um ein HDRP-Projekt einzurichten, starten Sie im Unity Hub:
Legen Sie zunächst ein neues Projekt an und wählen Sie entweder die leere 3D-Vorlage (HDRP) oder die 3D-Beispielszene (HDRP) aus der Liste der verfügbaren Vorlagen (in älteren Versionen des Hub High Definition RP genannt). Um das HDRP-Paket mit einigen Beispielvorgaben zu importieren, wählen Sie die neueste Vorlage.
Wenn Sie Ihr Projekt mit dem 3D Coretemplate erstellen, verwendet Unity die ältere Built-in Render Pipeline. Sie können das Projekt manuell über den Paketmanager(Fenster > Rendering > HDRP-Assistent) nach HDRP migrieren.
Suchen Sie das High Definition RP-Paket in der Unity-Registrierung, oder verwenden Sie das Suchfeld, um es zu finden und zu installieren.
Wenn es einen Konflikt mit den aktuellen Projekteinstellungen gibt, wird der HDRP Render-Pipeline-Assistent angezeigt, der Ihnen bei der Fehlersuche hilft (auch zu finden unter Fenster > Render-Pipeline > HDRP-Assistent). In Unity 2021.2/HDRP 12 befindet er sich unter Fenster > Rendering > HDRP-Assistent.
Gehen Sie zu Configuration Checking und klicken Sie auf Fix All oder klicken Sie auf Fix für jedes Problem, um es einzeln zu reparieren. Diese Checkliste hilft Ihnen bei der Migration von einem nicht skriptfähigen Render-Pipeline-Projekt (SRP).
Wenn der Assistent beendet ist, werden Sie aufgefordert, ein neues Pipeline-Asset zu erstellen. Dies ist eine Datei auf der Festplatte, die Ihre spezifischen Pipeline-Einstellungen enthält. Wählen Sie Eine erstellen, um ein neues Render-Pipeline-Asset hinzuzufügen, und weisen Sie die Datei dort zu.
Wenn HDRP ordnungsgemäß funktioniert, überprüfen Sie, ob alle Kontrollkästchen in der Konfigurationsprüfung grün sind. Sie werden feststellen, dass sich die Farbe der Hintergrundumgebung ändert.
Beachten Sie, dass bei der manuellen Installation aus einem leeren Projekt die 3D-Beispielszene (HDRP) nicht automatisch importiert wird. Verwenden Sie die 3D-Beispielszenenvorlage, wenn Sie Zugriff auf die in diesem Handbuch gezeigten Beispiel-Assets haben möchten.
Die 3D-Beispielszene aus dem Unity Hub ist ein Vorlagenprojekt, das Ihnen den Einstieg in HDRP und physikbasierte Beleuchtung erleichtert. Dieses leichtgewichtige Projekt ist weniger als 100 Megabyte groß und bietet ein gutes Arbeitsbeispiel für HDRP, das Sie schnell als Referenz laden können.
Die kleine, mehrräumige Umgebung zeigt drei verschiedene Bereiche mit unterschiedlichen Beleuchtungskonfigurationen. Das gerichtete Licht, das die Sonne darstellt, hat eine reale Intensität von 100.000 Lux, und jeder Standort korrigiert die Belichtung der Kamera, um sie an die Lichtumgebung anzupassen.
Benutze die WASD-Tasten und die Maus, um den FPS-Controller durch das Level zu steuern.
- Raum 1 ist eine runde Plattform, die durch das Sonnenlicht von oben beleuchtet wird. Abziehbilder fügen dem Betonboden Schmutz und Wasserpfützen hinzu.
- In Raum 2 kommen volumetrische Lichtschächte aus dem Oberlicht sowie moderne Materialien für den Baum im Inneren der Vitrine hinzu.
- In Raum 3 werden künstliche Innenbeleuchtung und emittierende Materialien gezeigt.
Werfen Sie einen genaueren Blick auf diesen Blogbeitrag von Unity Technical Artist Pierre Yves Donzallaz, in dem die HDRP 3D-Beispielszene genauer beschrieben wird.
Mehr HDRP-Beispielinhalte
Vielleicht finden Sie einige andere Projekte hilfreich, wenn Sie die HDRP 3D-Beispielszene erkundet haben.
Obwohl das Projekt ursprünglich nicht für Spiele gedacht war, ist der Projekt Auto Showroom demonstriert ein hochdetailliertes Fahrzeug mit realistischer Beleuchtung. Ändern Sie in dieser interaktiven Demo, die über den Unity Hub verfügbar ist, die Bühnenbeleuchtung, den Autolack, die Texturen und die Kulisse.
Inzwischen ist die Raumschiff-Demo zeigt den Visual Effect Graph und andere HDRP-Funktionen in einer Science-Fiction-Umgebung. Ihr könnt es von Unitys GitHub-Repository herunterladen oder über Steam darauf zugreifen.
Wenn Sie HDRP mit VR verwenden, werden Sie das VR-Alchemisten-Labor. Dieses Projekt präsentiert interaktive Effekte in einem kleinen mittelalterlichen Labor.
Um zu lernen, wie man cineastische Inhalte oder animierte Filme erstellt, installieren Sie unser Cinematic Studiotemplate aus dem Unity Hub. Diese Vorlage veranschaulicht, wie die Aufnahmen eines witzigen Kurzfilms namens Mich-L mit einer Mischung aus stilisiertem und fotorealem Rendering eingerichtet und beleuchtet werden.
Unter Projekteinstellungen(Bearbeiten > Projekteinstellungen) finden Sie einige wichtige Einstellungen, darunter Grafiken, globale HDRP-Einstellungen und Qualität.
Beachten Sie, dass die HDRP-Standardeinstellungen in Unity 2021.2/HDRP 12 und höher jetzt HDRP-Global Settings heißen.
Grafik-Einstellungen
Die skriptfähigen Render-Pipeline-Einstellungen oben im Bild verweisen auf eine Datei auf der Festplatte, in der alle Ihre HDRP-Einstellungen gespeichert sind. Sie können mehrere solcher Pipeline-Assets pro Projekt haben.
Betrachten Sie jede dieser Dateien als eine separate Konfigurationsdatei. Sie können zum Beispiel spezielle Einstellungen für verschiedene Zielplattformen (Xbox, PlayStation usw.) speichern oder auch verschiedene visuelle Qualitätsstufen darstellen, die der Spieler zur Laufzeit wechseln kann.
Die 3D-Beispielszene beginnt mit mehreren Pipeline-Assets im Ordner Einstellungen: HDRPHighQuality, HDRPLowQuality und HDRPMediumQuality. Außerdem gibt es einen Ordner HDRPDefaultResources, der ein DefaultHDRPAsset enthält.
Mit den Qualitätseinstellungen können Sie eines Ihrer Pipeline-Assets einer vordefinierten Qualitätsstufe zuordnen.
Wählen Sie oben eine Qualitätsstufe aus, um ein bestimmtes Render-Pipeline-Asset in den Rendering-Optionen zu aktivieren. Sie können die Standardeinstellungen anpassen oder zusätzliche Qualitätsstufen erstellen, die jeweils mit zusätzlichen Pipeline-Assets gekoppelt sind.
Eine Qualitätsstufe steht für eine bestimmte Gruppe von visuellen Merkmalen, die in der Pipeline aktiv sind. Sie können zum Beispiel mehrere Ebenen für Grafiken innerhalb Ihrer Anwendung erstellen. Zur Laufzeit können Ihre Spieler dann die aktive Qualitätsstufe auswählen, je nach Hardware.
Gehen Sie zum Unterabschnitt Qualität/HDRP, um die eigentlichen Pipeline-Einstellungen zu bearbeiten. Andernfalls wählen Sie in der Projektansicht das Pipeline-Asset aus und bearbeiten seine Einstellungen im Inspektor.
Bitte beachten Sie, dass die Aktivierung weiterer Funktionen im Pipeline-Asset mehr Ressourcen verbraucht. Generell sollten Sie Ihr Projekt so optimieren, dass Sie nur das verwenden, was Sie wirklich brauchen, um den gewünschten Effekt zu erzielen. Wenn Sie eine bestimmte Funktion nicht benötigen, können Sie sie deaktivieren, um Ressourcen zu sparen und die Leistung zu verbessern.
Hier sind einige Funktionen, die Sie deaktivieren können, wenn Sie sie nicht benötigen:
- In der HDRP-Anlage: Abziehbilder, niedrig aufgelöste Transparenz, transparente Rückseite/Tiefenvor- und -nachpass, SSAO, SSR, Kontaktschatten, Volumetrics, Subsurface Scattering und Verzerrungen
- In den Bildeinstellungen der Kamera (Hauptkamera), die für integrierte Effekte wie Spiegelungen oder zusätzliche Kameras für benutzerdefinierte Effekte verwendet werden: Brechung, Nachbearbeitung, Nachbearbeitung, Transmission, Reflexionssonde, planare Reflexionssonde und Big Tile Prepass
Lesen Sie diesen Blogbeitrag, um sich mit den HDRP-Funktionen zur Leistungssteigerung vertraut zu machen.
Globale HDRP-Einstellungen
Der Abschnitt HDRP Global Settings, auch bekannt als HDRP Default Settings (vor HDRP Version 12), bestimmt die Grundkonfiguration Ihres Projekts. Sie können diese Einstellungen in der Szene je nach Kameraposition über lokale oder globale Volumenkomponenten außer Kraft setzen.
Globale Einstellungen werden in einem eigenen Pipeline-Asset gespeichert, das im obersten Feld definiert ist und in dem Sie Standardoptionen für das Rendering und die Nachbearbeitung einrichten können.
Während Sie Ihr Projekt entwickeln, müssen Sie möglicherweise zu den globalen HDRP-Einstellungen zurückkehren, um bestimmte Funktionen ein- oder auszuschalten. Einige Funktionen werden nur dann gerendert, wenn das entsprechende Kontrollkästchen in den Globalen Einstellungen aktiviert ist.
Stellen Sie sicher, dass Sie nur die Funktionen aktivieren, die Sie benötigen, da sie sich negativ auf die Rendering-Leistung und die Speichernutzung auswirken können. Beachten Sie, dass bestimmte Einstellungen in den Lautstärkeprofilen erscheinen, während andere Funktionen in den Rahmeneinstellungen zu finden sind (je nach Verwendung).
Machen Sie sich mit dem Funktionsumfang von HDRP vertraut und nutzen Sie das Suchfeld oben rechts in den Projekteinstellungen. Dadurch werden nur relevante Panels mit hervorgehobenen Suchbegriffen angezeigt.
Die Aktivierung einer Funktion in den globalen HDRP-Einstellungen garantiert nicht, dass sie von jeder Kamera zu jedem Zeitpunkt wiedergegeben werden kann. Sie müssen sich vergewissern, dass das Render-Pipeline-Asset, dessen Qualitätsstufen unter Projekteinstellungen > Qualität angegeben sind, diese Funktion ebenfalls unterstützt. Um beispielsweise sicherzustellen, dass Kameras volumetrische Wolken rendern können, müssen Sie diese unter HDRP Global Settings > Frame Settings > Camera > Lighting und im aktiven Render Pipeline Asset unter Lighting > Volumetrics einschalten.
Wenn Sie nicht an die CPU gebunden sind, kann die Auflösung die Leistung erheblich beeinträchtigen. Die dynamische Auflösung reduziert die Rendering-Auflösung und skaliert das Ergebnis auf die Auflösung des Ausgabebildschirms. Filter, die diese Hochskalierung durchführen, wurden in 2021 LTS stark verbessert, so dass Sie mit minimalen Qualitätsverlusten bei 70 % oder weniger Auflösung rendern können.
In Unity 2021 LTS bietet HDRP mehrere Lösungen mit einigen der neuesten Super Sampling Technologien:
- NVIDIA DLSS (Deep Learning Super Sampling) für GPUs, die es unterstützen
- AMD FSR (FidelityX Super Resolution) plattformübergreifend
- TAA Upscale (Temporal Anti-Aliasing) plattformübergreifend
Sie können die Skalierung entweder im HDRP-Asset erzwingen oder Ihre eigene Logik zur Anpassung der Skalierung programmieren.
Um die dynamische Auflösung in Ihrem Projekt einzurichten und eine Anleitung zur Auswahl des besten Algorithmus für Ihre Bedürfnisse zu erhalten, lesen Sie diese Seite der Dokumentation.
Bei der Konfiguration der HDRP-Einstellungen im Pipeline-Asset beginnen Sie in der Regel mit dem Beleuchtungs-Shader-Modus unter Rendering, wo Sie zwischen Deferred, Forward oder Both wählen können. Diese stellen Rendering-Pfade dar, die Sie auswählen können, wobei jeder Pfad eine bestimmte Reihe von Vorgängen enthält, die Aufschluss darüber geben, wie die Pipeline die Geometrie rendert und beleuchtet. Siehe oben, wie Sie Ihren Renderpfad anpassen können.
Um Ihren Standard-Rendering-Pfad festzulegen, gehen Sie zu Lit Shader Mode und wählen Sie Forward oder Deferred. Der HDRP ist flexibel und erlaubt Ihnen, beides zu wählen. Mit dieser Option können Sie einen Renderpfad für die meisten Rendervorgänge verwenden und ihn dann für jede Kamera außer Kraft setzen. Allerdings wird dabei mehr GPU-Speicher benötigt, so dass es in der Regel besser ist, entweder Forward oder Deferred zu wählen.
Um alle Kameras standardmäßig zu beeinflussen, gehen Sie zu HDRP-Standardeinstellungen und suchen Sie nach Standardbildeinstellungen. Ihr Rendering-Pfad kann auf Kameras, gebackene oder benutzerdefinierte Reflexion und Echtzeit-Reflexion angewendet werden. Legen Sie in der Gruppe Rendering den Renderpfad im Lit Shader Mode fest.
Um eine bestimmte Kamera zu beeinflussen, überprüfen Sie deren benutzerdefinierte Bildeinstellungen. Überschreiben Sie dann in der Gruppe Rendering den Rendering-Pfad des Licht-Shader-Modus und ändern Sie ihn.
Beim Forward-Rendering zerlegt die Grafikkarte die Geometrie auf dem Bildschirm in Scheitelpunkte. Diese Scheitelpunkte werden weiter in Fragmente oder Pixel zerlegt, die auf dem Bildschirm dargestellt werden und das endgültige Bild ergeben.
Jedes Objekt wird einzeln an die Grafik-API übergeben. Das Forward Rendering ist mit Kosten für jedes Licht verbunden. Je mehr Lichter in Ihrer Szene sind, desto länger dauert das Rendern.
Beim Forward-Rendering werden die Lichter in separaten Durchgängen gezeichnet. Wenn mehrere Lichter auf ein und dasselbe GameObject treffen, kann dies zu einem erheblichen Overdraw führen und das Spiel verlangsamen, wenn viele Lichter und Objekte vorhanden sind.
Im Gegensatz zum herkömmlichen Forward-Rendering bietet HDRP neue Möglichkeiten, wie z. B. das Zusammenfassen und Rendern mehrerer Lichter in einem einzigen Durchgang pro Objektmaterial. Aber es ist immer noch ein relativ teures Verfahren. Wenn die Leistung ein Problem ist, sollten Sie stattdessen Deferred Shading verwenden.
HDRP kann auch das Deferred Shading nutzen, bei dem die Beleuchtung nicht für jedes Objekt berechnet wird. Stattdessen wird beim Deferred Shading das Rendering auf eine spätere Phase verschoben und in zwei Durchgängen durchgeführt.
Während des ersten Durchlaufs, dem G-Buffer-Geometrie-Durchlauf, rendert Unity die GameObjects. In diesem Durchgang werden verschiedene Arten von geometrischen Eigenschaften abgerufen und in einem Satz von Texturen gespeichert (z. B. diffuse und spiegelnde Farben, Oberflächenglätte, Okklusion, Normalen usw.).
Im zweiten Durchgang, dem Beleuchtungsdurchgang, rendert Unity die Beleuchtung der Szene, nachdem der G-Buffer vollständig ist, und verschiebt so die Schattierung. Der Deferred Shading Path iteriert über jedes Pixel und berechnet die Beleuchtungsinformationen auf der Grundlage des Puffers und nicht auf der Grundlage der einzelnen Objekte.
Weitere Informationen zu den technischen Unterschieden zwischen den Rendering-Pfaden finden Sie in der HDRP-Dokumentation unter Forward und Deferred Rendering.