Tworzenie modeli 3D do użytku w domu

Strona Windows Mixed Reality jest punktem początkowym, w którym użytkownicy trafią przed uruchomieniem aplikacji. Podczas projektowania aplikacji pod Windows Mixed Reality nagłownych użyj modelu 3D jako funkcji uruchamiania aplikacji i umieść linki głębokie 3D w Windows Mixed Reality domu. W tym artykule przedstawiono wytyczne dotyczące tworzenia modeli 3D zgodnych z Windows Mixed Reality home.

Przegląd wymagań dotyczących zasobów

Podczas tworzenia modeli 3D dla Windows Mixed Reality istnieją pewne wymagania, które muszą spełniać wszystkie zasoby:

  1. Eksportowanie — zasoby muszą być dostarczane w formacie pliku .glb (binary glTF), .obj lub .fbx
  2. Modelowanie — zasoby muszą być mniejsze niż 10 000 trójkątów, nie mogą zawierać więcej niż 64 węzłów i 32 podsieć na 1 lod
  3. Materiały — tekstury nie mogą być większe niż 4096 x 4096, a najmniejsza mapa mip nie powinna być większa niż 4 w żadnym wymiarze
  4. Animacja — animacje nie mogą być dłuższe niż 20 minut przy 30 ELEMENTACH kluczowych (36 000 ramek kluczowych) <i muszą zawierać = 8192 wierzchołki docelowe morph
  5. Optymalizacja — zasoby powinny być optymalizowane przy użyciu narzędzia WindowsMRAssetConverter. Wymagane w Windows systemu operacyjnego <= 1709* i zalecane Windows wersji >systemu operacyjnego = 1803

Uwaga

Aplikacja Przeglądarka 3D obsługuje różne formaty i rozdzielczości, ale ostatecznie konwertuje modele na .glb/glTF przed wyświetleniem ich w Mixed Reality home.

Pozostała część tego artykułu zawiera szczegółowe omówienie tych wymagań i dodatkowe wytyczne, aby upewnić się, że modele działają dobrze z Windows Mixed Reality home.

Szczegółowe wskazówki

Eksportowanie modeli

Strona Windows Mixed Reality oczekuje, że zasoby 3D zostaną dostarczone przy użyciu formatu pliku .glb z osadzonymi obrazami i danymi binarnymi. Glb to wersja binarna formatu glTF, który jest bezpłatnym, bezpłatnym standardem otwartym dla dostarczania zasobów 3D utrzymywanym przez grupę Wronos. Wraz z rozwojem programu glTF jako standardu branżowego w zakresie międzyoperacyjnej zawartości 3D firma Microsoft będzie obsługiwać format w wielu Windows i doświadczeniach. Jeśli jeszcze nie utworzono zasobu glTF, listę obsługiwanych eksporterów i konwerterów można znaleźć na stronie grupy roboczej glTF w witrynie GitHub.

Wskazówki dotyczące modelowania

Windows oczekuje wygenerowania zasobów przy użyciu poniższych wytycznych dotyczących modelowania w celu zapewnienia zgodności z Mixed Reality domu. Podczas modelowania w programie należy pamiętać o następujących zaleceniach i ograniczeniach:

  1. Oś w górę powinna być ustawiona na wartość "Y".
  2. Zasób powinien być "do przodu" w kierunku dodatniej osi Z.
  3. Wszystkie zasoby powinny być zbudowane na płaszczyźnie ziemi w miejscu początkowym sceny (0,0,0)
  4. Jednostki robocze powinny być ustawione na mierniki i zasoby, aby zasoby można było authored w skali światowej
  5. Nie trzeba łączyć wszystkich siatek, ale jest to zalecane w przypadku urządzeń z ograniczonymi zasobami
  6. Wszystkie siatki powinny mieć jeden materiał, a tylko jeden zestaw tekstur jest używany dla całego zasobu
  7. Prostokąty muszą być ułożone w kwadratowym rozkładzie w przestrzeni od 0 do 1. Unikaj kafelkowania tekstur, chociaż są one dozwolone.
  8. Wiele uniwersalnych urządzeń nie jest obsługiwanych
  9. Materiały dwustronne nie są obsługiwane

