Erstellen von 3D-Modellen zur Verwendung auf der Startseite
Das Windows Mixed Reality Home ist der Ausgangspunkt, an dem Benutzer vor dem Starten von Anwendungen landen. Wenn Sie Ihre Anwendung für Windows Mixed Reality Headsets entwerfen, verwenden Sie ein 3D-Modell als App-Starthilfe, und platzieren Sie deep 3D-Links im Windows Mixed Reality Home. In diesem Artikel werden die Richtlinien zum Erstellen von 3D-Modellen beschrieben, die mit der Windows Mixed Reality Home kompatibel sind.
Ressourcenanforderungen – Übersicht
Beim Erstellen von 3D-Modellen für Windows Mixed Reality müssen alle Ressourcen einige Anforderungen erfüllen:
- Exportieren: Ressourcen müssen im GLB-Dateiformat (binary glTF), .obj oder .fbx übermittelt werden.
- Modellierung : Objekte müssen kleiner als 10.000 Dreiecke sein, dürfen nicht mehr als 64 Knoten und 32 Untermeshes pro LOD aufweisen.
- Materialien : Texturen dürfen nicht größer als 4.096 x 4096 sein, und die kleinste Mipmap darf in beiden Dimensionen nicht größer als 4 sein.
- Animation : Animationen dürfen bei 30 FPS (36.000 Keyframes) nicht länger als 20 Minuten sein und müssen = 8192 Morphzielvertices enthalten <.
- Optimieren: Ressourcen sollten mithilfe von WindowsMRAssetConverter optimiert werden. Erforderlich für Windows Betriebssystemversionen <= 1709* und empfohlen für Windows Betriebssystemversionen >= 1803
Hinweis
Die 3D-Viewer-App unterstützt verschiedene Formate und Auflösungen, konvertiert Modelle jedoch letztendlich in GLB/GLTF, bevor sie im Mixed Reality Home angezeigt werden.
Der Rest dieses Artikels enthält eine detaillierte Übersicht über diese Anforderungen und zusätzliche Richtlinien, um sicherzustellen, dass Ihre Modelle mit der Windows Mixed Reality gut funktionieren.
Ausführliche Anleitung
Exportieren von Modellen
Das Windows Mixed Reality Home erwartet, dass 3D-Objekte im GLB-Dateiformat mit eingebetteten Bildern und Binärdaten bereitgestellt werden. Glb ist die binäre Version des glTF-Formats, bei der es sich um einen kostenlosen kostenlosen Standard für die Übermittlung von 3D-Medienobjekten handelt, der von der Gruppe "Lbronos" verwaltet wird. Da glTF sich als Branchenstandard für interoperable 3D-Inhalte weiterentwickelt, wird auch die Unterstützung des Formats durch Microsoft über Windows Apps und Benutzererfahrungen hinweg unterstützt. Wenn Sie noch kein glTF-Medienobjekt erstellt haben, finden Sie auf der GitHub-Seite der glTF-Arbeitsgruppe eine Liste der unterstützten Exporter und Konverter .
Modellierungsrichtlinien
Windows erwartet, dass Ressourcen mithilfe der folgenden Modellierungsrichtlinien generiert werden, um die Kompatibilität mit der Mixed Reality Home-Erfahrung sicherzustellen. Beachten Sie beim Modellieren in Ihrem Programm Ihrer Wahl die folgenden Empfehlungen und Einschränkungen:
- Die Up-Achse sollte auf "Y" festgelegt werden.
- Das Objekt sollte in Richtung der positiven Z-Achse "vorwärts" stehen.
- Alle Objekte sollten auf der Bodenebene am Szenenursprung (0,0,0) erstellt werden.
- Arbeitseinheiten sollten auf Meter und Ressourcen festgelegt werden, damit Ressourcen weltweit erstellt werden können.
- Alle Gitternetze müssen nicht kombiniert werden, aber es wird empfohlen, wenn Sie auf Geräte mit eingeschränkten Ressourcen abzielen.
- Alle Gitternetze sollten ein Material gemeinsam nutzen, wobei nur ein Textursatz für das gesamte Medienobjekt verwendet wird.
- UVs müssen in einer quadratischen Anordnung im Bereich 0-1 angeordnet werden. Vermeiden Sie Kacheltexturen, obwohl sie zulässig sind.
- Mehrere UVs werden nicht unterstützt.
- Doppelseitige Materialien werden nicht unterstützt.
Dreiecksanzahl und Detailebenen (LODs)
Das Windows Mixed Reality Home unterstützt keine Modelle mit mehr als 10.000 Dreiecken. Es wird empfohlen, ihre Gitternetze vor dem Export zu triangulieren, um sicherzustellen, dass sie diese Anzahl nicht überschreiten. Windows MR unterstützt auch optionale Detailgeometrieebenen (LODs), um eine leistungsfähige und hochwertige Erfahrung sicherzustellen. WindowsMRAssetConverter hilft Ihnen, drei Versionen Ihres Modells in einem einzelnen GLB-Modell zu kombinieren. Windows bestimmt, welche LOD basierend auf der Menge der Bildschirmfläche angezeigt werden soll, die das Modell in Rechnung stellt. Es werden nur drei LOD-Ebenen mit den folgenden empfohlenen Dreieckszahlen unterstützt:
| LOD-Ebene | Empfohlene Dreiecksanzahl | Maximale Anzahl von Dreiecken |
|---|---|---|
| LOD 0 | 10.000 | 10.000 |
| LOD 1 | 5\.000 | 10.000 |
| LOD 2 | 2\.500 | 10.000 |
Knotenanzahl und Untermeshlimits
Das Windows Mixed Reality Home unterstützt keine Modelle mit mehr als 64 Knoten oder 32 Untermeshes pro LOD. Knoten sind ein Konzept in der glTF-Spezifikation , das die Objekte in der Szene definiert. Untermeshes werden im Array von Primitiven im Gittermodell im -Objekt definiert.
| Funktion | BESCHREIBUNG | Max. Unterstützt | Dokumentation |
|---|---|---|---|
| Nodes | Objekte in der glTF-Szene | 64 pro LOD | Hier |
| Untermeshes | Summe der Primitive in allen Gitternetzen | 32 pro LOD | Hier |
Materialrichtlinien
Texturen sollten mit einem PBR-Metalrauheitsworkflow vorbereitet werden. Erstellen Sie zunächst einen vollständigen Satz von Texturen, einschließlich Albedo, Normal, Occlusion, Texture und Roughness. Windows Mixed Reality unterstützt Texturen mit Auflösungen von bis zu 4096 x 4096, es wird jedoch empfohlen, dass Sie bei 512x512 erstellen. Texturen sollten mit 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 Mipmaps oder einer Textur muss der niedrigste Mip maximal 4x4 sein.
| Empfohlene Texturgröße | Maximale Texturgröße | Niedrigster Mip |
|---|---|---|
| 512 × 512 | 4096x4096 | max. 4 x 4 |
Albedo-Karte (Basisfarbe)
Rohfarbe ohne Beleuchtungsinformationen. Diese Karte enthält auch die Reflektions- und diffusen Informationen für die Oberflächen metal (weiß in der Kartenkarte) bzw. des Insulators (schwarz in der Kartenkarte).
Normal
Tangens space Normal map
Rauheitszuordnung
Beschreibt die Microsurface des -Objekts. Weiß 1.0 ist ungefähr Schwarz 0,0 ist reibungslos. Diese Karte gibt dem Medienobjekt das meiste Zeichen, da es die Oberfläche wirklich beschreibt. Beispiele hierfür sind Scratchs, Fingerabdrücke, Smudges, Füge usw.
Umgebungsverdeckungskarte
Wertskalakarte mit Bereichen des verdeckten Lichts, die Reflektionen blockieren
Karte "Maps"
Teilt dem Shader mit, ob etwas metal ist oder nicht. Raw Metal = 1,0 weiß Non-Metal = 0,0 schwarz. Es können graue Übergangswerte vorhanden sein, die auf etwas hinweisen, das das Rohmaterial abdeckt, z. B. Bekleidung, aber im Allgemeinen sollte diese Karte nur schwarz und weiß sein.
Optimierungen
Windows Mixed Reality Home bietet eine Reihe von Optimierungen, die auf der mithilfe von benutzerdefinierten Erweiterungen definierten GlTF-Kernspezifikation aufstellen. Diese Optimierungen sind für Windows Versionen <= 1709 erforderlich und werden für neuere Versionen von Windows empfohlen. Sie können problemlos jedes glTF 2.0-Modell mit dem Windows Mixed Reality Asset Converter optimieren, der auf GitHub verfügbar ist. Dieses Tool führt das richtige Packen und Optimieren der Textur aus, wie unten angegeben. Für die allgemeine Verwendung empfehlen wir die Verwendung von WindowsMRAssetConverter. Wenn Sie jedoch mehr Kontrolle über die Benutzeroberfläche benötigen und Eine eigene Optimierungspipeline erstellen möchten, können Sie sich die unten aufgeführte ausführliche Spezifikation anlesen.
Hinweis
Eine definitive Liste der Möglichkeiten für genaue Modellgrenzwerte finden Sie im Artikel 3D-Modelloptimierung für die Verwendung in Dynamics 365-Anwendungen.
Materialien
Um die Ladezeit von Medienobjekten in Mixed Reality Umgebungen zu verbessern Windows MR das Rendern komprimierter DDS-Texturen unterstützt, die gemäß dem in diesem Abschnitt definierten Texturkomprimierungsschema gepackt sind. Auf DDS-Texturen wird mithilfe der erweiterung MSFT_texture_dds verwiesen. Das Komprimieren von Texturen wird dringend empfohlen.
HoloLens
HoloLens-basierte Mixed Reality-Erfahrungen erwarten, dass Texturen mit einer 2-Textur-Einrichtung mit der folgenden Packspezifikation gepackt werden:
| glTF-Eigenschaft | Struktur | Komprimierungsschema |
|---|---|---|
| pbrHerricRoughness | baseColorTexture | Rot (R), Grün (G), Blau (B) |
| MSFT_packing_normalRoughnessMetallic | normalRoughnessAturIcTexture | Normal (RG), Rauheit (B), Metall (A) |
Beim Komprimieren der DDS-Texturen wird auf jeder Karte die folgende Komprimierung erwartet:
| Struktur | Erwartete Komprimierung |
|---|---|
| baseColorTexture, normalRoughnessColoricTexture | BC7 |
Immersive Headsets (VR)
PC-basierte Windows Mixed Reality für immersive Headsets (VR) erwarten, dass Texturen mithilfe einer 3-Textur-Einrichtung mit der folgenden Komprimierungsspezifikation gepackt werden:
Windows Betriebssystem >= 1803
| glTF-Eigenschaft | Struktur | Komprimierungsschema |
|---|---|---|
| pbrHerricRoughness | baseColorTexture | Rot (R), Grün (G), Blau (B) |
| MSFT_packing_occlusionRoughnessMetallic | occlusionRoughnessRobicTexture | Okklusion (R), Rauheit (G), Metall (B) |
| MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normal (RG) |
Beim Komprimieren der DDS-Texturen wird auf jeder Karte die folgende Komprimierung erwartet:
| Struktur | Erwartete Komprimierung |
|---|---|
| normalTexture | BC5 |
| baseColorTexture, occlusionRoughnessColoricTexture | BC7 |
Windows Betriebssystem <= 1709
| glTF-Eigenschaft | Struktur | Komprimierungsschema |
|---|---|---|
| pbrHerricRoughness | baseColorTexture | Rot (R), Grün (G), Blau (B) |
| MSFT_packing_occlusionRoughnessMetallic | roughnessRobicOcclusionTexture | Rauheit (R), Metall (G), Okklusion (B) |
| MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normal (RG) |
Beim Komprimieren der DDS-Texturen wird auf jeder Karte die folgende Komprimierung erwartet:
| Struktur | Erwartete Komprimierung |
|---|---|
| normalTexture | BC5 |
| baseColorTexture, roughnessColoricOcclusionTexture | BC7 |
Hinzufügen von Mesh-LODs
Windows MR verwendet LoDs für Geometrieknoten, um 3D-Modelle je nach Bildschirmabdeckung in unterschiedlichen Detailebenen zu rendern. Obwohl dieses Feature technisch nicht erforderlich ist, wird es für alle Ressourcen empfohlen. Derzeit unterstützt Windows drei Detailebenen. Die Standard-LOD ist 0, was die höchste Qualität darstellt. Andere LODs werden sequenziell nummeriert, z. B. 1, 2, und erhalten progressiv eine niedrigere Qualität. Der Windows Mixed Reality Asset Converter unterstützt das Generieren von Medienobjekten, die dieser LOD-Spezifikation entsprechen, indem mehrere glTF-Modelle akzeptiert und in einem einzelnen Medienobjekt mit gültigen LOD-Ebenen zusammengeführt werden. In der folgenden Tabelle werden die erwarteten LOD-Sortier- und Dreiecksziele beschrieben:
| LOD-Ebene | Empfohlene Dreiecksanzahl | Maximale Anzahl von Dreiecken |
|---|---|---|
| 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 3 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 loDs derzeit nicht als Teil der Kernspezifikation. LODs sollten mithilfe der MSFT_LOD-Erweiterung definiert werden.
Bildschirmabdeckung
LODs werden in Windows Mixed Reality basierend auf einem System angezeigt, das durch den für jede LOD festgelegten Bildschirmabdeckungswert gesteuert wird. Objekte, die derzeit einen größeren Teil des Bildschirmbereichs verbrauchen, werden auf einer höheren LOD-Ebene angezeigt. Die Bildschirmabdeckung ist kein Teil der GlTF 2.0-Kernspezifikation und muss mit 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 % bis 20 % | 0.2 |
| LOD 2 | Unter 20 % bis 1 % | 0.01 |
| LOD 4 | Unter 1 % | - |
Richtlinien für Animationen
Hinweis
Dieses Feature wurde im Rahmen Windows 10 April 2018-Updates hinzugefügt. Bei älteren Versionen von Windows werden diese Animationen nicht wiedergegeben. Sie werden jedoch weiterhin geladen, wenn sie gemäß der Anleitung in diesem Artikel erstellt wurden.
Die Mixed Reality Startumgebung unterstützt animierte glTF-Objekte auf HoloLens und immersiven Headsets (VR). Wenn Sie Animationen für Ihr Modell auslösen möchten, müssen Sie die Animation Map-Erweiterung im glTF-Format verwenden. Mit dieser Erweiterung können Sie Animationen im glTF-Modell auslösen, die auf der Präsenz des Benutzers in der Welt basieren, z. B. eine Animation auslösen, wenn sich der Benutzer in der Nähe des Objekts befindet oder wenn er es ansieht. Wenn das glTF-Objekt Über Animationen verfügt, aber keine Trigger definiert, werden die Animationen nicht wiedergegeben. Im folgenden Abschnitt wird ein Workflow zum Hinzufügen dieser Trigger zu jedem animierten glTF-Objekt beschrieben.
Tools
Laden Sie zunächst die folgenden Tools herunter, falls sie noch nicht vorhanden sind. Mit diesen Tools können Sie problemlos ein beliebiges glTF-Modell öffnen, eine Vorschau anzeigen, Änderungen vornehmen und als glTF oder .glb zurückspeichern:
Öffnen und Anzeigen der Vorschau des Modells
Öffnen Sie zunächst das glTF-Modell in VSCode, indem Sie die GLTF-Datei in das Editorfenster ziehen. Wenn Sie über eine GLB-Datei anstelle einer GLTF-Datei verfügen, können Sie sie mithilfe des heruntergeladenen GlTF Tools-Add-Ons 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: Import from glb" aus. Daraufhin wird eine Dateiauswahl angezeigt, 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 einem Live-3D-Viewer anzeigen, indem Sie mit der rechten Maustaste auf den Dateinamen klicken und im Kontextmenü die Befehlsverknüpfung "glTF: Preview 3D Model" auswählen.
Hinzufügen der Trigger
Animationstrigger werden dem JSON-Code des glTF-Modells mithilfe der Animation Map-Erweiterung hinzugefügt. Die Animationszuordnungserweiterung ist hier auf GitHub öffentlich dokumentiert (HINWEIS: DIES IST EINE ENTWURFSERWEITERUNG). Um ihrem Modell die Erweiterung hinzuzufügen, scrollen Sie einfach zum Ende der glTF-Datei im Editor, und fügen Sie der Datei den Block "extensionsUsed" und "extensions" hinzu, sofern sie noch nicht vorhanden sind. Im Abschnitt "extensionsUsed" fügen Sie einen Verweis auf die Erweiterung "EXT_animation_map" hinzu, und im Block "extensions" fügen Sie Ihre Zuordnungen zu den Animationen im Modell hinzu.
Wie in der Spezifikation erwähnt, definieren Sie, was die Animation mithilfe 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 zeigt:
"extensionsUsed": [
"EXT_animation_map"
],
"extensions" : {
"EXT_animation_map" : {
"bindings": [
{
"semantic": "GAZE",
"animations": [0]
}
]
}
}
Die folgende Semantik für Animationstrigger wird vom Windows Mixed Reality Home unterstützt.
- "ALWAYS": Eine Animation wird ständig in Schleife schleifen.
- "HELD": Ein Objekt wird während der gesamten Dauer in eine Schleife gepackt.
- "GAZE": Schleifen, während ein Objekt betrachtet wird
- "PROXIMITY": Schleifen, während sich ein Viewer in der Nähe eines Objekts befindet
- "POINTING": Schleifen, während ein Benutzer auf ein Objekt verweist
Speichern und Exportieren
Nachdem Sie die Änderungen an Ihrem glTF-Modell vorgenommen haben, können Sie es direkt als glTF speichern. Sie können auch mit der rechten Maustaste auf den Namen der Datei im Editor klicken und "glTF: Export to GLB (binary file)" auswählen, um eine GLB zu exportieren.
Beschränkungen
Animationen dürfen nicht länger als 20 Minuten sein und dürfen nicht mehr als 36.000 Keyframes enthalten (20 Minuten bei 30 FPS). Wenn Sie zielbasierte Morph-Animationen verwenden, dürfen 8192 Morph-Zielvertices oder weniger nicht überschritten werden. Eine Überschreitung dieser Anzahl führt dazu, dass die animierte Ressource im Windows Mixed Reality Home nicht unterstützt wird.
| Funktion | Maximum |
|---|---|
| Duration | 20 Minuten |
| Keyframes | 36.000 |
| Morph Target Vertices | 8192 |
GlTF-Implementierungshinweise
Windows MR unterstützt das Spiegeln von Geometrien mit negativen Skalen nicht. Geometrie mit negativen Skalen führt wahrscheinlich zu visuellen Artefakten.
Das glTF-Medienobjekt MUSS mithilfe des Szenenattributs, das von Windows MR gerendert werden soll, auf die Standardszene verweisen. Darüber hinaus werden für das Windows MR glTF-Ladeprogramm vor dem Update vom Windows 10. April 2018 Accessoren erforderlich:
- 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 GlTF 2.0-Kernspezifikation verwendet, sind jedoch nicht erforderlich:
- baseColorFactor,factorFactor, roughnessFactor
- baseColorTexture: Muss auf eine in dds gespeicherte Textur verweisen.
- 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 die von Microsoft optimierte Texturfüllung verwenden, die unten definiert ist.
- normalTexture: Muss stattdessen die von Microsoft optimierte Texturfüllung verwenden, die unten definiert ist.
- normalScale
- occlusionTexture: Muss stattdessen die von Microsoft optimierte Texturfüllung verwenden, die unten definiert ist.
- occlusionStrength
Windows MR unterstützt keine Linien und Punkte im primitiven Modus.
Es wird nur ein einzelnes UV-Scheitelpunktattribut unterstützt.
Weitere Ressourcen
- glTF-Exporter und -Konverter
- glTF Toolkit
- glTF 2.0-Spezifikation
- Microsoft glTF LOD-Erweiterungsspezifikation
- Spezifikation der PC Mixed Reality Texture Packing Extensions
- spezifikation für HoloLens Mixed Reality Texture Packing-Erweiterungen
- Microsoft DDS Textures glTF extensions specification (Microsoft DDS Textures glTF-Erweiterungsspezifikation)