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:
- Eksportowanie — zasoby muszą być dostarczane w formacie pliku .glb (binary glTF), .obj lub .fbx
- 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
- 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
- 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
- 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:
- Oś w górę powinna być ustawiona na wartość "Y".
- Zasób powinien być "do przodu" w kierunku dodatniej osi Z.
- Wszystkie zasoby powinny być zbudowane na płaszczyźnie ziemi w miejscu początkowym sceny (0,0,0)
- Jednostki robocze powinny być ustawione na mierniki i zasoby, aby zasoby można było authored w skali światowej
- Nie trzeba łączyć wszystkich siatek, ale jest to zalecane w przypadku urządzeń z ograniczonymi zasobami
- Wszystkie siatki powinny mieć jeden materiał, a tylko jeden zestaw tekstur jest używany dla całego zasobu
- Prostokąty muszą być ułożone w kwadratowym rozkładzie w przestrzeni od 0 do 1. Unikaj kafelkowania tekstur, chociaż są one dozwolone.
- Wiele uniwersalnych urządzeń nie jest obsługiwanych
- 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:
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
- glTF Exporters and Converters (Eksporterzy i konwertery glTF)
- glTF Toolkit
- glTF 2.0 Specification (Specyfikacja glTF 2.0)
- Specyfikacja rozszerzenia Microsoft glTF LOD
- Specyfikacja rozszerzeń pakowania tekstury pc Mixed Reality
- HoloLens Mixed Reality specyfikacji rozszerzeń pakowania tekstury
- Specyfikacja rozszerzeń glTF tekstury DDS firmy Microsoft