Liczba trójkątów i poziomy szczegółowości (LD)

Strona Windows Mixed Reality nie obsługuje modeli z więcej niż 10 000 trójkątów. Zaleca się triangulacja siatek przed eksportem, aby upewnić się, że nie przekraczają one tej liczby. Windows mr obsługuje również opcjonalne poziomy geometrii szczegółów (LD), aby zapewnić wydajność i wysoką jakość obsługi. WindowsMRAssetConverter pomoże Ci połączyć 3 wersje modelu w jeden model .glb. Windows określa, która wartość LOD ma być wyświetlana na podstawie ilości miejsca na ekranie, które model przyjmuje. Obsługiwane są tylko 3 poziomy LOD z następującymi zalecanymi liczbami trójkątów:

Poziom LOD Zalecana liczba trójkątów Maksymalna liczba trójkątów
LOD 0 10 000 10 000
LOD 1 5000 10 000
LOD 2 2500 10 000

Liczba węzłów i limity podsieci

Strona Windows Mixed Reality nie obsługuje modeli z więcej niż 64 węzłami lub 32 podsieciami na lod. Węzły to pojęcie w specyfikacji glTF definiujące obiekty w scenie. Podsiatki są definiowane w tablicy elementów pierwotnych w siatce w obiekcie .

Cecha Opis Maksymalna obsługiwana Dokumentacja
Węzły Obiekty w scenie glTF 64 na lod Tutaj
Podsieć Suma elementów pierwotnych we wszystkich siatkach 32 na lod Tutaj

Material guidelines (Wytyczne dotyczące materiałów)

Tekstury powinny być przygotowane przy użyciu przepływu pracy chropowatości PBR. Zacznij od utworzenia pełnego zestawu tekstur, w tym Albedo, Normal, Occlusion, Przecier i Wątłość. Windows Mixed Reality obsługuje tekstury o rozdzielczości do 4096 x 4096, ale zaleca się tworzenie w rozdzielczości 512 x 512. Tekstury powinny być authored w rozdzielczości wielokrotności 4. Jest to wymagane w przypadku formatu kompresji zastosowanego do tekstur w krokach eksportowania opisanych poniżej. Podczas generowania map mip lub tekstury najniższy mip musi być maksymalnie 4x4.

Zalecany rozmiar tekstury Maksymalny rozmiar tekstury Najniższa mip
512x512 4096x4096 maksymalnie 4x4

Mapa Albedo (kolor podstawowy)

Kolor pierwotny bez informacji o oświetleniem. Ta mapa zawiera również informacje o odbiciach i odbiciach odpowiednio dla powierzchni metalowych (biały na mapie mapy) i nasadki (czarny na mapie mapy).

Normalne

Mapa normalna przestrzeni tangensa

Mapa chropowatości

Opisuje mikropłaszczyznę obiektu. Biały kolor 1.0 jest grubszy Czarny 0.0 jest płynny. Ta mapa nadaje zasobowi najwięcej znaków, ponieważ naprawdę opisuje powierzchnię. Na przykład rysy, odciski palców, smekły, linie i tak dalej.

Mapa oklulacji otoczenia

Mapa skalowania wartości przedstawiająca obszary okludnego światła, które blokuje odbicia

Mapa map map

Informuje moduł cieniowania, jeśli coś jest nie tak. Raw Metal = 1,0 white Non-metal = 0,0 black. Mogą być przejściowe szare wartości, które wskazują na coś, co obejmuje nieprzetworzone elementy, takie jak metale, ale ogólnie ta mapa powinna być tylko czarno-biały.

Optymalizacje

Windows Mixed Reality home oferuje szereg optymalizacji na podstawie podstawowej specyfikacji glTF zdefiniowanej przy użyciu rozszerzeń niestandardowych. Te optymalizacje są wymagane w Windows wersji <= 1709 i zalecane w przypadku nowszej wersji Windows. Można łatwo zoptymalizować dowolny model glTF 2.0 przy użyciu Windows Mixed Reality Asset Converter dostępnego na GitHub. To narzędzie wykona prawidłowe pakowanie tekstury i optymalizacje, jak określono poniżej. W przypadku ogólnego użycia zalecamy użycie narzędzia WindowsMRAssetConverter, ale jeśli potrzebujesz większej kontroli nad tym środowiskom i chcesz utworzyć własny potok optymalizacji, możesz zapoznać się ze szczegółową specyfikacją poniżej.

