• Nie Znaleziono Wyników

8. Podsumowanie i wnioski

8.2. Potencjalne kierunki rozwoju

Cel pracy został zrealizowany, niemniej przedstawione rozwiązanie nie może zostać uznane za ostateczne ani pełne opracowanie problemu. Przede wszystkim zaprezentowana metoda koncentruje się na jak największym uproszczeniu reprezentacji terenu, oraz umożliwieniu użytkownikowi jak najdokładniejszego zdefiniowania jego układu, bez zbędnego nakładu pracy. W związku z tym, w niniejszej rozprawie opracowano możliwie uproszczone algorytmy do generowania samego kształtu terenu, które z łatwością mogą zostać uzupełnione. Kolejnym oczywistym usprawnieniem jest zwiększenie samej ilości dostępnych obszarów (zwłaszcza w przypadku generowania powierzchni).

Podobna sytuacja występuje w przypadku dodawania szczegółów do obiektów oraz rozmieszczania dodatkowych elementów na scenie. Dostępne metody rozważają wiele przypadków, zarówno jeżeli chodzi o modelowanie całych ekosystemów [14] jak i rozmieszczania pojedynczych elementów [98]. Zwłaszcza w przypadku generacji lochów rozwinięcie zaproponowanego rozwiązania o metodę rozmieszczania dodatkowych elementów (takich jak pułapki, skrzynie ze skarbami, elementy oświetlenia itd.) byłoby znaczną poprawą.

Przy generacji jaskiń logicznym usprawnieniem byłoby opracowanie innego algorytmu do generacji kształtu w pojedynczym kafelku, bądź odmienne zastosowanie L-systemu, w celu skrócenia czasu działania samego algorytmu.

89

Jako że zaprezentowane rozwiązanie ma znaleźć zastosowanie przede wszystkim przy tworzeniu terenu do gier komputerowych, symulacji lub podobnych zastosowań, kolejnym ulepszeniem mogłoby być proste umożliwienie testowania wygenerowanych terenów właśnie w tych zastosowaniach. Obecne rozwiązanie umożliwia edycję terenu w programie do edycji grafiki 3D Blender, jednak rozszerzenie proponowanej metody o możliwość umieszczenia wygenerowanych obszarów np. bezpośrednio w grze komputerowej ułatwiłoby dokładniejsze sprawdzenie parametrów wygenerowanych obiektów.

90

Spis rysunków

Poniżej zamieszczony został spis wszystkich rysunków wykorzystanych w pracy, w kolejności ich występowania.

• Rysunek 2.1.: Schemat działania metody przypisywania tekstur z wykorzystaniem odległości geodezyjnej (źródło: [67]). Strona 15.

• Rysunek 2.2.: Przykłady naturalnych systemów: (góra) generowanych za pomocą rozwiązania zaprezentowanego przez Beneša (źródło: [14]), (dół), tworzonych z wykorzystaniem metody Hujisera, Dobea, Bronsvoorta i Bidarry (źródło: [46]). Strona 16.

• Rysunek 2.3.: Przykłady dróg wygenerowanych przez rozwiązanie Galina, Peytaviea, Maréchala i Guérina (źródło: [36]). Strona 17.

• Rysunek 2.4.: Przykład systemu miejskiego generowanego przez metodę Greutera, Parkera, Stewarta i Leacha (źródło: [40]). Strona 17.

• Rysunek 2.5.: Przykład obiektów generowanych przez metodę Merrela i Manocha – obiekt oryginalny znajduje się po lewej stronie (źródło: [63]). Strona 18

• Rysunek 2.6.: Przykład generacji map systemów miejskich (źródło: [34]). Strona 20.

• Rysunek 2.7.: Przykład generacji stylizowanych map średniowiecznych razem z obrazem wejściowym (źródło: [75]). Strona 21.

• Rysunek 2.8.: Kolejne etapy generacji terenu za pomocą algorytmów ewolucyjnych, razem z jego końcowym wyglądem (źródło: [80]). Strona 22.

• Rysunek 2.9.: Przykład terenu wygenerowanego za pomocą agentów (źródło: [33]). Strona 22.

• Rysunek 2.10.: Przykład generacji terenu za pomocą erozji wodnej (źródło: [102]). Strona 24.

• Rysunek 2.11.: Przykład generacji terenu za pomocą połączenia algorytmów erozji wodnej oraz tektonicznego wypiętrzania (źródło: [23]). Strona 24.

• Rysunek 2.12.: Przykład generacji terenu za pomocą metody opartej na hydrologii (źródło: [38]).

Strona 25.

• Rysunek 2.13.: Przykład generacji terenu na podstawie jego cech (źródło: [93]). Strona 25.

