Umgebungs-Assets optimieren

Anwendbare XR‑Geräte
Dieser Leitfaden hilft Ihnen dabei, Erlebnisse für diese Arten von XR-Geräten zu entwickeln.
XR-Headsets
XR-Datenbrille mit Kabel

Ab der Alpha04-Version der Jetpack XR-Bibliotheken gibt es wichtige Änderungen bei der Bereitstellung von Assets für die räumliche Umgebung, 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, die räumliche Umgebungen festlegen.

Für räumliche Umgebungen sind zwei Hauptkomponenten erforderlich:

  • Eine GLB- oder GLTF-Datei für die Geometrie der Umgebung (z .B .die Bodenebene, nahegelegene Objekte) und die primäre visuelle Skybox-Textur, die Nutzer sehen.
  • Eine separate ZIP-Datei mit Informationen zu 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 Spiegelungen auf Objekten, nicht für die visuelle Skybox-Textur selbst.

Warum dieser Ansatz?

Diese aktualisierte Asset-Struktur bietet folgende Vorteile:

  • Kleinere Dateigrößen:Im Vergleich zu früheren Methoden, bei denen beispielsweise eine einzelne HDR-Skybox-Datei mit hoher Auflösung sowohl für die visuelle Darstellung als auch für die Beleuchtungsinformationen verwendet wurde, werden bei diesem Ansatz die Dateigrößen reduziert.
  • Verbesserte Leistung:Durch die Trennung der visuellen Skybox-Textur (im GLB-Format) von den IBL-Daten (in der ZIP-Datei) können Sie jede Komponente unabhängig voneinander optimieren. Dies führt zu einer geringeren Bandbreite für das Lesen von Texturspeicher und zu einem geringeren Stromverbrauch.
  • Optimierte Beleuchtung:Die Verwendung einer Skybox-Ressource mit niedrigerer Auflösung speziell für die Beleuchtungskarte ist für die Leistung von Vorteil, ohne die visuellen Ergebnisse der Beleuchtung von Objekten wesentlich 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

Die GLB-Datei enthält die Geometrie um den Nutzer herum und die visuelle Textur der Skybox. Die Dateigröße Ihrer Geometrie sollte maximal 80 MB betragen.

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

  • Sichtweite:Die Sichtweite für Umgebungen in Android XR beträgt 200 Meter vom Standort des Nutzers. Ihre Skybox-Textur muss dieser Einschränkung entsprechen. Das sorgt für eine optimale Nutzererfahrung, da Parallaxe in dieser Entfernung nicht mehr wahrnehmbar ist.
  • Körpergröße des Nutzers:Die geografischen Gegebenheiten können variieren.Positionieren Sie den Nutzer jedoch auf einer Anhöhe 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 von Polygonen zu unnötigem Stromverbrauch führen kann. Jeder Geometrie-Patch sollte nicht mehr als 10.000 Eckpunkte enthalten.

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

Voraussetzungen für die Optimierung von IBL

Laden Sie das cmgen-Befehlszeilentool herunter:

  • Die aktuelle Version finden Sie im Filament-Repository.
  • Suchen Sie die TGZ-Datei mit der vorkompilierten Version von „cmgen“ für Ihre Plattform und extrahieren Sie sie.
  • Das vorgefertigte 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:

  • Eine EXR-Datei mit niedriger Auflösung, die Ihrer Skybox-Textur entspricht
    • Die Eingabe für die Skybox-Textur sollte eine EXR-Datei sein. cmgen unterstützt zwar auch andere Formate, aber EXRs werden empfohlen, da sie die Informationen zum hohen Dynamikbereich enthalten, die für hochwertige IBLs erforderlich 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 Potenz von 2 sind. Verwenden Sie eine EXR-Datei mit 1.024 × 512 Pixeln. Hinweis: 1.024 × 512 Pixel scheinen eine zu geringe Auflösung zu sein, aber das ist für die Leistung von Vorteil. Bei 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-Bild
    • Dieses Asset muss auch ein Seitenverhältnis von 2:1 haben. Verwenden Sie eine Größe von 100 × 50 Pixel.
    • Sie dient als optimierte Textur für das IBL. Nutzer sehen das nicht, daher konzentrieren wir uns bei diesem Asset auf die Leistungsoptimierung.

Im Folgenden sehen Sie ein Beispiel für die Verwendung von cmgen zum Erstellen der ZIP-Datei für IBL. In diesem Beispiel verwenden wir die Eingabedateien „my_360_skybox_1024_x_512.exr“ und „black_skybox.png“ und erstellen eine ZIP-Datei mit dem Namen „my_ibl .zip“.

# 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 ..