Uwaga

Pełną listę możliwości dokładnych limitów modelu można znaleźć w artykule 3D model optimization (Optymalizacja modelu 3D) do użycia w aplikacjach usługi Dynamics 365.

Materiały

Aby poprawić czas ładowania zasobów w Mixed Reality środowiskach Windows MR obsługuje renderowanie skompresowanych tekstur DDS spakowanych zgodnie ze schematem pakowania tekstur zdefiniowanym w tej sekcji. Tekstury DDS są przywołyowane przy użyciu MSFT_texture_dds rozszerzenia. Kompresja tekstur jest zdecydowanie zalecana.

HoloLens

HoloLens rzeczywistości mieszanej oczekują, że tekstury zostaną zapakowane przy użyciu konfiguracji 2 tekstur przy użyciu następującej specyfikacji pakowania:

glTF, właściwość Tekstura Schemat pakowania
pbrMetallicRoughness baseColorTexture Czerwony (R), Zielony (G), Niebieski (B)
MSFT_packing_normalRoughnessMetallic normalRoughnessMetallicTexture Normal (RG), Roughness (B),Rg (A)

Podczas kompresowania tekstur DDS na każdej mapie oczekiwana jest następująca kompresja:

Tekstura Oczekiwana kompresja
baseColorTexture, normalRoughnessMetallicTexture BC7

Zestawy nagłowne immersyjne (VR)

W środowiskach Windows Mixed Reality nagłownych VR (PC-based Windows Mixed Reality) tekstury powinny być pakowane przy użyciu konfiguracji 3 tekstur przy użyciu następującej specyfikacji pakowania:

Windows operacyjny >= 1803

