Hypr3D kolejny sposób na uzyskanie modeli 3D

Wydaje się, że technika SfM pozwalająca na uzyskiwanie modeli 3D z serii dwuwymiarowych fotografii staje się szalenie modna. Organizowane są konferencje, także archeologiczne, pojawiają się kolejne wersje aplikacji droższych i tańszych o zróżnicowanych możliwościach. Pojawiają się też internetowe serwisy pozwalające na przeprowadzenie całej procedury on-line.

Jednym z taki serwisów jest Hypr3D, który postanowiłem przetestować dla moich szanownych Czytelników (to oczywista nieprawda – postanowiłem przetestować go dla siebie, ale wynikami dzielę się z Wami). Serwis przypomina nieco PhotoSynth od Microsoft ale daje dodatkowe możliwości:

1. Celem serwisu jest tworzenie modeli. Inaczej niż w PhotoSynth nie ma potrzeby stosowania jakiś wymyślnych skryptów by pozyskać model z serwisu. Sam serwis udostępnia linki do modeli w różnych formatach (w tym chmury punktów ply) i różnych rozdzielczościach:

2. Przeglądanie modeli jest oparte w serwisie na popularnej technologii flash. Jakkolwiek budzi ona szereg wątpliwości u różnej maści programistycznych purystów, to póki co jest dostępna na wszystkie główne platformy systemowe (t.j. Windows, MacOSX i Linux). To się ponoć ma zmienić, ale na razie właściwie każdy internauta może oglądać wyniki pracy Hypr3D, inaczej niż ma to miejsce z technologią Silverlight Microsoftu, która jest wspierana wyłącznie na Windows i MacOSX. Wtyczka Moonligt (implementacja tej technologii, jaką przygotował Novell, od dawna już nie chce współpracować z kolejnymi wersjami Firefoksa).

3. Przeglądarka Hypr3D ma też wersję embed, więc jest możliwość dzielenia się modelami na stronach internetowych.
http://www.hypr3d.com/models/4f5b0c18b9d90c0001000002/embedded_viewer

Oczywiście WordPress nie akceptuje tej przeglądarki (podobnie jak nie akceptuje PhotoSynth), więc możecie jedynie zajrzeć pod link powyżej.

Możliwość udostępniania modeli przez sieć wydaje się być szczególnie interesująca nie tylko w kontekście popularyzacji wyników badań, ale także np. konsultowania poszczególnych obiektów z innymi badaczami, za pośrednictwem sieci.

Jak przebiega proces tworzenia modelu?

1. Pierwszym krokiem jest założenie konta w serwisie. Oczywiście konieczne jest podanie e-maila, ale nie ma potrzeby weryfikacji konta za pośrednictwem mailowym.

2. Serwis w prosty, przejrzysty sposób prowadzi nas przez proces ładowania zdjęć. Tworzenie modelu przebiega całkowicie automatycznie.

3. Serwis jest zasadniczo darmowy, przy czym przewidziano opłaty za przekroczenie limitu objętości. Administratorzy mają także w planach naliczanie opłat za dodatkowe usługi, które będą implementowane do serwisu.

4. Serwis ma możliwość stworzenia modelu na podstawie filmu wykonanego aparatem lub nawet telefonem komórkowym. Tej opcji jednak nie sprawdzałem. Nie wiem jak działa.

5. Czas tworzenia modelu jest stosunkowo krótki. Łącznie z ładowaniem zdjęć całość nie trwałą dłużej niż pół godziny.

Jaka jest jakość uzyskanych wyników?

Otworzyłem wyeksportowany przez Hypr3D plik collada w najwyższej dostępnej rozdzielczości w Meshlab. Model wygląda znacznie lepiej niż na wbudowanej w serwis przeglądarce:

Jeśli chodzi o szczegóły i jakość odwzorowania, to optycznie wygląda lepiej niż w PhotoSynth, ale gorzej niż w Arc3D i 123D Catch. Nie mam zarzutów do jakości tekstury. Widać wyraźnie, że na modelu brak jest niedokładności i artefaktów widocznych na modelu w przeglądarce Hypr3D.

Chmura punktów z Hypr 3D. To grób 29 z Ostrowitego, który jest tu ostatnio probierzem dla programów i serwisów SfM. Przypomnę chmury dla tego samego grobu pokazywane już w serwisie:

Arc3D

123D Catch

Serwis ma swój program na iOS, który wytropiłem w Apple AppStore. Szkoda, że brak jest jego odpowiednika w sklepie Androida (teraz Google Play). Apki jednak nie testowałem, nie wiem czy pozwala wyłącznie na podgląd, czy też umożliwia tworzenie modelu.

Usługa nadal się rozwija. Wydaje się, że ważnym elementem powinno być teraz poprawienie jakości modeli wyświetlanych w systemowej przeglądarce Hypr3D. Dopiero wtedy będzie mógł rzeczywiście służyć jako platforma wymiany modeli w sieci.

