Umgebungs-Assets optimieren

XR‑Geräte, für die der Leitfaden gilt
Dieser Leitfaden hilft Ihnen dabei, Erlebnisse für die folgenden Arten von XR-Geräten zu entwickeln.
XR‑Headsets
Kabelgebundene XR‑Brillen

Mit der Alpha04-Version der Jetpack XR-Bibliotheken gibt es wichtige Updates dazu, wie Sie Assets für räumliche Umgebungen bereitstellen sollten, um eine optimale Leistung und visuelle Qualität zu erzielen. Diese Änderungen wirken sich auf die Kompatibilität aus und erfordern die Aktualisierung vorhandener Apps, in denen räumliche Umgebungen festgelegt sind.

Für räumliche Umgebungen benötigen Sie zwei Hauptkomponenten:

  • Eine GLB- oder GLTF-Datei für die Geometrie der Umgebung (z .B .die Bodenebene, nahe Objekte) und die primäre visuelle Skybox-Textur, die Nutzer sehen.
  • Eine separate ZIP-Datei mit Informationen zur bildbasierten Beleuchtung (Image Based Lighting, IBL), die mit dem Tool „cmgen“ aus einem EXR-Bild mit hohem Dynamikbereich generiert wurde. Die ZIP-Datei wird für Beleuchtungsberechnungen verwendet, z. B. für Reflexionen auf Objekten, nicht für die visuelle Skybox-Textur selbst.

Warum dieser Ansatz?

Diese aktualisierte Assetstruktur bietet folgende Vorteile:

  • Kleinere Dateien:Im Vergleich zu früheren Methoden, z. B. der Verwendung einer einzelnen hochauflösenden HDR-Skybox-Datei für die visuelle Darstellung und die Beleuchtungsinformationen, werden mit diesem Ansatz die Dateigrößen reduziert.
  • Verbesserte Leistung:Durch die Trennung der visuellen Skybox-Textur (in der GLB-Datei) von den IBL-Daten (in der ZIP-Datei) können Sie jede Komponente unabhängig voneinander optimieren. Dies führt zu einer geringeren Lesebandbreite für den Texturspeicher und einem geringeren Stromverbrauch.
  • Optimierte Beleuchtung:Die Verwendung einer Skybox-Ressource mit niedrigerer Auflösung speziell für die Beleuchtungskarte ist vorteilhaft für die Leistung, ohne die visuellen Ergebnisse der Beleuchtung auf Objekten erheblich zu beeinträchtigen.

Weitere Informationen zum Hinzufügen einer räumlichen Umgebung in Ihrer App finden Sie in unserem Leitfaden zum Hinzufügen von Umgebungen zu Ihrer App.

GLB-Datei optimieren

Ihre GLB-Datei stellt die Geometrie um den Nutzer herum dar und enthält die visuelle Textur Ihrer Skybox. Die Dateigröße Ihrer Geometrie sollte 80 MB nicht überschreiten.

Dazu gibt es eine Reihe von Möglichkeiten, Ihre Umgebung effizienter zu gestalten und gleichzeitig eine hohe Qualität beizubehalten. Die Dichte Ihres Mesh sollte beispielsweise in der Nähe des Nutzers am höchsten sein. Sie können die Dichte für Meshes verringern, die weiter vom Nutzer entfernt sind.

  • Sichtweite:Die Sichtweite für Umgebungen in Android XR beträgt 200 m vom Standort des Nutzers. Ihre Skybox-Textur sollte dieser Einschränkung entsprechen. So wird eine optimale Nutzung ermöglicht, da Parallaxe in dieser Entfernung nicht mehr wahrnehmbar ist.
  • Nutzerhöhe:Die Geografie kann variieren.Positionieren Sie den Nutzer jedoch auf einem Hügel mit einer Höhe von etwa 1,5 Metern, um Überschneidungen mit größeren UI‑Elementen in Apps zu vermeiden.

  • Anzahl der Polygone:Achten Sie auf die Anzahl der Polygone in Ihren GLB-Dateien, da eine hohe Anzahl zu einem unnötigen Stromverbrauch führen kann. Jeder Geometrie-Patch sollte nicht mehr als 10.000 Eckpunkte haben.

  • KTX-Komprimierung:Optimieren Sie die GPU-Leistung Ihrer GLB-Datei, indem Sie dafür sorgen, dass sie Mipmaps und KTX2-Texturen verwendet.