• Rysunek 2.14.: Przykład interaktywnego edytowania terenu: teren oryginalny znajduje się z lewej strony, teren po edycji został zaprezentowany z prawej strony (źródło: [116]). Strona 25.

• Rysunek 2.15.: Przykład generacji terenu za pomocą schematycznych map (źródło: [94]). Strona 27.

• Rysunek 2.16.: Kolejne kroki generacji terenu na podstawie map. (a) Naturalny teren z drogą, (b) teren uzupełniony o miasto, (c) zbliżenie miasta (źródło: [99]). Strona 27.

• Rysunek 2.17.: Przykład generacji za pomocą krzywych definiujących poszczególne fragmenty terenu (źródło: [45]). Strona 27.

• Rysunek 2.18.: Przykład generacji kanionów (źródło: [64]). Strona 28.

• Rysunek 2.19.: Przykład wytłaczania mapy w celu osiągnięcia kształtu zawierającego nawis.

Autorzy obliczają funkcję przekształcenia, która pozwala uzyskać pożądany kształt (źródło: [37]).

Strona 30.

91

• Rysunek 2.20.: Przykład generacji jaskiń razem z elementami charakterystycznymi (źródło: [25]).

Strona 30.

• Rysunek 2.21.: Przykłady generacji jaskiń za pomocą środowiska do modelowania (źródło: [20]).

Strona 32.

• Rysunek 2.22.: Przykład generacji podziemi: (b) L-system określający punkty strukturalne oraz (a) wygenerowany teren z nałożoną teksturą (źródło: [59]). Strona 32.

• Rysunek 2.23.: Przykład poziomu wygenerowanego dla gry Tribal Trouble, wykorzystującej usprawniony algorytm erozji w celu nadawania kształtu wynikowemu terenowi (źródło: [68]).

Strona 35.

• Rysunek 2.24.: Przykładowy zestaw map do wyboru, wygenerowanych dla gry typu FPS (źródło:

[83]). Strona 36.

• Rysunek 3.1.: Typy przejść występujących w jaskiniach: a. rozgałęziające się, b. sieciowe, c.

zespolone, d. odgałęziające się i gąbkowe (źródło: [71]). Strona 41.

• Rysunek 4.1.: Przykładowa mapa terenów używana przy generacji trójwymiarowego modelu terenu, dla powierzchni (pełny opis oznaczeń znajduje się w dodatku B.2.). Strona 47.

• Rysunek 4.2.: Przykładowa mapa terenu dla trójpoziomowego podziemia. Pionowe, czarne linie oznaczają granicę pomiędzy mapami kolejnych poziomów. Poziomy są umieszczone kolejno od najwyższego (tzn. znajdującego się najbliżej powierzchni) zaczynając od lewej strony (pełny opis oznaczeń znajduje się w dodatku B.2.). Strona 48.

• Rysunek 4.3.: Ilustracja z lewej przedstawia mapę wysokości dla generacji powierzchni (teren o rozmiarze 10 na 10 kafelków). Ilustracja z prawej przedstawia mapę wysokości dla modelu trójpoziomowych podziemi (rozmiar pojedynczego poziomu wynosi 5 na 5 kafelków). Czarne, pionowe linie oznaczają granice między reprezentacją poszczególnych poziomów. Strona 48.

• Rysunek 4.4.: Dwie alternatywne reprezentacje wszystkich możliwych połączeń, dla trójpoziomowego podziemia, o pojedynczym poziomie w rozmiarze 5 na 5 kafelków. Strona 50.

• Rysunek 4.5.: Przykładowa mapa pojedynczego poziomu w procesie generacji jaskiń. Wielkość pojedynczego kafelka została ustawiona na 41 pikseli. Strona 50.

• Rysunek 5.1.: Ewolucja mapy pojedynczego kafelka. Zaczynając od lewej strony: mapa z wygenerowanym L-systemem, uzupełnienie kształtu za pomocą automatu komórkowego, łączenie powstałych przestrzeni oraz końcowe wygładzanie mapy. Strona 54.

• Rysunek 5.2.: Przykładowa mapa jaskiń wygenerowana przez zaprezentowany algorytm, razem z danymi wejściowymi – mapą terenów oraz mapą połączeń (pełny zestaw oznaczeń dla poszczególnych map wejściowych– patrz dodatek B.2.). Strona 54.

• Rysunek 5.3.: Rozmieszczenie punktów do rozszerzania L-Systemu w przypadku pokoi dla:

oryginalnego kształtu (obraz z lewej strony), oraz pierwszego rozszerzenia każdego z nich (obraz z prawej strony). Strona 56.

• Rysunek 5.4.: Przykładowe kształty pokoi wygenerowanych przez procedurę opartą na L-systemie.

Górny rząd przedstawia małe pokoje, natomiast w dolnym rzędzie zostały pokazane pokoje duże.

