Creare modelli 3D per l'uso nello spazio iniziale

La Windows Mixed Reality home è il punto di partenza in cui gli utenti si trovano prima di avviare le applicazioni. Quando si progetta l'applicazione per Windows Mixed Reality visori visori, usare un modello 3D come launcher dell'app e inserire collegamenti profondi 3D nella Windows Mixed Reality home. Questo articolo illustra le linee guida per la creazione di modelli 3D compatibili con la Windows Mixed Reality home.

Panoramica dei requisiti dell'asset

Quando si creano modelli 3D per Windows Mixed Reality, esistono alcuni requisiti che tutti gli asset devono soddisfare:

  1. Esportazione : gli asset devono essere recapitati nel formato di file con estensione glb (binario glTF), .obj o .fbx
  2. Modellazione : gli asset devono essere inferiori a 10k triangoli, non hanno più di 64 nodi e 32 sottomeshe per LOD
  3. Materiali : le trame non possono essere maggiori di 4096 x 4096 e la mappa mip più piccola non deve essere maggiore di 4 in entrambe le dimensioni
  4. Animazione : le animazioni non possono essere più di 20 minuti a 30 FPS (36.000 fotogrammi chiave) e devono contenere <= 8192 vertici di destinazione del morph
  5. Ottimizzazione: gli asset devono essere ottimizzati usando WindowsMRAssetConverter. Obbligatorio nelle versioni <del sistema operativo Windows = 1709* e consigliato nelle versioni >del sistema operativo Windows = 1803

Nota

L'app Visualizzatore 3D supporta formati e risoluzioni diversi, ma in definitiva converte i modelli in .glb/glTF prima di visualizzarli nella Realtà mista home.

Il resto di questo articolo include una panoramica dettagliata di questi requisiti e linee guida aggiuntive per garantire che i modelli funzionino bene con la Windows Mixed Reality home.

Indicazioni dettagliate

Esportazione di modelli

La Windows Mixed Reality home prevede che gli asset 3D vengano recapitati usando il formato di file con estensione glb con immagini incorporate e dati binari. Glb è la versione binaria del formato glTF, che è uno standard open free royalty per la distribuzione di asset 3D gestito dal gruppo Khronos. Poiché glTF si evolve come standard di settore per il contenuto 3D interoperabile, quindi il supporto di Microsoft per il formato tra app e esperienze di Windows. Se non è stato creato un asset glTF prima di poter trovare un elenco di esportazioni e convertitori supportati nella pagina github del gruppo di lavoro glTF.

Linee guida per la modellazione

Windows prevede che gli asset vengano generati usando le linee guida di modellazione seguenti per garantire la compatibilità con l'esperienza home Realtà mista. Quando si esegue la modellazione nel programma scelto, tenere presente i consigli e le limitazioni seguenti:

  1. L'asse Up deve essere impostato su "Y".
  2. L'asset deve affrontare "avanti" verso l'asse Z positivo.
  3. Tutti gli asset devono essere costruiti sul piano terra all'origine della scena (0.0.0)
  4. Le unità di lavoro devono essere impostate su contatori e asset in modo che gli asset possano essere creati su scala mondiale
  5. Tutte le mesh non devono essere combinate, ma è consigliabile se si punta ai dispositivi vincolati delle risorse
  6. Tutte le mesh devono condividere un materiale, con un solo set di trame usato per l'intero asset
  7. Le UV devono essere disposte in una disposizione quadrata nello spazio 0-1. Evitare trame di tillamento anche se sono consentite.
  8. Multi-UV non sono supportati
  9. I materiali a doppio lato non sono supportati

Conteggi e livelli di dettaglio (LOD)

La Windows Mixed Reality casa non supporta modelli con più di 10.000 triangoli. È consigliabile triangolare le mesh prima dell'esportazione per assicurarsi che non superino questo conteggio. Windows MR supporta anche i livelli facoltativi di geometria dei dettagli (LOD) per garantire un'esperienza efficiente e di alta qualità. WindowsMRAssetConverter consente di combinare 3 versioni del modello in un singolo modello con estensione glb. Windows determina il LOD da visualizzare in base alla quantità di immobili dello schermo che il modello sta prendendo. Sono supportati solo 3 livelli LOD con i numeri di triangoli consigliati seguenti:

Livello LOD Conteggio triangolo consigliato Numero massimo triangolo
LOD 0 10,000 10,000
LOD 1 5\.000 10,000
LOD 2 2\.500 10,000

Conteggi dei nodi e limiti secondari

