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 3Dw Windows Mixed Reality głównej. 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 (binarny glTF)
  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 węzłów 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 w Windows wersji systemu operacyjnego >= 1803

Pozostała część tego artykułu zawiera szczegółowe omówienie tych wymagań i dodatkowych wytycznych, które zapewniają, że modele dobrze działają 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 dostarczania zasobów 3D utrzymywanym przez grupę Wronos. W związku z rozwojem glTF jako standardu branżowego dla międzyoperacyjnej zawartości 3D, obsługa formatu w wielu aplikacjach i doświadczeniach firmy Microsoft będzie Windows branży. 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 kwadratowe rozmieszczenie w przestrzeni od 0 do 1. Unikaj kafelkowania tekstur, chociaż są one dozwolone.
  8. Wiele urządzeń uniwersalnych nie jest obsługiwane
  9. Materiały dwustronne nie są obsługiwane

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

Strona Windows Mixed Reality home nie obsługuje modeli z więcej niż 10 000 trójkątów. Zaleca się triangulacji siatek przed rozpoczęciem eksportowania, aby upewnić się, że nie przekraczają one tej liczby. Windows Mr obsługuje również opcjonalne poziomy geometrii szczegółów (LOD), aby zapewnić wydajność i wysoką jakość obsługi. WindowsMRAssetConverter pomoże Ci połączyć 3 wersje modelu w jeden model .glb. Windows, który lod ma być wyświetlany, na podstawie ilości nieruchomości ekranu, którą przyjmuje model. 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 liczby węzłów na węzłów

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

Cecha Opis Maksymalna obsługiwana liczba 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 należy przygotować przy użyciu przepływu pracy nieoczywistości PBR. Zacznij od utworzenia pełnego zestawu tekstur, w tym Albedo, Normal, Occlusion, Text i Roughness. 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ć autorstwa w rozdzielczościach wielokrotności 4. Jest to wymagane w przypadku formatu kompresji zastosowanego do tekstur w procedurach eksportowania opisanych poniżej. Podczas generowania map mip lub tekstury najniższy mip musi być maksymalnie 4 x 4.

Zalecany rozmiar tekstury Maksymalny rozmiar tekstury Najniższy 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 nasłonecznieniach dotyczących materiału metalowego (białej na mapie głazów) i powierzchni odbicia (czarny na mapie cykutowej).

Normalne

Mapa normalna przestrzeni tangensa

Mapa nieoczywistości

Opisuje mikrokrój obiektu. Biały kolor 1.0 jest wątły 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, ślady i tak dalej.

Mapa oklulacji otoczenia

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

Mapa Zdumiej

Informuje moduł cieniujący, 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. Dowolny model glTF 2.0 można łatwo zoptymalizować przy użyciu programu Windows Mixed Reality Asset Converterdostępnego w 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 tekstury zdefiniowanym w tej sekcji. Do tekstur DDS odwołuje się rozszerzenie MSFT_texture_dds . 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), Pogrubienie (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)

Oparte na komputerach Windows Mixed Reality dla immersywnych zestawów nagłownych (VR) oczekują, że tekstury zostaną zapakowane przy użyciu konfiguracji 3 tekstur przy użyciu następującej specyfikacji pakowania:

Windows System 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 System 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 Model MR używa identyfikatorów LD węzła 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 ID w ramach podstawowej specyfikacji. Identyfikatory ID powinny być definiowane przy użyciu MSFT_LOD rozszerzenia.

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 tekstu "glTF" w palecie poleceń i wybierz pozycję "glTF: Import from glb", co spowoduje wyświetlenie selektora plików, za pomocą którego można zaimportować plik glb.

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 przy użyciu polecenia , 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 WERSJI ROBOCZEJ). Aby dodać rozszerzenie do modelu, przewiń na koniec 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 można przekroczyć 8192 wierzchołków docelowych. Przekroczenie tych wartości spowoduje, że animowany zasób będzie nieobsługiwany w Windows Mixed Reality home.

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

glTF Implementation notes (Informacje o implementacji glTF)

Windows Funkcja mr nie obsługuje przerzucania geometrii przy użyciu skali ujemnej. 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 wymagany Windows modułu ładującego MR glTF Windows 10 aktualizacji z kwietnia 2018 r.:

  • 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, jednoskładnikowy, roughnessFactor
  • baseColorTexture: musi wskazać teksturę przechowywaną w dds.
  • em zwęgienieTekst: 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 zoptymalizowanego pod kątem 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ż