Dela via


Skapa 3D-modeller för användning i hemmet

Windows Mixed Reality-hemmet är startpunkten där användarna landar innan de startar program. När du utformar ditt program för Windows Mixed Reality-headset använder du en 3D-modell som appstartare och placerar 3D-djuplänkar i Windows Mixed Reality-hemmet. Den här artikeln beskriver riktlinjerna för att skapa 3D-modeller som är kompatibla med Windows Mixed Reality-hemmet.

Översikt över tillgångskrav

När du skapar 3D-modeller för Windows Mixed Reality finns det vissa krav som alla tillgångar måste uppfylla:

  1. Exportera – Tillgångar måste levereras i filformatet .glb (binär glTF), .obj eller .fbx
  2. Modellering – Tillgångar måste vara mindre än 10 000 trianglar, ha högst 64 noder och 32 underblad per LOD
  3. Material – Texturer får inte vara större än 4 096 x 4 096 och den minsta mip-kartan får inte vara större än 4 på någon av dimensionerna
  4. Animering – Animeringar får inte vara längre än 20 minuter vid 30 FPS (36 000 nyckelrutor) och måste innehålla <= 8 192 morfningsmålhörn
  5. Optimera – Tillgångar bör optimeras med hjälp av WindowsMRAssetConverter. Krävs för Windows OS-versioner <= 1709* och rekommenderas i Windows OS-versioner >= 1803

Kommentar

3D Viewer-appen stöder olika format och upplösningar, men konverterar i slutändan modeller till .glb/glTF innan de visas i Mixed Reality-hemmet.

Resten av den här artikeln innehåller en detaljerad översikt över dessa krav och extra riktlinjer för att säkerställa att dina modeller fungerar bra med Windows Mixed Reality-hemmet.

Detaljerad vägledning

Exportera modeller

Windows Mixed Reality-hemmet förväntar sig att 3D-tillgångar levereras med filformatet .glb med inbäddade bilder och binära data. Glb är den binära versionen av glTF-formatet, som är en royaltyfri öppen standard för 3D-tillgångsleverans som underhålls av Khronos-gruppen. Allt eftersom glTF utvecklas som branschstandard för interoperabelt 3D-innehåll, så kommer Microsofts stöd för formatet i Windows-appar och -upplevelser att fungera. Om du inte har skapat en glTF-tillgång innan du hittar en lista över exportörer och konverterare som stöds på github-sidan för glTF-arbetsgrupper.

Riktlinjer för modellering

Windows förväntar sig att tillgångar genereras med hjälp av följande modelleringsriktlinjer för att säkerställa kompatibilitet med Mixed Reality-hemupplevelsen. Tänk på följande rekommendationer och begränsningar när du modellerar i ditt valfritt program:

  1. Upp-axeln ska vara inställd på "Y".
  2. Tillgången bör mötas "framåt" mot den positiva Z-axeln.
  3. Alla tillgångar ska byggas på markplanet vid platsens ursprung (0,0,0)
  4. Arbetsenheter ska ställas in på mätare och tillgångar så att tillgångar kan skapas i världsskala
  5. Alla nät behöver inte kombineras, men vi rekommenderar att du riktar in dig på resursbegränsade enheter
  6. Alla nät ska dela ett material, där endast en strukturuppsättning används för hela tillgången
  7. UV:er måste anges i ett fyrkantigt arrangemang i 0-1-utrymmet. Undvik att lägga till texturer även om de är tillåtna.
  8. Multi-UV:er stöds inte
  9. Dubbelsidigt material stöds inte

Triangelantal och detaljnivåer (LOD)

Windows Mixed Reality-hemmet stöder inte modeller med fler än 10 000 trianglar. Vi rekommenderar att du sorterar dina nät innan du exporterar för att säkerställa att de inte överskrider det här antalet. Windows MR har också stöd för valfria geometrinivåer (LOD) för att säkerställa en högpresterande och högkvalitativ upplevelse. WindowsMRAssetConverter hjälper dig att kombinera tre versioner av din modell till en enda .glb-modell. Windows avgör vilken LOD som ska visas baserat på mängden skärmfastigheter som modellen tar upp. Endast 3 LOD-nivåer stöds med följande rekommenderade triangelantal:

LOD-nivå Rekommenderat triangelantal Maximalt antal trianglar
LOD 0 10,000 10,000
LOD 1 5 000 10,000
LOD 2 2 500 10,000

