WEBESTEEM | BATTLE AREA | FORUM
art & design
webesteem magazine | nr 4 | grafika
art & design
art & design

Największe
rozmiary
tekstur stosujemy tylko tam, gdzie naprawdę tego potrzeba
- dla głównych obiektów,
bądź bardzo dużych obiektów drugoplanowych

3D

3d w grach

 

Dzisiaj spróbuję zająć się tematem najbliższym odbiorcy ;). Któż nie gra (bądź nie grał) w gry komputerowe? No fajnie - są przyjemne, pozwalają się rozerwać, ale... czy ktoś się zastanawiał jak one powstają? Dlaczego wyglądają tak a nie inaczej? Postaram się parę rzeczy rozjaśnić.

 

Aby powstała gra - potrzeba pełnej kooperacji między grafikami i programistami. W pierwszej kolejności programiści szykują silnik, na którym będzie chodzić gra. Co to jest? W najprostszych słowach można powiedzieć, że jest to fundament jakiejkolwiek gry. Silnik zawiera w sobie moduł renderujący, oraz podstawy logiki. Do niego dopisywane są takie rzeczy jak fizyka, sztuczna inteligencja itp.

O silniku rozpisywać się nie będę - jako, że ani nie jest to tematem, ani się na tym nie znam - popytajcie o to programistów. Chciałbym się natomiast skupić na tym jak powstają modele do gier.

Zaczynając robić model musimy się zastanowić jak bardzo trzeba „pójść w szczegóły”. Jeśli nie będzie widać go z bliska - w gruncie rzeczy możemy się ograniczyć do podstawowej bryły, a szczegóły odwzorować na teksturze.

Ale po co takie ograniczenia?

Z prostej przyczyny - silniki są stworzone tak, że renderują w czasie rzeczywistym grafikę. Wiadomo, czym mniej trójkątów, tym gra będzie szybciej chodzić. Dla przykładu: jak robiliśmy gry samochodowe, to samochody główne zajmowały ok. 5000 trójkątów (łącznie z kołami ), natomiast samochody do ruchu drogowego staraliśmy się ograniczać do ok. 500 - 600 trójkątów.

Na pierwszy rzut oka wydaje się to przesadą (taka oszczędność), ale nie zapominajmy, że komputery muszą sobie poradzić nie tylko z jednym samochodem. Weźmy np. 4 główne samochody + 10 samochodów do ruchu drogowego + cała plansza z otoczeniem (ok. 100000 trójkątów) - w ten sposób mamy już 125000 trójkątów, z których płynnym wyświetlaniem musi sobie poradzić nasz komputer. Nie jest to łatwe.

Dlaczego obiekty w grach zbudowane są z trójkątów, a nie z kwadratów (jak to jesteśmy przyzwyczajeni)?

Związane jest to z zasadą działania kart graficznych, które najszybciej renderują właśnie trójkąty. Trójkąt jest najmniej skomplikowaną widoczną płaszczyzną. Przyśpiesza to szybkość renderowania, ale również powoduje zagęszczenie siatki. Dla przykładu zwykły sześcian złożony z kwadratów ma 6 polygonów, natomiast ten sam sześcian złożony z trójkątów ma ich aż 12.

Dlatego modelując obiekty trzeba się dobrze zastanawiać od samego początku jak będzie przebiegać ścianka (żeby zbytnio nie zagęścić siatki).

Moją ulubioną metodą modelowania lowpoly jest konstruowanie obiektu najpierw na kwadratach, a później strianglowanie go i wprowadzanie poprawek. Z obserwacji sposobu działania współpracowników mogę wywnioskować, że stosują tą samą metodę. Oczywiście jak wszystko ma to swoje wady i zalety.

Główną zaletą jest to, że model „na kwadratach” jest dużo czytelniejszy dla robiącego - łatwiej zachować odpowiednią geometrię. Natomiast główną wadą jest to, że trianglowanie potrafi zrobić straszny śmietnik z siatki i trzeba później ręcznie poprawiać błędy i usuwać miejsca, gdzie geometria obiektu została zburzona.

A jak się ma sprawa teksturowania?

Jest to dość zagmatwane. Generalnie tekstury robimy identycznie jak do normalnego 3D, z tym, że musimy się skonsultować z programistami jakie efekty będą obsługiwane, a co lepiej zasymulować bezpośrednio na teksturze. Niektóre rzeczy lepiej od razu zasymulować nawet nie pytając się. Tak się ma sytuacja np. z cieniami. Lepiej je wypalić i potem podmalować bezpośrednio na teksturze niż uruchamiać w pełni dynamiczne cienie w grze. Spowoduje to znaczny wzrost szybkości gry.

I jeszcze jedna bardzo ważna sprawa. Trzeba pamiętać, żeby tekstury były wielokrotnością 2. Najpopularniejsze rozmiary tekstur to: 256x256 px, 512x512, 1024x1024px i ich przemieszania.

Dlaczego różne rozmiary tekstur? Pamiętajmy, że gra jest renderowana w czasie rzeczywistym. Z tego powodu tekstury są wrzucane do pamięci komputera i czym większe, tym bardziej obciążają sprzęt. Dlatego największe rozmiary tekstur stosujemy tylko tam, gdzie naprawdę tego potrzeba - dla głównych obiektów, bądź bardzo dużych obiektów drugoplanowych (np. fabryka).

Prawdopodobnie nasuwa się wam pytanie: „No dobrze - wszystko fajnie, ale do czego może mi się to przydać?”

Nauczenie się sprawnego modelowania lowpoly pozwoli bardzo uatrakcyjnić strony czy prezentacje. Zarówno Director jak i np. Plasma pozwalają w pełni wykorzystywać uroki lowpoly - a zbyt skomplikowane obiekty spowodują, że nasza super płynna animacja będzie wyglądać jak pokaz slajdów.

Dlatego uważam, że warto opanować tą technikę modelingu. Nigdy nie wiadomo kiedy się przyda.

Oczywiście zapraszam do dyskusji n/t artykułu na łamach forum, a w razie zainteresowania tematem, postaram się bardziej wgłębić w technikalia, zdradzić trochę zasad animacji, budowy światów, czy teksturowania.

Paweł Szynkiewicz

art & design
webesteem magazine | nr 4 webesteem magazine is a part of webesteem.pl  |  copyright © 2001-2004 webesteem.pl  
art & design