Modelowanie terenu na bazie symulacji erozji z wykorzystaniem deformowalnych wokseli Autor: Michał Kurowski Opiekun: prof. dr hab. inż. Jan Zabrodzki Wydział Elektroniki i Technik Informacyjnych, Zakład Grafiki Komputerowej
Wprowadzenie Slajd 1 z 20 Plan prezentacji Zalety proceduralnej generacji terenu Używane techniki Pierwsze podejście do wokseli teren z jaskiniami Napotkane problemy Deformowalne woksele Środowisko testowe Aktualny stan prac Plany na przyszłość Pytania Cel: uzasadnić obrany kierunek i zaprezentować aktualny stan prac
Zalety proceduralnej generacji terenu Slajd 2 z 20 Treść proceduralna Treść stworzona algorytmicznie Zalety: krótszy czas mniejszy koszt większa ilość większe zróżnicowanie mniejsza objętość Wady: mniejsza kontrola (szczegółów) nieprzewidziane efekty kwestia oceny jakości
Używane techniki Slajd 3 z 20 Tradycyjne metody Synteza mapy wysokości lub siatki oparta o: błędne formacje szumy fraktale/multifraktale przemieszczanie środkowego punktu osadzanie cząstek Zalety: szybkość, prostota, brak znaczących artefaktów Wady: ograniczone mapą wysokości, trudność w modelowaniu spójnego, naturalnego terenu Przykłady: Terragen MojoWorld (Kenton Musgrave)
Używane techniki Slajd 4 z 20 Funkcje gęstości Fraktale, multifraktale, szumy, prymitywy geometryczne... Zalety: szybkość (czasem możliwość generacji w locie ), prostota, potencjalnie nieskończone przestrzenie, elastyczność Wady: elastyczność, trudność w modelowaniu naturalnego terenu Przykłady: MojoWorld (Dmytry Lavrov) VoxelLogic
Używane techniki Slajd 5 z 20 Erozja Różne reprezentacje terenu: mapa wysokości, warstwowa mapa wysokości, woksele, siatka wielokątów Różne modele wody: eulerowskie (wirtualne rury, model płytkiej wody, równania Naviera-Stokesa w 3D) lagrange'owskie (cząsteczki, SPH); heurystyczne (Olsen) Zalety: zazwyczaj spójne i wizualnie realistyczne rezultaty Wady: czas działania wersji 3D, ograniczenia wersji 2D, mała elastyczność, zazwyczaj małe obszary (w szczególności w wersji 3D)
Używane techniki Slajd 6 z 20 Techniki pół-proceduralne Terrain Synthesis: An Interactive Approach Synteza przy użyciu bazy mikro form oraz mapy prymitywów Terrain Synthesis from Digital Elevation Models Synteza przy użyciu przykładowego terenu oraz szkicu użytkownika Terrain Synthesis By-Example Wzbogacanie stworzonego przez użytkownika terenu o detale pochodzące z dostarczanego przykładu
Pierwsze podejście do wokseli teren z jaskiniami Slajd 7 z 20 Modelowanie terenu 3D z jaskiniami Doliny, nawisy, łuki i jaskinie => woksele Wydajność => GPU Zielony wykorzystuje GPU Niebieski wykorzystuje jedynie CPU
Pierwsze podejście do wokseli teren z jaskiniami Slajd 8 z 20 Teren
Napotkane problemy Slajd 9 z 20 Problemy Występowanie artefaktów Zbyt uproszczona erozja boczna Blokowość struktur o małej skali Częste występowanie tarasów Stosunkowo mały obszar symulacji Ograniczone możliwości sterowania danymi wejściowymi Niedostateczne uchwycenie dynamiki przepływu wody
Slajd 10 z 20 Deformowalne woksele Mają lepiej oddawać kształt erodowanego terenu *w trakcie* erozji (na potrzeby symulacji wody) Mają uwzględniać kierunek erozji (erozja boczna) Docelowo pomyślane jako nieregularna (różne właściwości materiału) struktura hierarchiczna (optymalizacje) Wstępna formacja jest tworzona tradycyjnymi metodami
Slajd 11 z 20 Smoothed Particle Hydrodynamics Woda przedstawiona przy pomocy cząsteczek Parametry symulacji (np. siły, gęstości) są możliwe do wyznaczenia w dowolnym punkcie przestrzeni poprzez zsumowanie odpowiednio przeskalowanych kontrybucji pochodzących od znajdujących się w pobliżu cząstek Skalowanie odbywa się przy pomocy odpowiednich symetrycznych jąder wygładzających Daje realistyczne wyniki Reprezentacja jest rzadka Jest podatna na zewnętrzne modyfikacje Istnieją implementacje GPU
Środowisko testowe Slajd 12 z 20 Program do symulacji erozji Środowisko do eksperymentów OpenGL, FLTK, OpenMP Oddzielenie mechaniki i reprezentacji wody, transportu oraz terenu Interaktywne sterowanie symulacją
Środowisko testowe Slajd 13 z 20 Erozja, transport i osadzanie materiału Oddzielny system cząsteczek Erozja polega na deformowaniu wokseli w oparciu o wygładzony przepływ wody Cząsteczki materiału są unoszone przez przepływ wygenerowany przy użyciu SPH Małe, znajdujące się blisko siebie cząsteczki są zlepiane w jedną większą Osadzanie w oparciu o czas unoszenia, prędkość i obecność wody Depozycja polega na gładkim deformowaniu sąsiednich wokseli
Środowisko testowe Slajd 14 z 20 Degeneracja Gdy nie wygładzamy przepływu i osadzania...
Środowisko testowe Slajd 15 z 20 Przetwarzanie końcowe Zalepianie szczelin dodatkowymi wielokątami Zlepianie wierzchołków
Aktualny stan prac Slajd 16 z 20 Aktualny stan prac
Aktualny stan prac Slajd 17 z 20 Aktualny stan prac
Aktualny stan prac Slajd 18 z 20 Wydajność 64X64x16 wokseli, 2048 cząsteczek, 512 kroków Czas: 250-400 s SPH 8-12% Transport 10-50% Erozja 25-70% Porównanie z poprzednim rozwiązaniem: 64x64x32 woksele, 2048 kroków, czas 1.55 s UWAGA pierwsza implementacja miała czas 831 s, a najlepsza wykorzystująca tylko CPU 158 s
Plany na przyszłość Slajd 19 z 20 Plany na przyszłość Prace nad spójnością terenu Zorganizowanie wokseli w strukturę hierarchiczną Dopracowanie systemu transportu materiału Dopracowanie mechaniki erozji bocznej Optymalizacje wydajnościowe (OpenMP OpenCL)
Pytania Slajd 20 z 20 Kontakt: Michał Kurowski, lurker_pas@o2.pl Źródła ilustracji: Terragen (Planetside) MojoWorld (Pandromeda) Tribal Trouble (Jacob Olsen) Darwinia (Introversion) Zasoby własne Pytania?