La Windows Mixed Reality home non supporta modelli con più di 64 nodi o 32 sottomeshe per LOD. I nodi sono un concetto nella specifica glTF che definiscono gli oggetti nella scena. Le sottomeshe sono definite nella matrice di primitive nella mesh nell'oggetto.

Funzionalità Descrizione Max Supportato Documentazione
Nodi Oggetti nella scena glTF 64 per LOD Qui
Sottomeshe Somma delle primitive in tutte le mesh 32 per LOD Qui

Linee guida per il materiale

Le trame devono essere preparate usando un flusso di lavoro di rugosità del metallo PBR. Iniziare creando un set completo di trame, tra cui Albedo, Normal, Occlusion, Metallic e Roughness. Windows Mixed Reality supporta trame con risoluzioni fino a 4096x4096, ma è consigliabile creare a 512x512. Le trame devono essere create a risoluzioni in più di 4. Questo è un requisito per il formato di compressione applicato alle trame nei passaggi di esportazione descritti di seguito. Quando si generano mappe mip o una trama, il mip più basso deve essere un massimo di 4x4.

Dimensioni della trama consigliate Dimensioni massime trama Mip minimo
512x512 4096x4096 max 4x4

Mappa albedo (colore di base)

Colore non elaborato senza informazioni di illuminazione. Questa mappa contiene anche le informazioni riflettiva e diffuse per metallo (bianco nella mappa metallica) e l'insulatore (nero nella mappa metallica) rispettivamente.

Normale

Mappa dello spazio tangente Normale

Mappa della rugosità

Descrive la microsurface dell'oggetto. Bianco 1.0 è grossolano Nero 0.0 è liscia. Questa mappa fornisce l'asset il più carattere, come descrive veramente la superficie. Ad esempio, graffi, impronte digitali, sbavature, grime e così via.

Mappa dell'occlusione ambientale

Mappa della scala dei valori che mostra aree di luce occlusa, che blocca i riflessi

Mappa metallizzata

Indica al shader se qualcosa è metallo o meno. Raw Metal = 1,0 bianco non metal = 0,0 nero. Ci possono essere valori grigi transitori che indicano qualcosa che copre il metallo grezzo, ad esempio sporco, ma in generale questa mappa deve essere solo nera e bianca.

Ottimizzazioni

Windows Mixed Reality home offre una serie di ottimizzazioni oltre alla specifica glTF di base definita usando estensioni personalizzate. Queste ottimizzazioni sono necessarie nelle versioni <di Windows = 1709 e consigliate nelle versioni più recenti di Windows. È possibile ottimizzare facilmente qualsiasi modello glTF 2.0 usando Windows Mixed Reality Asset Converter disponibile in GitHub. Questo strumento eseguirà la compressione e le ottimizzazioni della trama corrette, come specificato di seguito. Per l'utilizzo generale, è consigliabile usare WindowsMRAssetConverter, ma se è necessario un maggiore controllo sull'esperienza e si vuole creare una pipeline di ottimizzazione personalizzata, è possibile fare riferimento alla specifica dettagliata riportata di seguito.

Nota

Per un elenco definitivo delle possibilità per i limiti esatti dei modelli, vedere l'articolo sull'ottimizzazione del modello 3D da usare nelle applicazioni Dynamics 365.

Materiali

Per migliorare il tempo di caricamento degli asset in ambienti Realtà mista, Windows MR supporta il rendering di trame DDS compresse compresse in base allo schema di compressione delle trame definito in questa sezione. Le trame DDS vengono a cui viene fatto riferimento usando l'estensione MSFT_texture_dds. La compressione delle trame è altamente consigliata.

HoloLens

Le esperienze di realtà mista basate su HoloLens prevedono che le trame vengano compresse usando una configurazione a 2 trame usando la specifica di compressione seguente:

glTF, proprietà Trama Schema di compressione
pbr JollyRoughness baseColorTexture Rosso (R), Verde (G), Blu (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessTexicTexture Normale (RG), Rugosità (B), Metallico (A)

Quando si comprimono le trame DDS, è prevista la compressione seguente in ogni mappa:

Trama Compressione prevista
baseColorTexture, normalRoughnessTexicTexture BC7

Visori VR immersive

Le esperienze di Windows Mixed Reality basate su PC per visori VR immersive prevedono che le trame vengano compresse usando una configurazione a 3 trame usando la specifica di compressione seguente:

Sistema operativo >Windows = 1803

glTF, proprietà Trama Schema di compressione
pbr JollyRoughness baseColorTexture Rosso (R), Verde (G), Blu (B)
MSFT_packing_occlusionRoughnessMetallic occlusioneRoughnessTexicTexture Occlusione (R), Rugosità (G), Metallico (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normale (RG)

Quando si comprimono le trame DDS, è prevista la compressione seguente in ogni mappa:

Trama Compressione prevista
normalTexture BC5
baseColorTexture, occlusioneRoughnessTexture BC7
Sistema operativo <Windows = 1709

glTF, proprietà Trama Schema di compressione
pbr JollyRoughness baseColorTexture Rosso (R), Verde (G), Blu (B)
MSFT_packing_occlusionRoughnessMetallic roughnessWardicOcclusionTexture Rugosità (R), Metallic (G), Occlusione (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normale (RG)

Quando si comprimono le trame DDS, è prevista la compressione seguente in ogni mappa:

Trama Compressione prevista
normalTexture BC5
baseColorTexture, roughness TroppeicOcclusionTexture BC7

Aggiunta di LOD mesh

Windows MR usa i LOD dei nodi geometry per eseguire il rendering di modelli 3D in diversi livelli di dettaglio a seconda della copertura dello schermo. Anche se questa funzionalità tecnicamente non è necessaria, è consigliabile per tutti gli asset. Attualmente Windows supporta 3 livelli di dettaglio. Il LOD predefinito è 0, che rappresenta la massima qualità. Altri LOD vengono numerati in sequenza, ad esempio 1, 2 e vengono progressivamente inferiori in qualità. Il Windows Mixed Reality Asset Converter supporta la generazione di asset che soddisfano questa specifica LOD accettando più modelli glTF e unendoli in un singolo asset con livelli LOD validi. La tabella seguente descrive le destinazioni previste per l'ordinamento e il triangolo:

Livello LOD Conteggio triangoli consigliato Numero massimo di triangoli
LOD 0 10,000 10,000
LOD 1 5\.000 10,000
LOD 2 2\.500 10,000

Quando si usano i LOD, specificare sempre 3 livelli LOD. I LOD mancanti causano il rendering imprevisto del modello quando il sistema LOD passa al livello LOD mancante. glTF 2.0 attualmente non supporta i LOD come parte della specifica principale. I LOD devono essere definiti usando l'estensione MSFT_LOD.

Copertura dello schermo

I LOD vengono visualizzati in Windows Mixed Reality in base a un sistema basato sul valore di copertura dello schermo impostato su ogni LOD. Gli oggetti che attualmente utilizzano una parte più ampia dello spazio dello schermo vengono visualizzati a un livello LOD superiore. La copertura dello schermo non fa parte della specifica glTF 2.0 principale e deve essere specificata usando MSFT_ScreenCoverage nella sezione "extra" dell'estensione MSFT_lod.

Livello LOD Intervallo consigliato Intervallo predefinito
LOD 0 100% - 50% 0.5
LOD 1 Sotto il 50% - 20% 0,2
LOD 2 Sotto il 20% - 1% 0,01
LOD 4 Sotto il 1% -

Linee guida per l'animazione

Nota

Questa funzionalità è stata aggiunta come parte dell'aggiornamento di Windows 10 aprile 2018. Nelle versioni precedenti di Windows queste animazioni non verranno tuttavia riprodotte, ma verranno comunque caricate se create in base alle indicazioni riportate in questo articolo.

La casa di realtà mista supporta oggetti glTF animati su visori vr (VR) HoloLens e immersive. Se si desidera attivare animazioni nel modello, è necessario usare l'estensione Mappa di animazione nel formato glTF. Questa estensione consente di attivare animazioni nel modello glTF in base alla presenza dell'utente nel mondo, ad esempio attivare un'animazione quando l'utente è vicino all'oggetto o mentre lo stanno esaminando. Se l'oggetto glTF include animazioni, ma non definisce i trigger delle animazioni non verranno riprodotte. La sezione seguente descrive un flusso di lavoro per aggiungere questi trigger a qualsiasi oggetto glTF animato.

Strumenti

Scaricare prima di tutto gli strumenti seguenti se non sono già presenti. Questi strumenti semplificano l'apertura di qualsiasi modello glTF, l'anteprima, le modifiche e il salvataggio come glTF o .glb:

  1. Visual Studio Code
  2. glTF Tools for Visual Studio Code

Apertura e anteprima del modello

Iniziare aprendo il modello glTF in VSCode trascinando il file glTF nella finestra dell'editor. Se si dispone di un file con estensione glb anziché di un file glTF, è possibile importarlo in VSCode usando l'addon degli strumenti glTF scaricato. Passare a "Visualizza -> Tavolozza comandi" e quindi iniziare a digitare "glTF" nella tavolozza dei comandi e selezionare "glTF: Import from glb", che verrà visualizzata una selezione file con cui importare un file glb.

Dopo aver aperto il modello glTF, verrà visualizzato il codice JSON nella finestra dell'editor. È anche possibile visualizzare in anteprima il modello in un visualizzatore 3D live usando il pulsante destro del mouse sul nome del file e selezionare il comando "glTF: Preview 3D Model" dal menu di clic con il pulsante destro del mouse.

Aggiunta dei trigger

I trigger di animazione vengono aggiunti a JSON del modello glTF usando l'estensione Mappa di animazione. L'estensione della mappa di animazione è documentata pubblicamente in GitHub (NOTA: QUESTA È UN'ESTENSIONE BOZZA). Per aggiungere l'estensione al modello è sufficiente scorrere fino alla fine del file glTF nell'editor e aggiungere il blocco "extensionsUsed" e "extensions" al file se non esistono già. Nella sezione "extensionsUsed" si aggiungerà un riferimento all'estensione "EXT_animation_map" e nel blocco "extensions" si aggiungeranno i mapping alle animazioni nel modello.

Come indicato nella specifica si definisce cosa attiva l'animazione usando la stringa "semantica" in un elenco di "animazioni", ovvero una matrice di indici di animazione. Nell'esempio seguente è stata specificata l'animazione da riprodurre mentre l'utente sta esaminando l'oggetto:

  "extensionsUsed": [
    "EXT_animation_map"
  ],
  "extensions" : {
      "EXT_animation_map" : {
            "bindings": [
                {
                    "semantic": "GAZE",
                    "animations": [0]
                }
            ]
      }
  }

La semantica dei trigger di animazione seguente è supportata dalla Windows Mixed Reality home.

  • "ALWAYS": ciclo costante di un'animazione
  • "HELD": ciclo durante l'intera durata viene afferrato un oggetto.
  • "GAZE": Ciclo durante l'analisi di un oggetto
  • "PROSSIMITÀ": Ciclo mentre un visualizzatore è vicino a un oggetto
  • "POINTING": Ciclo mentre un utente punta a un oggetto

Salvataggio ed esportazione

Dopo aver apportato le modifiche al modello glTF, è possibile salvarlo direttamente come glTF. È anche possibile fare clic con il pulsante destro del mouse sul nome del file nell'editor e selezionare "glTF: Esporta in GLB (file binario) per esportare un file glb.

Restrizioni

Le animazioni non possono essere più di 20 minuti e non possono contenere più di 36.000 fotogrammi chiave (20 minuti a 30 FPS). Inoltre, quando si usano animazioni basate su destinazione morph non superano i vertici di destinazione 8192 o meno. Il superamento di questi conteggi causerà che l'asset animato non sia supportato nella Windows Mixed Reality casa.

Funzionalità Massimo
Durata 20 minuti
Fotogrammi chiave 36,000
Vertici di destinazione Morph 8192

Note sull'implementazione glTF

Windows MR non supporta lo scorrimento della geometria usando scalabilità negative. La geometria con scalabilità negativa probabilmente comporta artefatti visivi.

L'asset glTF DEVE puntare alla scena predefinita usando l'attributo scene da eseguire per il rendering da parte di Windows MR. Inoltre, il caricatore glTF di Windows MR prima dell'aggiornamento di Windows 10 aprile 2018richiede le funzioni di accesso:

  • Deve avere valori min e max.
  • Il tipo SCALAR deve essere componentType UNSIGNED_SHORT (5123) o UNSIGNED_INT (5125).
  • Il tipo VEC2 e VEC3 devono essere componentType FLOAT (5126).

Le proprietà del materiale seguenti vengono usate dalla specifica glTF 2.0 core, ma non obbligatoria:

  • baseColorFactor, metallicFactor, roughnessFactor
  • baseColorTexture: deve puntare a una trama archiviata in dds.
  • emissiveTexture: deve puntare a una trama archiviata in dds.
  • emissiveFactor
  • alphaMode

Le proprietà del materiale seguenti vengono ignorate dalla specifica di base:

  • Tutti i multi-UV
  • metalRoughnessTexture: deve invece usare il pacchetto di trame ottimizzate microsoft definito di seguito
  • normalTexture: è invece necessario usare la compressione di trame ottimizzate microsoft definite di seguito
  • normalScale
  • occlusionTexture: è invece necessario usare la creazione di trame ottimizzate microsoft definite di seguito
  • occlusionStrength

Windows MR non supporta linee e punti di modalità primitiva.

È supportato solo un singolo attributo del vertice UV.

Altre risorse

Vedi anche