Pomieszczenia oznaczone są kolorem białym, natomiast kolor czerwony odnosi się do korytarzy łączących je z resztą systemu lochów. Strona 57.

92

• Rysunek 5.5.: Zestaw reguł rozszerzania pokoi dla kluczy początkowych, oraz przykłady ich zastosowania. (1) – początkowy kształt umieszczony na środku kafelka zaklasyfikowanego jako pokój. Kolejne ilustracje przedstawiają efekty działania wybranych reguł. Strona 57.

• Rysunek 5.6.: Przykładowe kształty korytarzy wygenerowane przez zaprezentowaną procedurę, dla różnych rodzajów połączeń pomiędzy kafelkami (T – połączenie z górnym kafelkiem, B –

• Rysunek 5.8.: Pierwszy krok generacji trójwymiarowego modelu terenu – umieszczenie płaszczyzn odpowiadających danym z mapy położenia (mapa opisująca wysokości wszystkich kafelków terenu znajduje się w lewym dolnym rogu). Strona 62.

• Rysunek 5.9.: Kolejne kroki tworzenia modelu terenu: przenoszenie kształtów terenu na kafelki (góra), łączenie krawędzi kafelków (środek) oraz końcowe wygładzanie terenu (dół). Mapa położenia i mapa terenów wykorzystane do generacji znajdują się w lewym dolnym rogu. Strona 63.

• Rysunek 5.10.: Przykłady systemów jaskiń wyprodukowanych za pomocą zaprezentowanego algorytmu. Strona 66.

• Rysunek 5.11.: Przykłady systemów lochów wyprodukowanych za pomocą zaprezentowanego algorytmu. Strona 67.

• Rysunek 5.12.: Przykład uzupełniania obiektu o szczegóły: wychodząc od oryginalnego terenu (górny, lewy), poprzez dodanie modyfikatora (górny, prawy), oraz uzupełnienie obiektu o teksturę (ilustracja na dole). Strona 69.

• Rysunek 5.13.: Przykład wzgórza porośniętego trawą, z ograniczeniem wysokości co do jej występowania. Strona 69.

• Rysunek 5.14.: Przykład fragmentu systemu jaskiń z wygenerowanymi i rozmieszczonymi elementami charakterystycznymi. Strona 70.

• Rysunek 6.1.: Wykres ilustrujący zależność pomiędzy wielkością mapy, wielkością pojedynczego kafelka, a czasem generowania dwuwymiarowej reprezentacji terenu. Strona 71.

• Rysunek 6.2.: Wpływ maksymalnej długości reguł początkowych na czas generacji map kafelków.

Rozmiar kafelka został ustawiony na 31, system składa się z jednego poziomu o rozmiarze 5x5 kafelków. Strona 72.

• Rysunek 6.3.: Wpływ maksymalnej długości reguł początkowych na kształt generowanych systemów. Rozmiar kafelka jest ustalony na 21 pikseli. Strona 73.

• Rysunek 6.4.: Wpływ wartości progu dla automatu komórkowego na kształt wygenerowanego fragmentu systemu. Komórki białe reprezentują teren należący do jaskini. Strona 74.

• Rysunek 6.5.: Wpływ ilości iteracji na kształt generowanego L-systemu, przed (rysunki lewe) i po (rysunki prawe) działaniu automatu komórkowego, oraz przeprowadzeniem operacji

93

wygładzających mapę. Pola białe wizualizują komórki stanowiące część systemu podziemi, podczas gdy komórki czarne reprezentują ściany i przeszkody. Strona 74.

• Rysunek 6.6.: Przykład map 2D wygenerowanych dla reprezentacji powierzchni. Rozmiar pojedynczego kafelka został ustawiony na 33, poziom ma wymiar 5x5 kafelków. Strona 76.

• Rysunek 6.7.: Przykład wizualizacji wygenerowanego terenu powierzchniowego z nałożonym prostym materiałem i teksturą. Strona 77.

• Rysunek 6.8.: Przykład poziomów dla proceduralnej generacji jaskiń. Rozmiar pojedynczego kafelka został ustawiony na 31, poziom ma wymiar 5x5 kafelków. Strona 77.

• Rysunek 6.9.: Przykład wizualizacji wygenerowanych systemów jaskiń. Wszystkie elementy mają nałożony przykładowy materiał oraz teksturę. W celu jak najlepszej wizualizacji przejść każdy z systemów składał się z dwóch poziomów o rozmiarze 2x2 kafelki. Strona 78.

• Rysunek 6.10.: Przykład poziomów dla proceduralnej generacji lochów. Rozmiar pojedynczego kafelka został ustawiony na 51, poziom ma wymiar 5x5 kafelków. Strona 78.

• Rysunek 6.11.: Zestaw różnych kształtów generowanych przez procedurę tworzenia podziemi stworzonych przez człowieka dla dużych pokoi (lewa górna część), małych pokoi (prawa górna część) oraz korytarzy (dolna część). Rozmiar kafelka został ustawiony na 71, dla każdego rodzaju przestrzeni zostało wygenerowanych 100 przykładowych kształtów. Strona 79.

• Rysunek 6.12.: Przykład wizualizacji kształtów korytarzy wygenerowanych przez procedurę generacji podziemi stworzonych przez człowieka, z nałożonym materiałem i teksturą. Strona 80.

• Rysunek 6.13.: Przykład wizualizacji kształtów małych pokoi wygenerowanych przez procedurę generacji podziemi stworzonych przez człowieka, z nałożonym materiałem i teksturą. Strona 80.

• Rysunek 6.14.: Przykład wizualizacji kształtów dużych pokoi wygenerowanych przez procedurę generacji podziemi stworzonych przez człowieka, z nałożonym materiałem i teksturą. Strona 81.

• Rysunek 6.15.: Przykład wizualizacji wygenerowanych systemów podziemi stworzonych przez człowieka, z nałożonym prostym materiałem i teksturą. W celu jak najlepszej wizualizacji przejść każdy z systemów składał się z dwóch poziomów o rozmiarze 2x2 kafelki. Strona 82.

94

Spis tabel

Poniżej zamieszczony został spis tabel wykorzystanych w pracy, w kolejności ich występowania.

• Tabela 1.: Podział algorytmów proceduralnej generacji ze względu na zastosowanie oraz wykorzystywane metody. Strona 38.

• Tabela 2.: Wpływ wielkości mapy i rozmiaru pojedynczego kafelka na czas generacji map kafelków. Czas podany jest w sekundach. Strona 71.

• Tabela 3: Czas trwania generacji systemu, w zależności od maksymalnej długości początkowych reguł L-systemu. Rozmiar kafelka został ustawiony na 31, system składa się z jednego poziomu o rozmiarze 5x5 kafelków. Strona 72.

• Tabela 4.: Czas generacji dwuwymiarowych kształtów terenu, w zależności od rozmiaru mapy i wielkości kafelka. Strona 74.

• Tabela 5.: Czas generacji map lochów złożonych z samych dużych pokoi, w zależności od rozmiaru kafelka i rozmiaru mapy. Strona 75.

• Tabela 6.: Czas generacji map lochów złożonych z samych małych pokoi, w zależności od rozmiaru kafelka i rozmiaru mapy. Strona 76.

• Tabela 7.: Czas generacji map lochów złożonych z samych korytarzy, w zależności od rozmiaru kafelka i rozmiaru mapy. Strona 76

• Tabela 8.: Przegląd algorytmów proceduralnej generacji terenu ze względu na ich właściwości z punktu widzenia użytkownika (w przypadku gdy autorzy wykonali kilka prac w danym temacie, pod uwagę była brana najnowsza). Strona 84.

• Tabela 9.: Wyniki ankiety przygotowanej w celu oceny przygotowanego rozwiązania w zastosowaniach takich jak gry komputerowe, symulacje lub wizualizacje. Strona 86.

95

Lista algorytmów

Poniżej umieszczono listę algorytmów przedstawionych w pracy, w kolejności ich występowania.

• Algorytm 1.: Generacja map kafelków dla modelu terenu powierzchniowego. Strona 51.

• Algorytm 2.: Generacja map kafelków dla systemu jaskiń. Strona 52.

• Algorytm 3.: Generacja map kafelków dla systemu lochów. Strona 55.

• Algorytm 4.: Generacja trójwymiarowego modelu terenu - powierzchnia. Strona 61.

• Algorytm 5.: Generacja trójwymiarowego modelu terenu – podziemia. Strona 67.

96

Dodatek A. Zawartość płyty CD

Dołączona do niniejszej pracy płyta CD powinna zawierać:

1. Plik „.docx” oraz „.pdf” z niniejszą pracą doktorską.

2. Folder „Wykorzystane ilustracje”, z wszystkimi obrazami wykorzystanymi w niniejszej pracy doktorskiej.

3. Folder „Przykładowe wyniki”, zawierający wyniki działania aplikacji, zarówno dla dwuwymiarowych jak i trójwymiarowych kształtów.

4. Folder „Przykładowe pliki wejściowe”, z zestawami map do różnych rodzajów generacji.

5. Folder „Generator”, z przygotowaną aplikacją, ilustrującą działanie zaprezentowanych algorytmów.

6. Plik „.pdf” ze szczegółową instrukcją obsługi przygotowanej aplikacji.

7. Plik „.docx” oraz „.pdf” z wzorem wykorzystanej ankiety.

97

Dodatek B. Instrukcja obsługi przygotowanego

środowiska

Powiązane dokumenty