• Nie Znaleziono Wyników

1.1. Geneza i przedmiot rozprawy

W ciągu ostatnich lat gry komputerowe i aplikacje o podobnych wymaganiach graficznych, oferują użytkownikom sceny i krajobrazy coraz bliższe tym znanym ze świata rzeczywistego. Zwłaszcza w przypadku gier komputerowych można dostrzec znaczne postępy i swoisty wyścig mający na celu zaprezentowanie graczom jak najciekawszej wizualnie i jak najbardziej zróżnicowanej zawartości. W miarę wzrostu realizmu poszczególnych elementów wirtualnego świata, wydłuża się także czas produkcji poszczególnych trójwymiarowych modeli. Ze względu na pożądane właściwości końcowej sceny rośnie także ogólna złożoność wizualna (ang. visual complexity)[35], określająca między innymi różnorodność oraz liczbę wykorzystanych w tym procesie elementów.

Zależność ta dotyczy zarówno pojedynczych modeli, jak również wykorzystywanych tekstur, elementów związanych z dialogami oraz całych map poziomów. Wzrost ilości i jakości zawartości nieuchronnie prowadzi do zwiększenia nakładu pracy koniecznego do ukończenia podobnych z punktu widzenia gracza elementów (np. poziomów o porównywalnej wielkości i czasie wymaganym na ich ukończenie). Konieczność ręcznego tworzenia całości wykorzystywanej zawartości niejednokrotnie wymaga od twórców albo zatrudnienia większej ilości osób do tworzenia potrzebnych elementów, albo zmniejszenia ich całkowitej liczby. Zwłaszcza w przypadku gier komputerowych często występuje to drugie podejście, co z kolei skutkuje tym iż nowsze produkcje są niejednokrotnie o wiele krótsze od swoich poprzedników (biorąc pod uwagę liczbę godzin potrzebnych na przejście całej gry).

Rozwiązaniem powyższego problemu może być zastosowanie proceduralnej generacji zawartości. Wykorzystanie algorytmów do automatycznego stworzenia poszczególnych elementów np. gry komputerowej nie jest podejściem nowym. Zwłaszcza na początku istnienia tego typu aplikacji, procedury były wykorzystywane choćby po to, by oszczędzić miejsce na nośnikach danych, mocno ograniczonych pod tym względem. Wraz ze wzrostem możliwości sprzętowych, także zastosowania algorytmów proceduralnej generacji uległy znacznemu rozszerzeniu.

Jednym z możliwych zastosowań, często stanowiącym element większych rozwiązań, jest generacja tekstur [35]. O ile w części przypadków (zwłaszcza gdy przedstawiają one charakterystyczne elementy czy ornamenty) tekstury są tworzone ręcznie przez grafików, o tyle gdy pokrywają one duże powierzchnie, bądź powtarzają się na wielu podobnych

10

obiektach, manualne utworzenie odpowiedniej ilości unikalnych obrazów wymagałoby wiele pracy jak również niosło ze sobą ryzyko iż elementy te będą powtarzalne.

W miarę jak rośnie stopień skomplikowania proceduralnie generowanego elementu, niejednokrotnie co raz trudniej jest przewidzieć wynik działania algorytmu i kontrolować kształt tworzonego obiektu. Z tego też powodu dostępne rozwiązania niejednokrotnie skupiają się na generacji jednego elementu, np. skał [29], rzek [24, 78], dróg [36], czy roślinności [77]. Rozmieszczanie podobnych obiektów na scenie jest kolejnym problemem i to zarówno w ujęciu wszelkiego rodzaju wnętrz [113] i fasad budynków [60], jak również przy zewnętrznych krajobrazach [46].

Kolejnym wyzwaniem w dziedzinie proceduralnej generacji zawartości jest tworzenie w ten sposób modelu całego terenu. Zwłaszcza modelowanie map przewidzianych do gier komputerowych oraz podobnych zastosowań, wymaga dokładnego zdefiniowania właściwości terenu, jak również wzięcia pod uwagę różnych dodatkowych czynników (np.

historii, która będzie się rozgrywała w poszczególnych miejscach). Teren w grach zazwyczaj jest rozległy, łączy też w sobie wiele różnych regionów, z których każdy może mieć inne charakterystyki (np. miasta, lasy, góry). Podejścia do generacji tego typu obszarów często różnią się znacznie: od tworzenia jedynie konkretnych typów przestrzeni [78], po metodologie i środowiska służące do generowania skomplikowanych modeli terenu [72, 94], czy wręcz całych planet [14, 32, 35].

Poza zakresem generowanych terenów dostępne metody często też różnią się sposobem w jaki użytkownik może dokonywać zmian, bądź definiować właściwości końcowego obiektu.

Niektóre metody generują elementy terenu wykorzystując zestaw definiowanych przez użytkownika parametrów [78, 101], podczas gdy inne mogą wykorzystywać uproszczone wersje obiektów jako bazę do generacji [63], tworzą mapy na podstawie rozgrywających się w nich historii [114], ewoluują końcową mapę zgodnie z wytycznymi użytkownika [80], czy też tworzą ostateczny model na podstawie jego schematycznej reprezentacji [79].

