Dziś małe uzupełnienie poprzedniego odcinka. Pokażę krótko, jak pokolorować ściany, podłogę i sufit pokoju i bynajmniej nie mam tu na myśli pracy malarza… bo stanie się to tylko w naszej głowie z HoloLens.
Do sceny z HoloVision7 dodaję game obiekt o nazwie SpatialProcessing, a do niego skrypty z HoloToolkit o nazwach SurfaceMeshesToPlanes i RemoveSurfaceVertices oraz skrypt PlaySpaceManager z Holograms 230: Spatial mapping (z zakomentowaną linią
SpaceCollectionManager.Instance.GenerateItemsInWorld(horizontal, vertical);
odpowiedzialną za umieszczanie obiektów na scenie)
W SurfaceMeshesToPlanes wybieramy w Surface Plane Prefab komponent SurfacePlane. Z kolei w inspektorze tego ostatniego ustawiamy materiały dla ścian, sufitu, podłogi, stołu pokoju.
Materiały dla nich możemy zdefiniować sami albo dla testu wykorzystać z Holograms 230: Spatial mapping.
Generalnie chodzi o to by przetworzyć zmapowaną przestrzeń, wykryć w niej podłogę, ściany, sufit czy stół, a potem je pokolorować.
Oto co wynurzyło się przed moimi oczami (po przejściu przez ścianę cofając się do tyłu z początkowego punktu, który był zdaje się w jakimś pustościanie).
Scena dostępna na github jako HoloVision8.
Chciałem jeszcze umieścić bez ingerencji użytkownika na ścianie jakiś przedmiot, ale okazało się to niezbyt proste. Owszem Holograms 230: Spatial mapping dostarcza skrypty, które to robią, ale zależą one od starszej początkowej wersji Holo toolkitu. W nowym HoloToolkicie odnajdziemy natomiast skrypt TapToPlace, który przypięty do obiektu sprawi, że gdy najedziemy na niego kursorem i naciśniemy, to obiekt będzie podążał za kursorem osadzając się na siatce pokoju. W testowej scenie toolkitu nawet to działa, na mojej scenie póki co nie uzyskałem tego efektu. Inna sprawa, że samo renderowanie tej siatki, a potem wykrywanie ścian i kolorowanie nie działa natychmiast, a losowo w emulatorze może wyświetlić się scena bez pokoju…
Cześć, do następnego zwariowanego odcinka –
Brak komentarzy:
Prześlij komentarz