glTF, właściwość Tekstura Schemat pakowania
pbrMetallicRoughness baseColorTexture Czerwony (R), Zielony (G), Niebieski (B)
MSFT_packing_occlusionRoughnessMetallic occlusionRoughnessMetallicTexture Occlusion (R), chropowatość (G), ćwik (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normalny (RG)

Podczas kompresowania tekstur DDS na każdej mapie oczekiwana jest następująca kompresja:

Tekstura Oczekiwana kompresja
normalTexture BC5
baseColorTexture, occlusionRoughnessMetallicTexture BC7
Windows operacyjny <= 1709

glTF, właściwość Tekstura Schemat pakowania
pbrMetallicRoughness baseColorTexture Czerwony (R), Zielony (G), Niebieski (B)
MSFT_packing_occlusionRoughnessMetallic roughnessMetallicOcclusionTexture Niechropowatość (R), Zgrubienie (G), okluz (B)
MSFT_packing_occlusionRoughnessMetallic normalTexture Normalny (RG)

Podczas kompresowania tekstur DDS na każdej mapie oczekiwana jest następująca kompresja:

Tekstura Oczekiwana kompresja
normalTexture BC5
baseColorTexture, roughnessMetallicOcclusionTexture BC7

Dodawanie identyfikatorów LD siatki

Windows MR używa identyfikatorów LD węzłów geometrii do renderowania modeli 3D na różnych poziomach szczegółowości w zależności od pokrycia ekranu. Chociaż ta funkcja nie jest technicznie wymagana, jest zalecana dla wszystkich zasobów. Obecnie Windows obsługuje 3 poziomy szczegółowości. Wartość domyślna LOD to 0, która reprezentuje najwyższą jakość. Inne identyfikatory LD są numerowane sekwencyjnie, na przykład 1, 2, i mają stopniowo niższą jakość. Program Windows Mixed Reality Asset Converter obsługuje generowanie zasobów spełniających tę specyfikację LOD przez akceptowanie wielu modeli glTF i scalanie ich w jeden zasób z prawidłowymi poziomami LOD. W poniższej tabeli przedstawiono oczekiwane wartości kolejności lodów i trójkątów docelowych:

Poziom LOD Zalecana liczba trójkątów Maksymalna liczba trójkątów
LOD 0 10 000 10 000
LOD 1 5000 10 000
LOD 2 2500 10 000

W przypadku korzystania z identyfikatorów LOD zawsze określ 3 poziomy LOD. Brak identyfikatorów ID spowoduje, że model nie będzie nieoczekiwanie renderowany, gdy system LOD przełączy się na brakujący poziom LOD. GlTF 2.0 nie obsługuje obecnie identyfikatorów LD jako części podstawowej specyfikacji. Identyfikatory LOD powinny być definiowane przy użyciu MSFT_LOD danych.

Pokrycie ekranu

Identyfikatory LD są wyświetlane Windows Mixed Reality na podstawie systemu sterowanego przez wartość pokrycia ekranu ustawioną dla każdego lodu. Obiekty, które obecnie zużywają większą część miejsca na ekranie, są wyświetlane na wyższym poziomie LOD. Pokrycie ekranu nie jest częścią podstawowej specyfikacji glTF 2.0 i musi być określone przy użyciu MSFT_ScreenCoverage w sekcji "dodatki" MSFT_lod rozszerzenia.

Poziom LOD Zalecany zakres Zakres domyślny
LOD 0 100% - 50% 0,5
LOD 1 Poniżej 50% – 20% 0,2
LOD 2 Poniżej 20% — 1% 0,01
LOD 4 Poniżej 1% -

Wytyczne dotyczące animacji

Uwaga

Ta funkcja została dodana w ramach Windows 10 aktualizacji z kwietnia 2018 r. W starszych wersjach Windows animacje nie zostaną odtąd, ale nadal będą ładowane, jeśli zostaną one autorami zgodnie ze wskazówkami w tym artykule.

Strona główna rzeczywistości mieszanej obsługuje animowane obiekty glTF HoloLens i immersywnych zestawach nagłownych (VR). Jeśli chcesz wyzwolić animacje w modelu, musisz użyć rozszerzenia Animation Map w formacie glTF. To rozszerzenie umożliwia wyzwalanie animacji w modelu glTF na podstawie obecności użytkownika na świecie, na przykład wyzwalanie animacji, gdy użytkownik jest blisko obiektu lub gdy go patrzy. Jeśli obiekt glTF zawiera animacje, ale nie definiuje wyzwalaczy, animacje nie będą odtwarzane. W poniższej sekcji opisano jeden przepływ pracy dodawania tych wyzwalaczy do dowolnego animowanego obiektu glTF.

narzędzia

Najpierw pobierz następujące narzędzia, jeśli jeszcze ich nie masz. Te narzędzia ułatwiają otwieranie dowolnego modelu glTF, wyświetlanie podglądu, wprowadzać zmiany i zapisywać z powrotem jako glTF lub .glb:

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

Otwieranie i wyświetlanie podglądu modelu

Rozpocznij od otwarcia modelu glTF w programie VSCode, przeciągając plik glTF do okna edytora. Jeśli masz plik glb zamiast pliku glTF, możesz zaimportować go do programu VSCode przy użyciu pobranego dodatku glTF Tools. Przejdź do widoku "View -> Command Palette", a następnie rozpocznij wpisywanie "glTF" w palecie poleceń i wybierz pozycję "glTF: Import from glb", co spowoduje wyświetlenie selektora plików w celu zaimportowania pliku glb za pomocą polecenia .

Po otwarciu modelu glTF w oknie edytora powinien zostać wyświetlony plik JSON. Możesz również wyświetlić podgląd modelu w podglądzie 3D na żywo, klikając prawym przyciskiem myszy nazwę pliku i wybierając skrót polecenia "glTF: Preview 3D Model" (glTF: podgląd modelu 3D) z menu dostępnego po kliknięciu prawym przyciskiem myszy.

Dodawanie wyzwalaczy

Wyzwalacze animacji są dodawane do pliku JSON modelu glTF przy użyciu rozszerzenia Animation Map. Rozszerzenie mapy animacji jest publicznie udokumentowane w GitHub (UWAGA: TO JEST ROZSZERZENIE W WERSJI ROBOCZEJ). Aby dodać rozszerzenie do modelu, przewiń do końca pliku glTF w edytorze i dodaj do pliku blok "extensionsUsed" i "extensions", jeśli jeszcze nie istnieją. W sekcji "extensionsUsed" dodasz odwołanie do rozszerzenia "EXT_animation_map", a w bloku "extensions" dodasz mapowania do animacji w modelu.

Jak wspomniano w specyfikacji, definiujesz, co wyzwala animację przy użyciu ciągu "semantycznego" na liście "animacji", która jest tablicą indeksów animacji. W poniższym przykładzie określono animację do odtwarzania, gdy użytkownik patrzy na obiekt :

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

Semantyka wyzwalaczy poniższej animacji jest obsługiwana przez Windows Mixed Reality home.

  • "ZAWSZE": ciągłe zapętlenie animacji
  • "HELD": w pętli przez cały czas trwania obiekt jest chwycony.
  • "SPOJRZENIE": Zapętlenie podczas przyglądania się obiektowi
  • "PROXIMITY": Zapętlenie, gdy przeglądarka znajduje się w pobliżu obiektu
  • "POINTING": zapętlenie, gdy użytkownik wskaże obiekt

Zapisywanie i eksportowanie

Po w związku z wprowadzonymi zmianami w modelu glTF możesz zapisać go bezpośrednio jako glTF. Możesz również kliknąć prawym przyciskiem myszy nazwę pliku w edytorze i wybrać pozycję "glTF: Export to GLB (binary file)", aby wyeksportować plik glb.

Ograniczenia

Animacje nie mogą być dłuższe niż 20 minut i nie mogą zawierać więcej niż 36 000 ramek kluczowych (20 minut przy 30 SEK). Ponadto w przypadku używania animacji opartych na celu morph nie przekraczaj 8192 wierzchołków docelowych morph lub mniej. Przekroczenie tych wartości spowoduje, że animowany zasób nie będzie obsługiwany w Windows Mixed Reality home.

Cecha Maksimum
Czas trwania 20 minut
Klatek kluczowych 36,000
Wierzchołki docelowe Morph 8192

glTF Implementation notes (Informacje o implementacji glTF)

Windows mr nie obsługuje przerzucania geometrii przy użyciu ujemnych skal. Geometria z ujemną skalą prawdopodobnie spowoduje artefakty wizualne.

Zasób glTF MUSI wskazać domyślną scenę przy użyciu atrybutu sceny, który ma być renderowany przez Windows MR. Ponadto Windows mr glTF loader przed Windows 10 aktualizacji z kwietnia 2018 r. wymaga dostępu:

  • Musi mieć wartości minimalne i maksymalne.
  • Typ SCALAR musi mieć wartość componentType UNSIGNED_SHORT (5123) lub UNSIGNED_INT (5125).
  • Typy VEC2 i VEC3 muszą mieć typ componentType FLOAT (5126).

Następujące właściwości materiału są używane ze specyfikacji core glTF 2.0, ale nie są wymagane:

  • baseColorFactor, aiFactor, roughnessFactor
  • baseColorTexture: musi wskazać teksturę przechowywaną w dds.
  • emkursveTexture: musi wskazać teksturę przechowywaną w dds.
  • em zwęgienieFactor
  • alphaMode

Następujące właściwości materiału są ignorowane w podstawowej specyfikacji:

  • Wszystkie wielowymiarowe
  • metalRoughnessTexture: Zamiast tego należy użyć pakowania zoptymalizowanej tekstury firmy Microsoft zdefiniowanego poniżej
  • normalTexture: Zamiast tego należy użyć pakowania zoptymalizowanej tekstury firmy Microsoft zdefiniowanego poniżej
  • normalScale (skala normalna)
  • occlusionTexture: Zamiast tego należy użyć pakowania zoptymalizowanego pod kątem tekstury firmy Microsoft zdefiniowanego poniżej
  • occlusionStrength

Windows mr nie obsługuje linii i punktów trybu pierwotnego.

Obsługiwany jest tylko jeden atrybut wierzchołka LAMP.

Więcej zasobów

Zobacz też