Specyficznym elementem terenu, wymagającym nieco odmiennej definicji są jaskinie, tereny z nawisami, oraz wszelkiego rodzaju przestrzenie, które nie mogą być zdefiniowane np. za pomocą mapy wysokości. Ze względu na ich specyfikę [71], takie obszary wymagają innych reguł podczas generacji, zarówno w przypadku obszarów rozpatrywanych w przestrzeni dwuwymiarowej [10, 12, 48], jak również przy w pełni trójwymiarowych modelach [18, 19, 25].

Pomimo różnorodności dostępnych algorytmów proceduralnej generacji, zawartość wykorzystywana w grach, symulacjach oraz innych, podobnych zastosowaniach, w dalszym

11

ciągu w dużym stopniu jest produkowana ręcznie. Przyczyny takiego stanu rzeczy najczęściej można doszukać się w jednej z kilku charakterystyk proceduralnych algorytmów:

• nieintuicyjny charakter danych wejściowych wykorzystywanych w algorytmie,

• trudności z przewidzeniem wyników działania procedury,

• niski stopień kontroli nad układem generowanego obiektu,

• trudność z późniejszą edycją uzyskanych modeli.

Dostępne procedury rozwiązują problem kontroli nad procesem generacji na kilka różnych sposobów. Jedną z metod jest upewnienie się iż wynikowy obiekt będzie spełniał serię zdefiniowanych przez użytkownika właściwości [113]. Kolejne rozwiązanie wykorzystuje algorytmy ewolucyjne do modyfikacji terenu tak by spełniał konkretne parametry, dostosowując go w kolejnych iteracjach do danych wprowadzanych przez użytkownika [80].

Jeszcze inne podejścia pozwalają określić kształt terenu na podstawie schematycznych map [94, 96]. Zwłaszcza w przypadku generowania podziemi stopień kontroli nad ogólnym kształtem terenu często jest tylko minimalny [18, 19], bądź też proponowane rozwiązanie stanowi raczej narzędzie służące do modelowania i wymaga od użytkownika dużej ilości dodatkowej pracy [20]. Dostępna jest również cała gama programów wspomagających modelowanie poszczególnych elementów (jak np. aplikacja SpeedTree [105], służąca do modelowanie drzew i podobnych struktur), mających za zadanie wspomagać i przyspieszać pracę grafików.

Przedmiotem szczególnego zainteresowania w niniejszej pracy jest proceduralna generacja terenu (w tym także podziemi) za pomocą zestawu uproszczonych i łatwych do zrozumienia danych wejściowych. Tworzenie zawartości, zwłaszcza biorąc pod uwagę takie zastosowania jak gry komputerowe, symulacje, wizualizacje, czy inne podobne dziedziny, wymaga możliwości dokładnego zdefiniowania ostatecznego kształtu terenu, jak również zależności pomiędzy poszczególnymi jego elementami. Także możliwość późniejszej edycji otrzymanych modeli nie jest tutaj bez znaczenia, choćby z tego powodu, by grafik był w stanie umieścić dodatkowe obiekty na scenie, bądź poprawić te obszary, które nie spełniają jego wymagań. Przedmiotem niniejszej rozprawy jest metoda generowania edytowalnego, trójwymiarowego modelu terenu na podstawie wybranych cech oraz zestawu schematycznych map dwuwymiarowych.

12 1.2. Cele i teza pracy

Celem przedstawionej pracy jest opracowanie metody proceduralnej generacji terenu opartej na uproszczonych danych wejściowych, która umożliwia tworzenie struktur takich jak podziemia i jaskinie. Do jej potencjalnych zastosowań należy automatyczna generacja trójwymiarowego modelu terenu, wspomaganie grafików i twórców poziomów w procesie koncepcyjnym jak również podczas modelowania. Opracowana metoda powinna:

• umożliwiać generację skomplikowanego terenu z uproszczonych danych wejściowych,

• umożliwiać generację podziemi i jaskiń,

• generować obiekty o możliwie nieskomplikowanej siatce, umożliwiającej zastosowanie np. w grach komputerowych,

• zapewniać możliwość prostej edycji otrzymanych obiektów.

Rozwiązania dostępne w literaturze oferują jedynie część z powyższej funkcjonalności.

Brak nawet jednej z wymienionych właściwości może sprawiać iż dana metoda nie będzie odpowiednia do zastosowań takich jak gry komputerowe czy symulacje. Jednocześnie ze względu na rosnący stopień skomplikowania wykorzystywanych obiektów (zarówno 2D jak i 3D), pojawia się konieczność stworzenia rozwiązań, które przyspieszą pracę grafików.

Tezą pracy jest pokazanie iż możliwe jest opracowanie metody spełniającej powyższe wymagania. W celu weryfikacji przedstawionej tezy zostało przygotowane oprogramowanie, natomiast jego działanie zostało skonfrontowane z wyglądem poszczególnych elementów występujących w naturze, jak również ich odpowiedników np. z gier komputerowych.

1.3. Treść rozprawy

We wstępie zawarte zostało wprowadzenie do różnych zagadnień proceduralnej generacji zawartości. Przedstawiono również motywację stojącą za podjęciem tematu proceduralnej generacji trójwymiarowego modelu terenu z wykorzystaniem schematycznych map.

Określony został cel, teza jak również zakres rozprawy.

Rozdział 2 „Omówienie istniejących rozwiązań” przedstawia obecny stan wiedzy w

Powiązane dokumenty