Was Sie zum Optimieren Ihrer IBL benötigen

Laden Sie das Befehlszeilentool „cmgen“ herunter:

  • Die neueste Version finden Sie in the Filament repository.
  • Suchen Sie die TGZ-Datei mit der vorkompilierten Version von „cmgen“ für Ihre Plattform und extrahieren Sie sie.
  • Das vorkompilierte Tool befindet sich im Verzeichnis „/bin“ der extrahierten TGZ-Datei.

Assets, die Sie vorbereiten müssen, um die ZIP-Datei für IBL zu generieren:

  • Ein EXR mit niedriger Auflösung, das Ihrer Skybox-Textur entspricht
    • Die Eingabe für die Skybox-Textur sollte eine EXR-Datei sein. „cmgen“ unterstützt zwar auch andere Formate, EXRs werden jedoch empfohlen, da sie die Informationen zum hohen Dynamikbereich enthalten, die für eine hochwertige IBL entscheidend sind. Bei anderen Formaten wie PNG ist die Beleuchtung weniger präzise.
    • Das Quellbild (EXR) muss ein Seitenverhältnis von 2:1 und Abmessungen haben, die eine Zweierpotenz sind. Verwenden Sie ein EXR mit 1024 × 512 Pixeln. Hinweis: 1024 × 512 Pixel scheinen eine zu niedrige Auflösung zu sein, sind aber vorteilhaft für die Leistung. Für IBL sind die visuellen Ergebnisse für den Nutzer sehr ähnlich wie bei Assets mit einer viel höheren IBL-Auflösung.
  • Ein durchgehend schwarzes PNG
    • Dieses Asset muss ebenfalls ein Seitenverhältnis von 2:1 haben. Verwenden Sie eine Größe von 100 × 50 Pixeln.
    • Dies dient als optimierte Textur für die IBL. Nutzer sehen dieses Asset nicht. Daher konzentrieren wir uns auf die Leistungsoptimierung.

Im Folgenden sehen Sie ein Beispiel für die Verwendung von „cmgen“ zum Erstellen der ZIP-Datei für IBL. Im Beispiel werden die Eingabedateien mit den Namen my_360_skybox_1024_x_512.exr und black_skybox.png verwendet, um eine ZIP-Datei mit dem Namen my_ibl.zip zu erstellen.

# Produce black cubemaps for the texture of the IBL asset.
./cmgen --format=rgb32f --size=128 --extract=./skybox_ibl ./black_skybox.png

# Produce lighting cubemaps and a Spherical Harmonics from EXR
./cmgen --format=rgb32f --size=128 --deploy=./skybox_ibl --ibl-ld=. --ibl-samples=1024 --extract-blur=0.0 --sh-irradiance --sh-shader --sh-output=./skybox_ibl/sh.txt ./my_360_skybox_1024_x_512.exr

# Copy all of the black cubemaps into the other folder.
cp -rf ./skybox_ibl/black_skybox/* ./skybox_ibl/my_360_skybox_1024_x_512

# Rename the directory to reflect that these are old assets.
mv ./skybox_ibl/black_skybox ./skybox_ibl/black_skybox_old

# Rename the directory to reflect that these are your cubemap assets.
mv ./skybox_ibl/my_360_skybox_1024_x_512 ./skybox_ibl/black_skybox

# Change into the child directory.
cd ./skybox_ibl

# Zip all of the cubemap and the Spherical Harmonics assets together.
zip -q my_ibl.zip black_skybox/*

# Return to the directory you started in.
cd ..