123D Catch i SketchUp – będą parą?

Co prawda na razie nie jest to może para najszczęśliwsza – nie ze wszystkim się dogadują, ale łączy ich pośrednictwo Meshlab. W Meshlab można bez problemów odczytać pliki .obj, które produkuje 123D Catch i skonwertować na colladę lub 3ds. A oba te formaty plików są ponoć odczytywane przez Google SketchUp. Piszę „ponoć” bo na 3ds programik u mnie się wysypuje.

W efekcie model wykonany w 123D Catch (ale też w Acr3D) można otworzyć w SketchUp. Co prawda bez tekstury, ale zawsze. Korzystając z możliwości pracy na warstwach można opatrzyć go komentarzami, a nawet zbudować na jego bazie rekonstrukcję.

 

Modele 3D w gvSIG

W poprzednim wpisie pojawiła się informacja o wtyczce 3D do gvSIG. Wtyczka ta pozwala nie tylko na wizualizację Numerycznych Modeli Terenu ale także na wprowadzanie do wirtualnej przestrzeni trójwymiarowych modeli np budynków. Jak to działa?

  1. Pierwszy krok to przygotowanie modelu. Można do tego wykorzystać łatwy w obsłudze program Google SketchUp. Ponieważ nie jest to tutorial SketchUpa nie będę zbyt wiele czasu mu poświęcał. Program jest na prawdę intuicyjny i średnio rozgarnięty użytkownik komputera powinien poradzić sobie z nim dość szybko. Efekt końcowy powinien zostać zapisany w postaci pliku Collada. W tym celu wybieramy opcję eksportu – grafika 3D – Collada.
  2. Drugi krok to przygotowanie projektu 3D w gvSIG. Potrzebujemy do tego celu Numerycznego Modelu Terenu i ewentualnie dalszych warstw. Dla celów testowych wykorzystałem model uzyskany z CODGiK z nałożoną ortofotomapą.
  3. Klikamy na panelu głównego okna programu na ikonę „Create new OSG layer”. W oknie dialogowym musimy podać lokalizację dla pliku nowo tworzonej warstwy.
  4. Na panelu bocznym, na drzewku warstw klikamy na nowo utworzoną warstwę prawym klawiszem myszy i wybieramy opcję „Enable 3d objects edition”.
  5. Na panelu głównego okna klikamy ikonę „Import”. W oknie dialogowym wybieramy położenie pliku, ustawiając odczyt plików .dae (czyli Collada). Klikamy też na mapę w miejscu, w którym chcmy aby znalazł się importowany obiekt.
  6. Wybieramy narzędzie zaznaczania i klikamy na zaimportowany obiekt. Pojawi się pomocnicza ramka z uchwytami, która pozwoli na zmianę rozmiaru modelu i umożliwi przesuwanie. Na panelu głównym pojawią się inne opcje (w tym obracanie obiektu). Przesuwanie i powiększanie obrazu dokonuje się z wciśniętym klawiszem Ctrl (lewy klawisz myszy – przesuwanie, prawy – powiększanie/pomniejszanie). Po zakończeniu edycji w menu warstwy wybieramy opcję „Disable 3D objects edition”. Na koniec musimy zapisać nasz projekt.

Przygotowałem filmik pokazujący krok po kroku konieczne działania i efekt końcowy:

3D GIS i Open Source

Nie, nie chodzi w tym wpisie o GRASS i o SAGA GIS. Te programy są znane, od lat oferują możliwość pracy z trzecim wymiarem. Wpis dotyczyć będzie programów Qgis i gvSIG.

Całkiem niedawno ukazała się pełna wersja pluginu 3D do gvSIG. Wtyczka rozwijana jest już od dłuższego czasu. Sam eksperymentuję od kilku miesięcy, przy czym stabilność wcześniejszych wersji i pewne kłopoty z kompatybilnością nie bardzo pozwalały mi na sprawdzenie co jest warta. Jakie kłopoty? Otóż do tej pory używałem gvSIG w wersji Oxford Archaeology Digital Edition. Niestety nie współpracuje ona z wtyczką – powodem są autorskie poprawki OA do programu. Koniecznie należy więc zainstalować wersję oryginalną.

Wtyczka 3D dostępna jest dla Windows i Linux jako osobna binarka. W trakcie procesu instalacji należy jedynie wskazać położenie katalogu z podstawową wersją programu (o ile została zmieniona z domyślnej). Na linuksie wymagane jest posiadanie pakietu mesa-utils co oznacza, że wtyczkę bez problemów zainstalują użytkownicy Ubuntu czy Debiana. Dystrybucje takie jak Mandriva czy Fedora używają analogicznego pakietu o nazwie mesa-demos. Instalator gvsig-3d nie znajdując mesa-utils przerywa instalację na tych systemach. Jedyną możliwością jest póki co zastosowanie starszej wersji wtyczki. Problem zgłaszałem na blogu gvSIG 3d. Mam nadzieję, że zostanie to poprawione. Wtyczkę ściągniesz stąd.

