Creare modelli 3D per l'uso nello spazio iniziale
La home page di Windows Realtà mista è il punto di partenza in cui gli utenti si trovano prima di avviare le applicazioni. Quando si progetta l'applicazione per i visori VR di Windows Realtà mista, usare un modello 3D come icona di avvio delle app e inserire collegamenti diretti 3D nella home page di Windows Realtà mista. Questo articolo illustra le linee guida per la creazione di modelli 3D compatibili con windows Realtà mista home.
Panoramica dei requisiti degli asset
Quando si creano modelli 3D per Windows Realtà mista, è necessario soddisfare alcuni requisiti per tutti gli asset:
- Esportazione : gli asset devono essere recapitati nel formato di file con estensione glb (binary glTF), .obj o fbx
- Modellazione: gli asset devono essere inferiori a 10.000 triangoli, non hanno più di 64 nodi e 32 sottomessi per LOD
- 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
- Animazione : le animazioni non possono essere più lunghe di 20 minuti a 30 FPS (36.000 fotogrammi chiave) e devono contenere <= 8192 vertici di destinazione morph
- 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 home Realtà mista.
Il resto di questo articolo include una panoramica dettagliata di questi requisiti e linee guida aggiuntive per garantire che i modelli funzionino bene con windows Realtà mista home.
Indicazioni dettagliate
Esportazione di modelli
La home page di Windows Realtà mista prevede che gli asset 3D vengano recapitati usando il formato di file glb con immagini incorporate e dati binari. Glb è la versione binaria del formato glTF, che è uno standard gratuito gratuito per la distribuzione di asset 3D gestito dal gruppo Khronos. Con l'evolversi di glTF come standard di settore per contenuti 3D interoperabili, 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 utilità di esportazione 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 di Realtà mista. Quando si esegue la modellazione nel programma preferito, tenere presenti le raccomandazioni e le limitazioni seguenti:
- L'asse Su deve essere impostato su "Y".
- L'asset deve affrontare "avanti" verso l'asse Z positivo.
- Tutti gli asset devono essere costruiti sul piano terra all'origine della scena (0,0,0)
- Le unità di lavoro devono essere impostate su contatori e asset in modo che gli asset possano essere creati su scala mondiale
- Non è necessario combinare tutte le mesh, ma è consigliabile scegliere come destinazione i dispositivi vincolati alle risorse
- Tutte le mesh devono condividere un solo materiale, con un solo set di trame usato per l'intero asset
- Gli UV devono essere disposti in una disposizione quadrata nello spazio 0-1. Evitare di collegare trame anche se sono consentite.
- I multi-UV non sono supportati
- I materiali a doppio lato non sono supportati
Conteggio dei triangoli e livelli di dettaglio (LOD)
La home page di Windows Realtà mista 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 livelli di dettaglio (LOD) facoltativi per garantire un'esperienza efficiente e di alta qualità. WindowsMRAssetConverter consente di combinare 3 versioni del modello in un singolo modello glb. Windows determina il LOD da visualizzare in base alla quantità di spazio sullo schermo che il modello sta occupando. Sono supportati solo 3 livelli LOD con i conteggi dei triangoli consigliati seguenti:
Livello LOD | Conteggio triangoli consigliato | Numero massimo triangoli |
---|---|---|
LOD 0 | 10,000 | 10,000 |
LOD 1 | 5.000 | 10,000 |
LOD 2 | 2500 | 10,000 |
Conteggi dei nodi e limiti secondari
La home page di Windows Realtà mista non supporta modelli con più di 64 nodi o 32 sottomessi 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 | Massimo supportato | Documentazione |
---|---|---|---|
Nodi | Oggetti nella scena glTF | 64 per LOD | qui |
Sottomessi | Somma di primitive in tutte le mesh | 32 per LOD | qui |
Linee guida materiali
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 Realtà mista supporta trame con risoluzioni fino a 4096x4096, ma è consigliabile creare a 512x512. Le trame devono essere create a risoluzioni in multipli 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 sull'illuminazione. Questa mappa contiene anche le informazioni di riflessione e diffusione per le superfici metalliche (bianche nella mappa metallica) e l'insulatore (nero nella mappa metallica).
Normale
Mappa normale spazio tangente
Mappa di rugosità
Descrive la microsurface dell'oggetto . Bianco 1.0 è grezzo Nero 0.0 è liscio. Questa mappa fornisce all'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 le aree di luce occlusa, che blocca i riflessi
Mappa metallica
Indica allo 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 come lo sporco, ma in generale questa mappa dovrebbe essere solo nero e bianco.
Ottimizzazioni
Windows Realtà mista home offre una serie di ottimizzazioni oltre alla specifica glTF principale definita tramite 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 Realtà mista Asset Converter disponibile in GitHub. Questo strumento eseguirà la compressione e le ottimizzazioni corrette delle trame, 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 delle trame DDS compresse in base allo schema di compressione delle trame definito in questa sezione. Viene fatto riferimento alle trame DDS 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à | Texture | Schema di imballaggio |
---|---|---|
pbr IntraprendeicRoughness | 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:
Texture | Compressione prevista |
---|---|
baseColorTexture, normalRoughnessTexicTexture | BC7 |
Visori VR immersive
Le esperienze windows Realtà mista 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à | Texture | Schema di imballaggio |
---|---|---|
pbr IntraprendeicRoughness | baseColorTexture | Rosso (R), Verde (G), Blu (B) |
MSFT_packing_occlusionRoughnessMetallic | occlusionRoughnessTexture | 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:
Texture | Compressione prevista |
---|---|
normalTexture | BC5 |
baseColorTexture, occlusionRoughnessTexture | BC7 |
Sistema operativo <Windows = 1709
glTF, proprietà | Texture | Schema di imballaggio |
---|---|---|
pbr IntraprendeicRoughness | baseColorTexture | Rosso (R), Verde (G), Blu (B) |
MSFT_packing_occlusionRoughnessMetallic | roughnessInstallicOcclusionTexture | Rugosità (R), Metallico (G), Occlusione (B) |
MSFT_packing_occlusionRoughnessMetallic | normalTexture | Normale (RG) |
Quando si comprimono le trame DDS, è prevista la compressione seguente in ogni mappa:
Texture | Compressione prevista |
---|---|
normalTexture | BC5 |
baseColorTexture, rugositàSocclusionTexture | BC7 |
Aggiunta di LED mesh
Windows MR usa LOD dei nodi geometry per eseguire il rendering di modelli 3D in livelli di dettaglio diversi 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 qualità più elevata. Gli altri LED vengono numerati in sequenza, ad esempio 1, 2 e vengono progressivamente inferiori nella qualità. Windows Realtà mista 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. Nella tabella seguente vengono delineati gli obiettivi di ordinamento e triangolo previsti:
Livello LOD | Conteggio triangoli consigliato | Numero massimo triangoli |
---|---|---|
LOD 0 | 10,000 | 10,000 |
LOD 1 | 5.000 | 10,000 |
LOD 2 | 2500 | 10,000 |
Quando si usano i LED specificano sempre 3 livelli LOD. I LOD mancanti causano il rendering imprevisto del modello perché il sistema LOD passa al livello LOD mancante. glTF 2.0 attualmente non supporta i LED come parte della specifica principale. I LED devono essere definiti usando l'estensione MSFT_LOD.
Copertura dello schermo
I LED vengono visualizzati in Windows Realtà mista in base a un sistema basato sul valore di copertura dello schermo impostato su ogni LOD. Gli oggetti che attualmente utilizzano una parte più grande 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 l'1% | - |
Linee guida per l'animazione
Nota
Questa funzionalità è stata aggiunta come parte dell'aggiornamento di Windows 10 di aprile 2018. Nelle versioni precedenti di Windows queste animazioni non verranno riprodotte, ma verranno comunque caricate se create in base alle indicazioni riportate in questo articolo.
La home page della realtà mista supporta oggetti glTF animati nei visori VR (HoloLens) e immersive. Se vuoi attivare animazioni sul modello, dovrai 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 esamina. Se l'oggetto glTF include animazioni, ma non definisce i trigger, le animazioni non verranno riprodotte. La sezione seguente descrive un flusso di lavoro per l'aggiunta di questi trigger a qualsiasi oggetto glTF animato.
Strumenti
Prima di tutto, scaricare gli strumenti seguenti se non sono già disponibili. Questi strumenti semplificano l'apertura di qualsiasi modello glTF, l'anteprima, le modifiche e il salvataggio come glTF o glb:
Apertura e anteprima del modello
Per iniziare, aprire il modello glTF in VSCode trascinando il file con estensione glTF nella finestra dell'editor. Se si dispone di un file con estensione glb invece di un file con estensione glTF, è possibile importarlo in VSCode usando il componente aggiuntivo glTF Tools scaricato. Passare a "View - Command Palette" (Visualizza -> Riquadro comandi) e quindi iniziare a digitare "glTF" nel riquadro comandi e selezionare "glTF: Import from glb", che consente di visualizzare una selezione file con cui importare un file glb.
Dopo aver aperto il modello glTF, nella finestra dell'editor dovrebbe essere visualizzato il codice JSON. È anche possibile visualizzare in anteprima il modello in un visualizzatore 3D live facendo clic con il pulsante destro del mouse sul nome del file e scegliendo il collegamento al comando "glTF: Preview 3D Model" dal menu di scelta rapida.
Aggiunta dei trigger
I trigger di animazione vengono aggiunti al codice JSON del modello glTF usando l'estensione Mappa di animazione. L'estensione della mappa di animazione è documentata pubblicamente qui su 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 "estensioni" si aggiungeranno i mapping alle animazioni nel modello.
Come indicato nella specifica, definisci 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 guarda l'oggetto:
"extensionsUsed": [
"EXT_animation_map"
],
"extensions" : {
"EXT_animation_map" : {
"bindings": [
{
"semantic": "GAZE",
"animations": [0]
}
]
}
}
La semantica dei trigger di animazione seguente è supportata dalla home page di Windows Realtà mista.
- "ALWAYS": ciclo costante di un'animazione
- "HELD": ciclo durante l'intera durata di afferramento di un oggetto.
- "GAZE": Ciclo durante l'analisi di un oggetto
- "PROXIMITY": ciclo mentre un visualizzatore si trova 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 salvarla direttamente come glTF. È anche possibile fare clic con il pulsante destro del mouse sul nome del file nell'editor e scegliere "glTF: Export to GLB (binary file)" per esportare un file glb.
Restrizioni
Le animazioni non possono essere più lunghe 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. Se si superano questi conteggi, l'asset animato non sarà supportato nella home page di Windows Realtà mista.
Funzionalità | Massimo |
---|---|
Durata | 20 minuti |
Fotogrammi chiave | 36.000 |
Vertici di destinazione del morphing | 8192 |
Note sull'implementazione di glTF
Windows MR non supporta lo scorrimento della geometria usando scale negative. La geometria con scale negative genererà probabilmente artefatti visivi.
L'asset glTF DEVE puntare alla scena predefinita usando l'attributo scene di cui eseguire il rendering da Windows MR. Il caricatore glTF di Windows MR prima dell'aggiornamento di Windows 10 aprile 2018 richiede anche 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à materiali seguenti vengono usate dalla specifica glTF 2.0 principale, 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à materiali seguenti vengono ignorate dalla specifica di base:
- Tutti i multi-UV
- metalRoughnessTexture: deve invece usare la compressione delle trame ottimizzata per Microsoft definita di seguito
- normalTexture: deve invece usare la compressione delle trame ottimizzata per Microsoft definita di seguito
- normalScale
- occlusionTexture: deve invece usare la compressione delle trame ottimizzata per Microsoft definita di seguito
- occlusionStrength
Windows MR non supporta linee e punti in modalità primitiva.
È supportato solo un singolo attributo vertice UV.
Altre risorse
- glTF Exporters and Converters
- glTF Toolkit
- Specifica glTF 2.0
- Specifica dell'estensione LOD Microsoft glTF
- Specifica delle estensioni per la compressione delle trame Realtà mista PC
- Specifica delle estensioni per la compressione delle trame di HoloLens Realtà mista
- Specifica delle estensioni glTF di Microsoft DDS Textures