Antal noder och undermappsgränser

Windows Mixed Reality-hemmet stöder inte modeller med fler än 64 noder eller 32 underblad per LOD. Noder är ett begrepp i glTF-specifikationen som definierar objekten i scenen. Underblad definieras i matrisen med primitiver på nätet i objektet.

Funktion beskrivning Maximalt stöd Dokumentation
Noder Objekt i glTF-scenen 64 per LOD Här
Underblad Summan av primitiver på alla nät 32 per LOD Här

Riktlinjer för material

Texturer bör förberedas med hjälp av ett PBR metall grovhet arbetsflöde. Börja med att skapa en fullständig uppsättning texturer som Albedo, Normal, Occlusion, Metallic och Roughness. Windows Mixed Reality stöder texturer med upplösningar upp till 4096x4096, men vi rekommenderar att du skriver på 512x512. Texturer bör redigeras vid upplösningar i multiplar av 4. Detta är ett krav för komprimeringsformatet som tillämpas på texturer i de exportsteg som beskrivs nedan. När du genererar mip-kartor eller en struktur måste den lägsta mip vara högst 4x4.

Rekommenderad strukturstorlek Maximal texturstorlek Lägsta Mip
512 × 512 4096x4096 max 4x4

Albedo-karta (basfärg)

Rå färg utan belysningsinformation. Den här kartan innehåller också reflekterande och diffus information för metall (vit på metallkartan) respektive isolatorytor (svart på metallkartan).

Normal

Normalkarta för tangentutrymme

Grovhetskarta

Beskriver objektets mikroyta. Vit 1.0 är grov Svart 0.0 är jämn. Den här kartan ger tillgången mest karaktär, eftersom den verkligen beskriver ytan. Till exempel repor, fingeravtryck, fläckar, smuts och så vidare.

Karta över omgivande ocklusion

Värdeskalningskarta som visar områden med ockluderat ljus, som blockerar reflektioner

Metallisk karta

Meddelar skuggningen om något är metall eller inte. Raw Metal = 1,0 vit Icke-metall = 0,0 svart. Det kan finnas övergångsgrå värden som indikerar något som täcker den råa metallen, till exempel smuts, men i allmänhet bör den här kartan endast vara svartvit.

Optimeringar

Windows Mixed Reality Home erbjuder en serie optimeringar ovanpå kärn-glTF-specifikationen som definieras med hjälp av anpassade tillägg. Dessa optimeringar krävs i Windows-versioner <= 1709 och rekommenderas för nyare versioner av Windows. Du kan enkelt optimera valfri glTF 2.0-modell med hjälp av Windows Mixed Reality Asset Converter som är tillgänglig på GitHub. Det här verktyget utför rätt texturpackning och optimeringar enligt beskrivningen nedan. För allmän användning rekommenderar vi att du använder WindowsMRAssetConverter, men om du behöver mer kontroll över upplevelsen och vill skapa en egen optimeringspipeline kan du läsa den detaljerade specifikationen nedan.

Kommentar

En slutgiltig lista över vilka möjligheter det finns för exakta modellgränser finns i 3D-modelloptimeringsartikeln för användning i Dynamics 365-program.

Material

För att förbättra inläsningstiden för tillgångar i Mixed Reality-miljöer stöder Windows MR återgivning av komprimerade DDS-texturer packade enligt det strukturpaketeringsschema som definieras i det här avsnittet. DDS-texturer refereras med hjälp av tillägget MSFT_texture_dds. Komprimering av texturer rekommenderas starkt.

HoloLens

HoloLens-baserade upplevelser för mixad verklighet förväntar sig att texturer packas med hjälp av en konfiguration med 2 texturer med hjälp av följande förpackningsspecifikation:

glTF-egenskap Textur Förpackningsschema
pbrMetallicRoughness baseColorTexture Röd (R), grön (G), blå (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessMetallicTexture Normal (RG), grovhet (B), Metallisk (A)

När DDS-texturerna komprimeras förväntas följande komprimering på varje karta:

Textur Förväntad komprimering
baseColorTexture, normalRoughnessMetallicTexture BC7

Avancerad (VR) headset

Pc-baserade Windows Mixed Reality-upplevelser för uppslukande (VR)-headset förväntar sig att texturer packas med hjälp av en 3-strukturkonfiguration med hjälp av följande förpackningsspecifikation:

Windows OS >= 1803

glTF-egenskap Textur Förpackningsschema
pbrMetallicRoughness baseColorTexture Röd (R), grön (G), blå (B)
MSFT_packing_occlusionRoughnessMetallic occlusionRoughnessMetallicTexture Ocklusion (R), grovhet (G), Metallisk (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

När DDS-texturerna komprimeras förväntas följande komprimering på varje karta:

Textur Förväntad komprimering
normalTexture BC5
baseColorTexture, occlusionRoughnessMetallicTexture BC7
Windows OS <= 1709

glTF-egenskap Textur Förpackningsschema
pbrMetallicRoughness baseColorTexture Röd (R), grön (G), blå (B)
MSFT_packing_occlusionRoughnessMetallic roughnessMetallicOcclusionTexture Grovhet (R), metallisk (G), ocklusion (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normal (RG)

När DDS-texturerna komprimeras förväntas följande komprimering på varje karta:

Textur Förväntad komprimering
normalTexture BC5
baseColorTexture, roughnessMetallicOcclusionTexture BC7

Lägga till nät-LOD:ar

Windows MR använder lod för geometrinoder för att återge 3D-modeller i olika detaljnivåer beroende på skärmtäckning. Även om den här funktionen tekniskt sett inte krävs rekommenderas den för alla tillgångar. Windows har för närvarande stöd för tre detaljnivåer. Standard-LOD är 0, vilket representerar högsta kvalitet. Andra LOD:er numreras sekventiellt, till exempel 1, 2 och blir progressivt lägre i kvalitet. Windows Mixed Reality Asset Converter stöder generering av tillgångar som uppfyller denna LOD-specifikation genom att acceptera flera glTF-modeller och slå samman dem till en enda tillgång med giltiga LOD-nivåer. I följande tabell beskrivs de förväntade LOD-ordnings- och triangelmålen:

LOD-nivå Rekommenderat triangelantal Maximalt antal trianglar
LOD 0 10,000 10,000
LOD 1 5 000 10,000
LOD 2 2 500 10,000

När du använder LOD anger du alltid 3 LOD-nivåer. Saknade LOD:er gör att modellen inte renderas oväntat när LOD-systemet växlar till den saknade LOD-nivån. glTF 2.0 stöder för närvarande inte LOD:er som en del av kärnspecifikationen. LOD:er bör definieras med hjälp av tillägget MSFT_LOD.

Skärmtäckning

LOD:er visas i Windows Mixed Reality baserat på ett system som drivs av skärmtäckningsvärdet som anges på varje LOD. Objekt som för närvarande förbrukar en större del av skärmutrymmet visas på en högre LOD-nivå. Skärmtäckning är inte en del av kärn-glTF 2.0-specifikationen och måste anges med hjälp av MSFT_ScreenCoverage i avsnittet "extrafunktioner" i MSFT_lod-tillägget.

LOD-nivå Rekommenderat intervall Standardintervall
LOD 0 100% - 50% 0,5
LOD 1 Under 50% - 20% 0.2
LOD 2 Under 20% - 1% 0.01
LOD 4 Under 1 % -

Riktlinjer för animering

Kommentar

Den här funktionen lades till som en del av Windows 10 April 2018 Update. I äldre versioner av Windows kommer dessa animeringar inte att spelas upp, men de läses fortfarande in om de redigeras enligt riktlinjerna i den här artikeln.

Hemmet för mixad verklighet har stöd för animerade glTF-objekt på HoloLens- och Immersive-headset (VR). Om du vill utlösa animeringar på din modell måste du använda tillägget Animeringskarta i glTF-formatet. Med det här tillägget kan du utlösa animeringar i glTF-modellen baserat på användarens närvaro i världen, till exempel utlösa en animering när användaren är nära objektet eller när de tittar på det. Om du glTF-objektet har animeringar, men inte definierar utlösare, spelas inte animeringarna upp. I avsnittet nedan beskrivs ett arbetsflöde för att lägga till dessa utlösare i alla animerade glTF-objekt.

Verktyg

Ladda först ned följande verktyg om du inte redan har dem. De här verktygen gör det enkelt att öppna en glTF-modell, förhandsgranska den, göra ändringar och spara tillbaka som glTF eller .glb:

  1. Visual Studio Code
  2. glTF-verktyg för Visual Studio Code

Öppna och förhandsgranska modellen

Börja med att öppna glTF-modellen i VSCode genom att dra .glTF-filen till redigeringsfönstret. Om du har en .glb i stället för en .glTF-fil kan du importera den till VSCode med hjälp av tillägget glTF Tools som du laddade ned. Gå till "Visa –> kommandopalett" och börja sedan skriva "glTF" i kommandopaletten och välj "glTF: Import from glb", vilket visar en filväljare som du kan importera en .glb med.

När du har öppnat din glTF-modell bör du se JSON i redigeringsfönstret. Du kan också förhandsgranska modellen i ett live-3D-visningsprogram med hjälp av genom att högerklicka på filnamnet och välja kommandogenvägen "glTF: Preview 3D Model" från snabbmenyn.

Lägga till utlösarna

Animeringsutlösare läggs till i glTF-modell-JSON med hjälp av tillägget Animeringskarta. Tillägget för animeringskartan dokumenteras offentligt här på GitHub (OBS! DET HÄR ÄR ETT UTKASTTILLÄGG). Om du vill lägga till tillägget i din modell bläddrar du bara till slutet av glTF-filen i redigeraren och lägger till blocket "extensionsUsed" och "extensions" i filen om de inte redan finns. I avsnittet "extensionsUsed" lägger du till en referens till tillägget "EXT_animation_map" och i blocket "extensions" lägger du till dina mappningar till animeringarna i modellen.

Som anges i specifikationen definierar du vad som utlöser animeringen med hjälp av den "semantiska" strängen i en lista med "animeringar", som är en matris med animeringsindex. I exemplet nedan har vi angett animeringen som ska spelas upp medan användaren tittar på objektet:

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

Följande animering utlöser semantik stöds av Windows Mixed Reality-hemmet.

  • "ALWAYS": Loopa ständigt en animering
  • "HELD": Loopas under hela varaktigheten ett objekt hämtas.
  • "GAZE": Loopad medan ett objekt granskas
  • "NÄRHET": Loopad när ett visningsprogram är nära ett objekt
  • "POINTING": Loopad när en användare pekar på ett objekt

Spara och exportera

När du har gjort ändringarna i din glTF-modell kan du spara den direkt som glTF. Du kan också högerklicka på namnet på filen i redigeraren och välja "glTF: Exportera till GLB (binär fil)" för att exportera en .glb.

Begränsningar

Animeringar får inte vara längre än 20 minuter och får inte innehålla fler än 36 000 nyckelrutor (20 minuter vid 30 FPS). Dessutom när du använder morfningsmålbaserade animeringar överskrider inte 8192 morfningsmålhörn eller mindre. Om du överskrider dessa antal kommer den animerade tillgången inte att stödjas i Windows Mixed Reality-hemmet.

Funktion Högsta
Varaktighet 20 minuter
Nyckelramar 36,000
Morfningsmålhörn 8192

glTF-implementeringsanmärkningar

Windows MR har inte stöd för att vända geometrin med hjälp av negativa skalor. Geometri med negativa skalor resulterar sannolikt i visuella artefakter.

GlTF-tillgången MÅSTE peka på standardscenen med hjälp av scenattributet som ska återges av Windows MR. Dessutom kräver Windows MR glTF-inläsaren före Windows 10 April 2018-uppdateringen accessorer:

  • Måste ha minsta och högsta värden.
  • Typ SCALAR måste vara componentType UNSIGNED_SHORT (5123) eller UNSIGNED_INT (5125).
  • Typ VEC2 och VEC3 måste vara componentType FLOAT (5126).

Följande materialegenskaper används från core glTF 2.0 spec men krävs inte:

  • baseColorFactor, metallicFactor, roughnessFactor
  • baseColorTexture: Måste peka på en struktur som lagras i dds.
  • emissiveTexture: Måste peka på en struktur som lagras i dds.
  • emissiveFactor
  • alphaMode

Följande materialegenskaper ignoreras från kärnspecifikationen:

  • Alla multi-UV:er
  • metalRoughnessTexture: Måste i stället använda Microsofts optimerade texturförpackning som definieras nedan
  • normalTexture: Måste i stället använda Microsoft-optimerad texturförpackning som definierats nedan
  • normalSkala
  • occlusionTexture: Måste i stället använda Microsofts optimerade strukturförpackning som definieras nedan
  • occlusionStrength

Windows MR stöder inte primitiva lägeslinjer och punkter.

Endast ett enda UV-hörnattribut stöds.

Fler resurser

Se även