Dla MacOSX przygotowano osobny pakiet zawierający kompletny program wraz z wtyczką. Dostępna jest tutaj.

W ramach testów wprowadziłem do programu dane z Ostrowitego:

  • rastry: Numeryczny Model Terenu (z CODGiK), ortofotomapy, mapy topograficzne, rektyfikowane zdjęcia lotnicze;
  • wektory: pliki shp z danymi archeologicznymi.

Zastosowałem odwzorowanie płaskie (opcja globu nie działa u mnie zbyt dobrze ani w Windows, ani w MacOSX), w układzie 92 i 3lub 4 krotne przewyższenie (w Ostrowitym różnice wysokości nie są zbyt duże). Efekt poniżej:

Poniżej jeszcze krótki filmik pokazujący działanie wtyczki:

Ba razie nie wszystko działa jeszcze bardzo stabilnie. Pojawiają się problemy z renderowaniem przy większej ilości warstw (niektóre nie są wyświetlane), czasami program wariuje wyświetlając Numeryczny Model Terenu z „dziurą” odpowiadającą zasięgowi jednej z warstw rastrowych, niewłaściwie wyświetla się cyfrowy globus, nie bardzo chce mi zadziałać wtyczka importu obiektów 3D. Należy mieć nadzieję, że te niedociągnięcia zostaną poprawione.

O wtyczce 3D do Qgis nie będę się rozpisywał, bo na razie nie miałem możliwości z nią pracować. Wygląda na to, że będzie to kolejny „cyfrowy globus”, przy czym ma ściśle współpracować z programem – wszystkie zmiany wprowadzane w oknie 2D mają znajdować swoje odzwierciedlenie  w 3D. Koncepcja wygląda bardzo interesująco. Jeśli jeszcze pojawi się mozliwość niezależnego (bez globusa) wyświetlania wektorowych warstw zawierających parametr z (wysokość) i wprowadzania modeli 3D (np budynków), to może być to rewelacyjne narzędzie.

Prezentacja wtyczki 3D do Qgis dostępna jest tutaj>>>

Wielkie dzięki dla ekip deweloperów obu programów!

Bardziej efektowne wizualizacje w SketchUp

Problem z wizualizacjami stworzonymi w Google SketchUp polega na tym, że nie zawsze wyglądają szczególnie imponująco. Twórca ma niewielki wpływ na uatrakcyjnienie ich wyglądu. Można ustawić cień oraz wybrać położenie „słońca”. I na tym koniec. W efekcie niekiedy ma miejsce mało atrakcyjny wizualnie efekt „spłaszczenia” bryły.

dubno1.png

Osoby znające się na grafice 3D powiedziałyby nam, że brakuje zaawansowanych opcji renderingu. Konieczne jest więc zastosowanie programu renderującego. Problem polega na tym, że albo zastosowanie takiego programu byłoby dla przeciętnego użytkownika nieco złożone, albo koniecznym stałby się zakup dodatkowej wtyczki renderującej do Google SketchUp, takiej jak SU Podium lub IRender. Jest to jednak dodatkowy koszt (odpowiednio 179$ i 189-449$), którego chcemy uniknąć. Oba rozwiązania możemy sprawdzić, wykorzystując 30 dniowe wersje demo, które niestety dodadzą do naszych dzieł znaki wodne i ograniczenia wielkości obrazka.

Alternatywnym rozwiązaniem jest skorzystanie z narzędzia Kerkythea. Jest to darmowy, udostępniany na licencji open-source, wieloplatformowy (Windows, Mac, Linux) renderer. Z aplikacją współpracuje również darmowy plugin do Google SketchUp o wdzięcznej nazwie SU2KT. Dodaje on do paska narzędzi SketchUp zestaw dodatkowych opcji, umożliwiając między innymi eksport gotowego modelu, wraz z materiałami tekstur do pliku xml, który możemy otworzyć w Kerkythea.

keryplug.jpg

ker.jpg

Tutaj oczywiście kontynuujemy pracę nad obrazkiem. Na szybko i bez rozgryzienia wszystkich opcji zrobiłem takie:

dubx2.jpg

dubx5.jpg

Tak – wiem. Nie są najlepsze. Trzeba popracować nad oświetleniem, dodać tło i kilka innych rzeczy. Ale dopiero co trafiłem na Kerkytheę i plugin do SketchUp’a. Popracuję i następne będą lepsze. Na pewno już teraz widać, że w tym tandemie tkwi spory potencjał. Co najważniejsze – zestaw jest darmowy i na prawdę ekstremalnie łatwy w użyciu. A przecież nikt z nas nie ma czasu na rozgryzanie Blendera, Povray’a i innych…