Das World Partition-System verwendet ein Raster, um deine Welt in Zellen zu unterteilen, die zur Laufzeit dynamisch geladen und entladen werden können. Es gibt aber auch Situationen, in denen weit entfernte und nicht interaktive Actors - z. B. entfernte Berge, Bäume und Klippen - dennoch sichtbar sein sollen.
![]() |
![]() |
|---|---|
| HLODs Aus. Nur der Inhalt der geladenen Zellen wird wiedergegeben. | HLODs An. Inhalte in nicht geladenen Zellen werden durch HLODs ersetzt. |
Das System World Partition - Hierarchischer Detaillierungsgrad (HLOD) verwendet benutzerdefinierte HLOD-Layer, um große Mengen an statischen Mesh-Actors zu organisieren und ein einziges Proxy-Mesh und Material zu erzeugen. Diese Technik wird verwendet, um unbelastete World Partition-Rasterzellen zu visualisieren, die Anzahl der Draw-Calls pro Frame zu reduzieren und die Performance zu erhöhen, insbesondere bei großen offenen Welten.
Einige Weltkomponenten, wie z.B. Landschafts- und Wasserkomponenten, werden derzeit nicht von HLOD-Actors unterstützt.
HLOD-Ebenen erstellen
World Partition-HLODs werden vom HLOD-Ebenen-Asset kontrolliert. Diese speziellen Assets enthalten deine Einstellungen, und dein Projekt kann mehrere HLOD-Ebenen verwenden:
-
Erstelle ein neues HLOD-Ebenen-Asset, indem du die Inhaltsschublade öffnest und auf + Hinzufügen klickst, um das Menü zu öffnen. Öffne das Menü Sonstiges und wähle das Asset HLOD-Ebene. (Ein Rechtsklick in die Inhaltsschublade öffnet das gleiche Menü).
-
Doppelklicke auf die neue HLOD-Ebene, um sie im Asset-Editor zu öffnen:
| Einstellung | Beschreibung |
|---|---|
| Ebenentyp | Wähle den Ebenentyp aus den folgenden Optionen aus:
|
| Einstellungen für das Zusammenführen von Meshes/Proxy-Einstellungen | Zeigt zusätzliche Optionen an, wenn der Ebenentyp Zusammengeführtes Mesh oder Vereinfachtes Mesh ausgewählt ist. |
| Immer geladen | Legt fest, ob das von dieser Ebene erzeugte HLOD-Proxy-Mesh immer geladen wird. |
| Zellengröße | Legt die Zellengröße des Laufzeitrasters fest, das erstellt wurde, um die HLOD-Actors in dieser Ebene zu enthalten. Diese Option ist nicht verfügbar, wenn du deine HLOD-Ebene auf Immer geladen eingestellt hast. |
| Ladebereich | Legt den Abstand fest, in dem das Laufzeitraster seine Zellen streamt. Diese Option ist nicht verfügbar, wenn du deine HLOD-Ebene auf Immer geladen eingestellt hast. |
| Übergeordnete Ebene | Ermöglicht, dass die von dieser HLOD-Ebene erstellten Assets automatisch einer bestimmten HLOD-Ebene zugewiesen werden. |
| HLODMaterial | Legt das Basismaterial fest, das beim Baking von Materialien für die Ebenentypen Zusammengeführtes Mesh und Vereinfachtes Mesh verwendet wird. Dies ist eine erweiterte Einstellung. Das Standardmaterial ist für die meisten Anwendungsfälle ausreichend. |
Auswahl eines Ebenentyps
Der erste Schritt zur Verwendung von HLOD-Ebenen ist die Auswahl des Ebenentyps:
| Ebenentyp | Beschreibung |
|---|---|
| Statische Mesh-Assets in diesem Ebenentyp werden durch ISM-Komponenten (Instanced Static Mesh) ersetzt, wobei die niedrigsten Detaillierungsgradeinstellungen (LOD) für diese Assets verwendet werden. Dieser Typ ist ideal für Imitatormeshes, wie Bäume und Laub. | |
| Zusammengeführtes Mesh | Statische Mesh-Assets in diesem Ebenentyp werden zusammengeführt, um ein einziges Proxy-Mesh zu erstellen. |
| Vereinfachtes Mesh | Statische Mesh-Assets in diesem Ebenentyp werden zu einem einzigen Proxy-Mesh zusammengeführt und eine Mesh-Vereinfachung wird durchgeführt. |
Einstellungen für das Zusammenführen von Meshes
Diese Einstellungen sind nur verfügbar, wenn Zusammengeführtes Mesh ausgewählt ist:
| Einstellung | Beschreibung |
|---|---|
| Lightmap-UV erzeugen | Erzeugt Lightmap-UVs für das zusammengeführte Mesh. Dieses neue Layout wird in den Ziel-Lightmap-UVChannel eingefügt. |
| Ziel-Lightmap-Auflösung | Gibt die Lightmap-Auflösung an, die für die Erzeugung von Lightmap-UV-Koordinaten auf dem generierten statischen Mesh verwendet wird. Damit wird der Abstand zwischen den UV-Inseln gesteuert. Höhere Auflösungen ergeben engere Abstände zwischen den einzelnen UV-Inseln. |
| Berechnete Lightmap-Auflösung | Legt fest, ob die Lightmap-Auflösung durch Summierung der Lightmap-Auflösungen für die eingegebenen Mesh-Komponenten berechnet werden soll. |
| Drehpunkt bei Null | Bestimmt, ob die Position des Drehpunkts des zusammengeführten Meshes am Weltursprung oder der ersten zusammengeführten Komponente liegt. |
| Physikdaten zusammenführen | Bestimmt, ob die Physikdaten der Mesh-Komponenten, insbesondere Kollisionsgrundkörper, zusammengeführt werden sollen. |
| Materialien zusammenführen | Fügt die Quellmaterialien zu einem einzigen flachen Material zusammen. Diese Funktion ist nur verfügbar, wenn eine einzelne LOD-Ebene zusammengeführt wird, wie durch den LOD-Auswahltyp festgelegt. |
| Materialeinstellungen | Enthält Materialeinstellungen für das vereinfachte Material, das erstellt wird, wenn Materialien zusammenführen aktiviert ist. |
| Guttergröße | Fügt dem Unterschema Platz für Bake-Materialien für den obersten Mip-Level hinzu. Gemessen in Texel. |
| Zusammengeführte Materialien erstellen | Erstellt ein flaches Material aus allen Quellkomponentenmaterialien sowie einen neuen Satz von UV-Koordinaten. Dieses Material wird nicht standardmäßig auf jeden Abschnitt angewendet. |
| Vertexdaten in das Mesh baken | Backt Vertexdaten, wie z. B. Vertexfarben und Normalen, in das resultierende Proxy-Mesh. |
| Output UVs | Gibt die angegebenen UV-Kanäle in das zusammengeführte Mesh aus. Quellnetzkomponenten müssen gültige UVs für die angegebenen Kanäle enthalten. |
| LOD-Auswahltyp | Legt fest, welcher LOD-Auswahlmodus bei der Erstellung des zusammengeführten statischen Meshes verwendet werden soll: Alle LOD-Levels verwenden: Verwendet alle verfügbaren LOD-Levels beim Zusammenführen von Actors Spezifischen LOD-Level verwenden: Verwendet den ausgewählten LOD-Level beim Zusammenführen von Actors. Korrekten LOD-Level berechnen: Berechnet das passende LOD-Modell für die angegebene Bildschirmgröße.
|
| Spezifische LOD | Gibt einen LOD-Level an, der aus den Quellmeshes exportiert werden soll. |
| Vertexdaten zum Baken von Material verwenden | Backt Vertexdaten, wie z. B. Vertexfarben und Normalen, in die Bake-Materialien. Nur verfügbar, wenn Materialien zusammenführen ausgewählt ist. |
| Textur-Binning verwenden | Berechnet unterschiedliche Output-Texturgrößen entsprechend ihrer Bedeutung in der endgültigen Atlas-Textur. Nur verfügbar, wenn Materialien zusammenführen ausgewählt ist. |
| Mesh-Lightmap-UVs wiederverwenden | Legt fest, ob die Lightmap-UVs aus dem Quellmesh beim Baking des Materials wiederverwendet werden sollen. Wenn False, wird die Engine einen neuen Satz von UVs generieren. |
| Äquivalente Materialien zusammenführen | Versucht, Materialien zusammenzuführen, die als gleichwertig angesehen werden. Der Prozess kann zu Artefakten im zusammengeführten Mesh führen, wenn die Weltposition oder die Actorposition zur Bestimmung der Ausgabefarbe verwendet wird. |
| Landschaftsauslese verwenden | Verwendet die verfügbare Landschaftsgeometrie, um unsichtbare Dreiecke auszusortieren. Wenn du zum Beispiel ein Baum-Mesh hast, das so platziert wurde, dass die untersten Dreiecke unter der Oberfläche einer Landschaft liegen, dann werden diese verdeckten Dreiecke beim Zusammenführen entfernt. |
| Imposter einschließen | Schließt alle Imposter-LODs ein, die Teil der Quell-Mesh-Komponenten sind. |
| Abstandsfelder zulassen | Erlaubt die Berechnung von Abstandsfeldern für dieses Mesh. Die Deaktivierung dieser Option spart Speicher, wenn das zusammengeführte Mesh nur in der Entfernung gerendert wird. |
| Nanite-aktiviertes Mesh generieren | Aktiviert Nanite auf dem generierten Mesh. |
Proxyeinstellungen
Diese Einstellungen sind nur verfügbar, wenn „Vereinfachtes Netz" ausgewählt ist:
| Einstellung | Beschreibung |
|---|---|
| Bildschirmgröße | Bestimmt die Größe des resultierenden Proxy-Meshes in Pixeln. |
| Korrektes LOD-Modell berechnen | Berechnet, welches LOD-Modell aufgrund der angegebenen Bildschirmgröße ausreichend ist. Dies geschieht durch die Analyse jedes Eingabemeshes und die Auswahl des richtigen Detaillierungsgrades (LOD) auf der Grundlage der jeweiligen LOD-Übergangsgröße. |
| Aufhebung des räumlichen Samplingabstands | Überschreibt bei der Konvertierung mehrerer Quellmeshes für Proxy-LOD-Zusammenführung. Große Geometrien mit kleinem Sampling haben sehr hohe Speicherkosten. |
| Materialeinstellungen | Enthält Einstellungen zur Materialvereinfachung. |
| Zusammenführungsabstand | Abstand, in dem die Meshes zusammengeführt werden sollen. Damit können Lücken wie Türen und Fenster in einer entfernten Geometrie geschlossen werden. |
| Farbe für nicht aufgelöste Geometrie | Weist eine Grundfarbe zu, die angezeigt wird, wenn die zusammengeführte Geometrie nicht mit der Ausgangsgeometrie verknüpft werden kann, z. B. Türen und Fenster, die durch den Zusammenführungsabstand geschlossen wurden. |
| Übertragungsdistanz überschreiben | Überschreibt die Suchdistanz, die bei der Ermittlung von Texturwerten für vereinfachte Geometrie verwendet wird. Wird verwendet, wenn die Einstellungen für den Zusammenführungsabstand nicht Null sind und neue Geometrie in konkaven Ecken erzeugt wird. |
| Winkel der harten Kante | Winkel, in dem eine harte Kante zwischen den Flächen eingeführt wird. Dadurch erhöht sich die Anzahl der Scheitelpunkte und es können zusätzliche UV-Nähte entstehen. Nur empfohlen, wenn keine Normal Maps verwendet werden. |
| Normale Berechnungsmethode | Steuert die Methode zur Berechnung der Normalen für die vereinfachte Geometrie:
|
| Lightmap-Auflösung | Legt die Auflösung der neu erzeugten Lightmap fest. |
| Berechnen der Lightmap-Auflösung | Berechnet die Lightmap-Auflösung durch Summierung der Dimensionen für jedes in den Zusammenführungsprozess einbezogene Mesh. |
| Volumenauslese aktivieren | Ermöglicht die Auslese von Volumen, um Geometrie auszuschließen. |
| Abstandsfelder zulassen | Erlaubt die Berechnung von Abstandsfeldern für dieses Mesh. Die Deaktivierung dieser Option spart Speicher, wenn das zusammengeführte Mesh nur in der Entfernung gerendert wird. |
| Mesh-Lightmap-UVs wiederverwenden | Legt fest, ob die Lightmap-UVs aus dem Quellmesh beim Baking des Materials wiederverwendet werden sollen. Wenn False, wird die Engine einen neuen Satz von UVs generieren. |
| Identische Meshes für das Baken gruppieren | Backt identische Meshes oder Mesh-Instanzen nur einmal. Das Ergebnis ist eine bessere Qualität der Bake-Texturen und eine kürzere Bake-Dauer. Kann zu Diskrepanzen zwischen dem zusammengeführten Mesh und dem visuellen Quell-Mesh führen. |
| Kollision erzeugen | Erzeugt Kollisionen für das zusammengeführte Mesh. |
| Scheitelfarben zulassen | Erlaubt das Speichern von Scheitelfarben im zusammengeführten Mesh. |
| Lightmap-UVs erzeugen | Erzeugt Lightmap-UVs für das zusammengeführte Mesh. |
| Nanite-aktiviertes Mesh generieren | Aktiviert Nanite auf dem generierten Mesh. |
HLOD-Ebenen verwenden
Um HLOD-Proxy-Meshes zu erzeugen, müssen Actors zu einer HLOD-Ebene hinzugefügt und angewiesen werden, HLODs zu erzeugen. Sobald dies geschehen ist, wird ein Commandlet ausgeführt, um die Proxy-Geometrie zu erzeugen.
Derzeit ist das Commandlet die einzige Möglichkeit, HLOD-Proxy-Geometrien zu erzeugen.
Actors hinzufügen
Actors werden derzeit auf folgende Weise zu HLOD-Ebenen hinzugefügt:
-
Die HLOD-Eigenschaft im Detail-Panel eines Actors.
-
Die Eigenschaft Standard-HLOD-Ebene einer Datenebene.
-
Die Eigenschaft Standard-HLOD-Ebene der Welteinstellungen.
Bei Verwendung des Commandlet World Partition Convert sind auch HLOD-Ebenen-Optionen verfügbar. Mit Hilfe der Konvertierungs-Ini-Datei kannst du die Eigenschaften der HLOD-Ebene festlegen:
[/Script/UnrealEd.WorldPartitionConvertCommandlet]
EditorHashClass=Class'/Script/Engine.WorldPartitionEditorSpatialHash'
RuntimeHashClass=Class'/Script/Engine.WorldPartitionRuntimeSpatialHash'
HLODLayerAssetsPath="/Game/WorldPartition/HLODLayers"
DefaultHLODLayerName="HLODLayer_Default"
HLODLayersForActorClasses=(ActorClass=/Game/Blueprint/Base_Tree.Base_Tree_C,HLODLayer="HLODLayer_Tree")
[HLODLayer_Default HLODLayer]
LayerType=MeshMerge
MeshMergeSettings=(TargetLightMapResolution=256,OutputUVs[0]=OutputChannel, ...)
HLODMaterial=/Engine/EngineMaterials/BaseFlattenMaterial.BaseFlattenMaterial
RuntimeGrid="HLODGrid_Default"
LoadingRange=30000.000000
[HLODLayer_Tree HLODLayer]
LayerType=Instancing
RuntimeGrid="HLODGrid_Trees"
LoadingRange=30000.000000
Eine mit dieser Konfiguration konvertierte Welt spezifiziert einen DefaultHLODLayerName (in diesem Beispiel HLODLayer_Default), der unter Verwendung der im entsprechenden .ini-Abschnitt angegebenen Eigenschaften erstellt wird. Actors, die mit HLODLayer_Default erstellt wurden, werden HLODLayer_Tree mit den in diesem Abschnitt der .ini-Datei definierten Eigenschaften zugewiesen.
HLODs generieren
HLODs werden mit dem Commandlet WorldPartitionHLODsBuilder generiert. Wenn du dieses Commandlet ausführst, werden die HLOD-Actors für deine World Partition-Zellen gemäß den Generierungseinstellungen erstellt, die du in deinen HLOD-Ebenen angegeben hast.
HLOD-Actors werden nicht neu erstellt oder gebaut, wenn keine Änderungen an ihren Quell-Actors vorgenommen wurden. Änderungen an den Actors selbst oder an ihren Meshes, Materialien oder Texturen führen dazu, dass der HLOD neu erstellt wird, wenn du das Commandlet erneut ausführst.
Folge den nachstehenden Schritten, um das Commandlet zu verwenden:
-
Öffne in Windows ein Eingabeaufforderungsfenster.
-
Navigiere in der Eingabeaufforderung zunächst zum Speicherort der Datei UE4Editor.exe befindet. Zum Beispiel: „C:\Programme\Epic Games\UE_4.26\Engine\Binaries\Win64".
-
Beginne als Nächstes den Befehl mit dem Namen der .exe-Datei, die das Commandlet ausführt, UE4Editor.exe.
-
Füge die folgenden Argumente hinzu:
` DeinProjekt DeineMap -run=WorldPartitionBuilderCommandlet -AllowCommandletRendering -Builder=WorldPartitionHLODsBuilder`
Dabei steht DeinProjekt für den Namen deines Projektordners und DeineMap für den Namen der Kartendatei, in der du HLODs erstellen möchten.
-
Zusätzlich kann eine der folgenden Optionen angegeben werden, um das Verhalten dieses Befehls zu ändern:
| Option | Beschreibung |
|---|---|
| -SetupHLODs | Richtet die HLOD-Actors für die Zellen der World Partition ein, erstellt aber nicht deren Geometrie. Kann eventuell Actors aktualisieren, löschen oder neu erstellen. |
| -BuildHLODs | Baut die Geometrie für alle vorhandenen HLOD-Actors. |
| -DeleteHLODs | Löscht alle HLOD-Actors. |
HLODs visualisieren
HLOD-Actors können im Viewport des Editors visualisiert werden, während der Status von HLOD-Zellen zur Laufzeit visualisiert werden kann.
Im Editor
Ändere im Editor den Ansichtsmodus auf Detaillierungsgrad-Färbung und wähle Hierarchische LOD-Färbung. Actors, die einer HLOD-Ebene zugewiesen sind, sind grün. Beim Herauszoomen der Ansicht werden HLODs in Blau angezeigt.
Wenn du im Viewport den Ansichtsmodus auf Detaillierungsgrad-Färbung änderst und Hierarchische LOD-Färbung auswählst, werden die Actors, die einer HLOD-Ebene zugewiesen sind, grün angezeigt:
Wenn du die Kamera von den Actors wegbewegst, wird ihr HLOD-Proxy-Mesh in Blau angezeigt:
Während der Laufzeit
Wenn du den Konsolenbefehl wp.Runtime.ToggleDrawRuntimeHash2D zur Laufzeit ausführst, werden die geladenen HLOD-Zellen grün angezeigt.

