Erstellen von 3D-Modellen zur Verwendung auf der Startseite
Die Windows Mixed Reality-Startseite ist der Ausgangspunkt, an dem Benutzer vor dem Starten von Anwendungen landen. Verwenden Sie beim Entwerfen Ihrer Anwendung für Windows Mixed Reality-Headsets ein 3D-Modell als App-Startfeld und platzieren Sie 3D-Deep-Links in die Windows Mixed Reality-Startseite. In diesem Artikel werden die Richtlinien zum Erstellen von 3D-Modellen beschrieben, die mit der Windows Mixed Reality-Startseite kompatibel sind.
Übersicht über die Ressourcenanforderungen
Beim Erstellen von 3D-Modellen für Windows Mixed Reality gibt es einige Anforderungen, die alle Ressourcen erfüllen müssen:
- Exportieren – Objekte müssen im .glb-Dateiformat (binary glTF), .obj oder .fbx bereitgestellt werden.
- Modellierung – Ressourcen müssen kleiner als 10k-Dreiecke sein, nicht mehr als 64 Knoten und 32 Untermesspunkte pro LOD aufweisen.
- Materialien – Texturen dürfen nicht größer als 4096 x 4096 sein, und die kleinste mip-Karte sollte nicht größer als 4 auf beiden Dimensionen sein.
- Animation – Animationen dürfen nicht länger als 20 Minuten bei 30 FPS (36.000 Keyframes) sein und müssen = 8192 Morph-Zielvertizes enthalten <.
- Optimieren – Ressourcen sollten mithilfe des WindowsMRAssetConverter optimiert werden. Erforderlich unter Windows OS-Versionen <= 1709* und empfohlen unter Windows-Betriebssystemversionen >= 1803
Hinweis
Die 3D Viewer-App unterstützt verschiedene Formate und Auflösungen, konvertiert aber letztendlich Modelle in .glb/glTF, bevor sie im Mixed Reality-Zuhause angezeigt werden.
Der Rest dieses Artikels enthält eine detaillierte Übersicht über diese Anforderungen und zusätzliche Richtlinien, um sicherzustellen, dass Ihre Modelle gut mit der Windows Mixed Reality-Startseite funktionieren.
Detaillierte Anleitungen
Exportieren von Modellen
Die Windows Mixed Reality-Startseite erwartet, dass 3D-Objekte mithilfe des GLB-Dateiformats mit eingebetteten Bildern und Binärdaten bereitgestellt werden. Glb ist die binäre Version des glTF-Formats, die ein lizenzfreier Open-Standard für die 3D-Asset-Lieferung ist, die von der Khronos-Gruppe verwaltet wird. Da glTF als Branchenstandard für interoperable 3D-Inhalte entwickelt wird, unterstützt Microsoft daher das Format in Windows-Apps und -Umgebungen. Wenn Sie noch keine glTF-Ressource erstellt haben, bevor Sie eine Liste der unterstützten Exporter und Konverter auf der github-Seite der glTF-Arbeitsgruppe finden können.
Modellierungsrichtlinien
Windows erwartet, dass Ressourcen mithilfe der folgenden Modellierungsrichtlinien generiert werden, um die Kompatibilität mit der Mixed Reality-Heimumgebung sicherzustellen. Berücksichtigen Sie bei der Modellierung in Ihrem Programm Ihrer Wahl die folgenden Empfehlungen und Einschränkungen:
- Die Aufwärtsachse sollte auf "Y" festgelegt werden.
- Die Ressource sollte sich in Richtung der positiven Z-Achse "vorwärts" stellen.
- Alle Ressourcen sollten auf der Bodenebene des Szenenursprungs (0,0,0) erstellt werden.
- Arbeitseinheiten sollten auf Meter und Ressourcen festgelegt werden, damit Ressourcen auf Weltmaßstab erstellt werden können.
- Alle Gitter müssen nicht kombiniert werden, es wird jedoch empfohlen, wenn Sie auf geräteeinschränkte Ressourcen abzielen.
- Alle Gitter sollten ein Material gemeinsam nutzen, wobei nur ein Textursatz für das gesamte Objekt verwendet wird.
- UVs müssen in einer quadratischen Anordnung im 0-1-Raum angeordnet sein. Vermeiden Sie Kacheltexturen, obwohl sie zulässig sind.
- Multi-UVs werden nicht unterstützt.
- Doppelseitige Materialien werden nicht unterstützt.
Dreiecksanzahl und Detailebenen (LODs)
Die Windows Mixed Reality-Startseite unterstützt keine Modelle mit mehr als 10.000 Dreiecken. Es wird empfohlen, Ihre Gitter vor dem Exportieren zu triangulieren, um sicherzustellen, dass sie diese Anzahl nicht überschreiten. Windows MR unterstützt auch optionale Geometrieebenen von Detailebenen (LODs), um eine leistungsfähige und qualitativ hochwertige Erfahrung sicherzustellen. Mit dem WindowsMRAssetConverter können Sie drei Versionen Ihres Modells in einem einzelnen GLB-Modell kombinieren. Windows bestimmt, welche LOD basierend auf der Höhe der Bildschirmfläche angezeigt werden soll, die das Modell aufnimmt. Es werden nur drei LOD-Ebenen mit den folgenden empfohlenen Dreiecksanzahlen unterstützt:
LOD-Ebene | Empfohlene Dreiecksanzahl | Max. Dreiecksanzahl |
---|---|---|
LOD 0 | 10.000 | 10.000 |
LOD 1 | 5\.000 | 10.000 |
LOD 2 | 2\.500 | 10.000 |
Knotenanzahl und Untermessgrenzwerte
Das Windows Mixed Reality-Heim unterstützt keine Modelle mit mehr als 64 Knoten oder 32 Untermessen pro LOD. Knoten sind ein Konzept in der glTF-Spezifikation , das die Objekte in der Szene definiert. Untermeshes werden im Array von Grundtypen im Gitter im Objekt definiert.
Funktion | Beschreibung | Max. Unterstützt | Dokumentation |
---|---|---|---|
Nodes | Objekte in der glTF-Szene | 64 pro LOD | hier |
Untermeshes | Summe der Grundtypen in allen Gittern | 32 pro LOD | hier |
Materialrichtlinien
Texturen sollten mit einem PBR-Metallrauheitsworkflow vorbereitet werden. Erstellen Sie zunächst einen vollständigen Satz von Texturen, einschließlich Albedo, Normal, Okklusion, Metallic und Rauheit. Windows Mixed Reality unterstützt Texturen mit auflösungen bis zu 4096x4096, es wird jedoch empfohlen, dass Sie mit 512x512 erstellen. Texturen sollten bei Auflösungen in Vielfachen von 4 erstellt werden. Dies ist eine Anforderung für das Komprimierungsformat, das in den unten beschriebenen Exportschritten auf Texturen angewendet wird. Beim Generieren von Mip-Karten oder einer Textur muss der niedrigste Mip maximal 4 x 4 sein.
Empfohlene Texturgröße | Maximale Texturgröße | Niedrigster Mip |
---|---|---|
512 × 512 | 4096x4096 | max. 4 x 4 |
Albedo (Basisfarbe) Karte
Rohfarbe ohne Beleuchtungsinformationen. Diese Karte enthält auch die Reflektions- und diffusen Informationen für Metall (weiß in der metallischen Karte) und Insulatorflächen (schwarz in der metallischen Karte).
Normal
Tangent Space Normal karte
Rauheitskarte
Beschreibt die Mikrosurface des Objekts. Weiß 1,0 ist rau schwarz 0,0 ist glatt. Diese Karte gibt dem Objekt den größten Charakter, da er die Oberfläche wirklich beschreibt. Beispielsweise Kratzer, Fingerabdrücke, Smudges, Grime usw.
Umgebungsverknäuschungskarte
Wertskalakarte mit Bereichen verdeckter Licht, die Spiegelungen blockiert
Metallische Karte
Teilt dem Shader mit, ob etwas Metall ist oder nicht. Rohmetall = 1,0 weiß Non-Metal = 0,0 schwarz. Es kann Übergangsgrauwerte geben, die auf etwas hinweisen, das das Rohmetall wie Schmutz bedeckt, aber im Allgemeinen sollte diese Karte nur schwarz und weiß sein.
Optimierungen
Windows Mixed Reality Home bietet eine Reihe von Optimierungen über die glTF-Kernspezifikation, die mit benutzerdefinierten Erweiterungen definiert wurde. Diese Optimierungen sind unter Windows-Versionen <= 1709 erforderlich und werden für neuere Versionen von Windows empfohlen. Sie können jedes glTF 2.0-Modell ganz einfach mithilfe des windows Mixed Reality Asset Converter optimieren, der auf GitHub verfügbar ist. Dieses Tool führt die richtigen Texturverpackungen und Optimierungen aus, wie unten angegeben. Für die allgemeine Verwendung empfehlen wir die Verwendung von WindowsMRAssetConverter, aber wenn Sie mehr Kontrolle über die Oberfläche benötigen und Ihre eigene Optimierungspipeline erstellen möchten, können Sie sich auf die nachstehende detaillierte Spezifikation beziehen.
Hinweis
Eine endgültige Liste der Möglichkeiten für genaue Modellgrenzwerte finden Sie im 3D-Modelloptimierungsartikel zur Verwendung in Dynamics 365-Anwendungen.
Materialien
Um die Ladezeit von Ressourcen in Mixed Reality-Umgebungen zu verbessern, unterstützt Windows MR das Rendern komprimierter DDS-Texturen, die gemäß dem in diesem Abschnitt definierten Texturpaketschema verpackt sind. DDS-Texturen werden mithilfe der MSFT_texture_dds Erweiterung referenziert. Das Komprimieren von Texturen wird dringend empfohlen.
HoloLens
HoloLens-basierte Mixed Reality-Oberflächen erwarten, dass Texturen mithilfe einer 2-Textur-Einrichtung mit der folgenden Verpackungsspezifikation verpackt werden:
glTF-Eigenschaft | Struktur | Verpackungsschema |
---|---|---|
PbrMetallicRoughness | baseColorTexture | Rot (R), Grün (G), Blau (B) |
MSFT_packing_normalRoughnessMetallic | normalRoughnessMetallicTexture | Normal (RG), Rauheit (B), Metallic (A) |
Beim Komprimieren der DDS-Texturen wird für jede Karte die folgende Komprimierung erwartet:
Struktur | Erwartete Komprimierung |
---|---|
baseColorTexture, normalRoughnessMetallicTexture | BC7 |
Immersive Headsets (VR)
PC-basierte Windows Mixed Reality-Umgebungen für immersive (VR)-Headsets erwarten, dass Texturen mithilfe einer 3-Textur-Einrichtung mit der folgenden Verpackungsspezifikation verpackt werden:
Windows OS >= 1803
glTF-Eigenschaft | Struktur | Verpackungsschema |
---|---|---|
PbrMetallicRoughness | baseColorTexture | Rot (R), Grün (G), Blau (B) |
MSFT_packing_occlusionRoughnessMetallic | occlusionRoughnessMetallicTexture | Okklusion (R), Rauheit (G), Metallic (B) |
MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normal (RG) |
Beim Komprimieren der DDS-Texturen wird für jede Karte die folgende Komprimierung erwartet:
Struktur | Erwartete Komprimierung |
---|---|
normalTexture | BC5 |
baseColorTexture, occlusionRoughnessMetallicTexture | BC7 |
Windows OS <= 1709
glTF-Eigenschaft | Struktur | Verpackungsschema |
---|---|---|
PbrMetallicRoughness | baseColorTexture | Rot (R), Grün (G), Blau (B) |
MSFT_packing_occlusionRoughnessMetallic | RauheitMetallicOcclusionTexture | Rauheit (R), Metallic (G), Okklusion (B) |
MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normal (RG) |
Beim Komprimieren der DDS-Texturen wird für jede Karte die folgende Komprimierung erwartet:
Struktur | Erwartete Komprimierung |
---|---|
normalTexture | BC5 |
baseColorTexture, raunessMetallicOcclusionTexture | BC7 |
Hinzufügen von Gitter-LODs
Windows MR verwendet geometrieknoten-LODs zum Rendern von 3D-Modellen in verschiedenen Detailebenen, je nach Bildschirmabdeckung. Obwohl dieses Feature technisch nicht erforderlich ist, wird es für alle Ressourcen empfohlen. Derzeit unterstützt Windows 3 Detailebenen. Der Standard-LOD ist 0, der die höchste Qualität darstellt. Andere LODs werden sequenziell nummeriert, z. B. 1, 2 und werden schrittweise in der Qualität niedriger. Der Windows Mixed Reality Asset Converter unterstützt das Generieren von Ressourcen, die dieser LOD-Spezifikation entsprechen, indem mehrere glTF-Modelle akzeptiert und in einer einzigen Ressource mit gültigen LOD-Ebenen zusammengeführt werden. In der folgenden Tabelle werden die erwarteten LOD-Sortier- und Dreiecksziele beschrieben:
LOD-Ebene | Empfohlene Dreiecksanzahl | Max. Dreiecksanzahl |
---|---|---|
LOD 0 | 10.000 | 10.000 |
LOD 1 | 5\.000 | 10.000 |
LOD 2 | 2\.500 | 10.000 |
Wenn LODs verwendet werden, geben Sie immer drei LOD-Ebenen an. Fehlende LODs führen dazu, dass das Modell nicht unerwartet gerendert wird, da das LOD-System zur fehlenden LOD-Ebene wechselt. glTF 2.0 unterstützt derzeit keine LODs als Teil der Kernspezifikation. LODs sollten mithilfe der MSFT_LOD Erweiterung definiert werden.
Bildschirmabdeckung
LODs werden in Windows Mixed Reality basierend auf einem systemgesteuerten Bildschirmabdeckungswert für jede LOD angezeigt. Objekte, die derzeit einen größeren Teil des Bildschirmbereichs verbrauchen, werden auf einer höheren LOD-Ebene angezeigt. Die Bildschirmabdeckung ist nicht Teil der Kern-glTF 2.0-Spezifikation und muss mithilfe von MSFT_ScreenCoverage im Abschnitt "Extras" der MSFT_lod-Erweiterung angegeben werden.
LOD-Ebene | Empfohlener Bereich | Standardbereich |
---|---|---|
LOD 0 | 100% - 50% | 0.5 |
LOD 1 | Unter 50 % - 20% | 0.2 |
LOD 2 | Unter 20% - 1% | 0.01 |
LOD 4 | Unter 1% | - |
Animationsrichtlinien
Hinweis
Dieses Feature wurde als Teil des Windows 10 April 2018 Update hinzugefügt. In älteren Versionen von Windows werden diese Animationen jedoch nicht wiedergegeben, sie werden jedoch weiterhin geladen, wenn sie gemäß den Anleitungen in diesem Artikel erstellt wurden.
Das Mixed Reality-Zuhause unterstützt animierte glTF-Objekte auf HoloLens und immersiven (VR)-Headsets. Wenn Sie Animationen für Ihr Modell auslösen möchten, müssen Sie die Animationszuordnungserweiterung im glTF-Format verwenden. Mit dieser Erweiterung können Sie Animationen im glTF-Modell basierend auf der Anwesenheit des Benutzers in der Welt auslösen, z. B. eine Animation auslösen, wenn sich der Benutzer nah am Objekt befindet oder während der Betrachtung. Wenn Sie ein glTF-Objekt über Animationen verfügen, aber keine Trigger definieren, werden die Animationen nicht wiedergegeben. Im folgenden Abschnitt wird ein Workflow zum Hinzufügen dieser Trigger zu jedem animierten glTF-Objekt beschrieben.
Extras
Laden Sie zunächst die folgenden Tools herunter, wenn Sie sie noch nicht haben. Diese Tools erleichtern das Öffnen eines glTF-Modells, zeigen sie in der Vorschau an, nehmen Änderungen vor und speichern sie als glTF oder .glb:
Öffnen und Anzeigen einer Vorschau des Modells
Öffnen Sie zunächst das glTF-Modell in VSCode, indem Sie die GLTF-Datei in das Editorfenster ziehen. Wenn Sie eine GLB anstelle einer GLTF-Datei haben, können Sie sie mithilfe des von Ihnen heruntergeladenen addon glTF Tools in VSCode importieren. Wechseln Sie zu "Ansicht> - Befehlspalette", und beginnen Sie dann mit der Eingabe von "glTF" in der Befehlspalette, und wählen Sie "glTF: Importieren aus glb" aus, wodurch eine Dateiauswahl angezeigt wird, mit der Sie eine GLB importieren können.
Nachdem Sie Ihr glTF-Modell geöffnet haben, sollte der JSON-Code im Editorfenster angezeigt werden. Sie können das Modell auch in einer Live-3D-Anzeige anzeigen, indem Sie mit der rechten Maustaste auf den Dateinamen klicken und im Kontextmenü die Befehlsverknüpfung "glTF: Vorschau 3D-Modell" auswählen.
Hinzufügen der Trigger
Animationstrigger werden mithilfe der Animationszuordnungserweiterung zu glTF-Modell-JSON hinzugefügt. Die Animationszuordnungserweiterung wird hier auf GitHub öffentlich dokumentiert (HINWEIS: DIES IST EINE ENTWURFSERWEITERUNG). Um die Erweiterung zu Ihrem Modell hinzuzufügen, scrollen Sie einfach bis zum Ende der glTF-Datei im Editor, und fügen Sie der Datei den Block "extensionsUsed" und "extensions" hinzu, wenn sie noch nicht vorhanden sind. Im Abschnitt "extensionsUsed" fügen Sie einen Verweis auf die Erweiterung "EXT_animation_map" und im Block "Erweiterungen" die Zuordnungen zu den Animationen im Modell hinzu.
Wie in der Spezifikation erwähnt, definieren Sie, was die Animation mit der "semantischen" Zeichenfolge in einer Liste von "Animationen" auslöst, bei der es sich um ein Array von Animationsindizes handelt. Im folgenden Beispiel haben wir die Animation angegeben, die wiedergegeben werden soll, während der Benutzer auf das Objekt blickt:
"extensionsUsed": [
"EXT_animation_map"
],
"extensions" : {
"EXT_animation_map" : {
"bindings": [
{
"semantic": "GAZE",
"animations": [0]
}
]
}
}
Die folgende Animationstriggersemantik wird von der Windows Mixed Reality-Startseite unterstützt.
- "ALWAYS": Ständige Schleife einer Animation
- "HELD": Während der gesamten Dauer wird ein Objekt gepackt.
- "GAZE": Schleifen, während ein Objekt betrachtet wird
- "NÄHERUNG": Schleifen, während sich ein Viewer in der Nähe eines Objekts befindet
- "ZEIGEN": Schleifen, während ein Benutzer auf ein Objekt zeigt
Speichern und Exportieren
Nachdem Sie die Änderungen am glTF-Modell vorgenommen haben, können Sie sie direkt als glTF speichern. Sie können auch mit der rechten Maustaste auf den Namen der Datei im Editor klicken und "glTF: In GLB (Binärdatei)" exportieren, um eine GLB zu exportieren.
Beschränkungen
Animationen können nicht länger als 20 Minuten sein und dürfen nicht mehr als 36.000 Keyframes enthalten (20 Minuten bei 30 FPS). Darüber hinaus überschreiten Morph-zielbasierte Animationen maximal 8192 Morph-Zielvertizes oder weniger. Wenn Sie diese Anzahl überschreiten, wird die animierte Ressource im Windows Mixed Reality-Heim nicht unterstützt.
Funktion | Maximum |
---|---|
Duration | 20 Minuten |
Keyframes | 36.000 |
Morph-Zielvertizes | 8192 |
glTF-Implementierungshinweise
Windows MR unterstützt das Kippen von Geometrie nicht mit negativen Skalierungen. Geometrie mit negativen Skalierungen führt wahrscheinlich zu visuellen Artefakten.
Die glTF-Ressource MUSS auf die Standardszene zeigen, indem das Szenen-Attribut verwendet wird, das von Windows MR gerendert werden soll. Darüber hinaus erfordert das Windows MR glTF-Ladeprogramm vor dem Windows 10 April 2018-Update Accessoren:
- Muss min- und max.-Werte aufweisen.
- Typ SCALAR muss componentType UNSIGNED_SHORT (5123) oder UNSIGNED_INT (5125) sein.
- Typ VEC2 und VEC3 müssen componentType FLOAT (5126) sein.
Die folgenden Materialeigenschaften werden aus der Kern-GlTF 2.0-Spezifikation verwendet, aber nicht erforderlich:
- baseColorFactor, metallicFactor, RauheitFactor
- baseColorTexture: Muss auf eine textur verweisen, die in dds gespeichert ist.
- emissiveTexture: Muss auf eine in dds gespeicherte Textur verweisen.
- emissiveFactor
- alphaMode
Die folgenden Materialeigenschaften werden von der Kernspezifikation ignoriert:
- Alle Multi-UVs
- metalRoughnessTexture: Muss stattdessen microsoft optimierte Texturverpackung verwenden, die unten definiert ist
- normalTexture: Muss stattdessen microsoft optimierte Texturverpackung verwenden, die unten definiert ist
- normalScale
- occlusionTexture: Muss stattdessen microsoft-optimierte Texturverpackung verwenden, die unten definiert ist
- occlusionStrength
Windows MR unterstützt keine primitiven Moduslinien und Punkte.
Es wird nur ein einzelnes UV-Vertex-Attribut unterstützt.
Weitere Ressourcen
- glTF-Exporter und -Konverter
- glTF Toolkit
- glTF 2.0 Spezifikation
- Microsoft glTF LOD-Erweiterungsspezifikation
- PC Mixed Reality Texture Packing Extensions Specification
- HoloLens Mixed Reality Texture Packing-Erweiterungsspezifikation
- Microsoft DDS Textures glTF-Erweiterungsspezifikation