Uwagi ogólne - Jak uniknąć laga

Podczas gry twój komputer zaczyna działać coraz wolniej i wolniej, aż najzwyczajnie wiesza się? Aczkolwiek lag nie ma zazwyczaj aż tak dramatycznych objawów to może zmniejszyć twoje szanse na wirtualnym polu bitwy, wydłużając twój czas reakcji o cenne ułamki sekund. Lag zwykle szybko i nieuchronie wpędza gracza do grobu. Lag może objawiać się zarówno jako irytujące jąkanie się obrazu, jaki kompletne jego znieruchomienie zmuszające do restartu komputera. Spowodowane jest to przez program próbujący wygenerować bryłę i tekstury kiepsko wykonanego addonu. Wygenerowanie takiego addonu-bubla obciąża zasoby systemowe ponad miarę i w najgorszym przypadku powoduje załamanie się systemu. Addony nieoficjalne zazwyczaj zwiększają przyjemność z grania oferując nowe możliwości, ale niektóre ze względu na nieprawidłową budowę bądź oteksturowanie powodują irytujący lag.

Liczba poligonów to ilość trójkątów, które powstają przez połączenie wierzchołków (vertexes) i reprezentują bryły obiektów na ekranie. Oficjalny program-narzędzie do tworzenia trójwymiarowych obiektów na potrzeby gry Operation Flashpoint, "Oxygen 2 Light" nie określa tych "jednostek" tworzących siatkę rozpiętą na wierzchołkach, jako poligonów ale jako face'y (powierzchnie?). Powodem tego jest możliwość tworzenia przez "Oxygen 2" siatki zarówno w oparciu o trójkąty jak i czworokąty. Mimo oczywistej róznicy, face stworzony z trzech polączonych wierzchołków i face stworzony z czterech połączonych wierzchołków, zliczany jest przez program jako pojedynczy face. Każdy kształt taki jak np. koło lub prostopadłościan reprezentowany jest w przestrzeni trójwymiarowej jako połączenie pewnej liczby czworoboków i/lub trójkątów.

Przykładowo pudełko ma kształt prostopadłościanu o sześciu "stronach". Tworząc prostopadłościan umieszczasz osiem punktów tam gdzie będą jego wierzchołki, a następnie łączysz je w stykające się krawędziemi czworoboki. W efekcie otrzymujesz bryłę utworzoną z ośmiu wierzchołków i sześciu face'ów tworzących boki pudełka. Niektóre programy akceptują siatkę zbudowaną z trójkątów, a ponieważ potrzeba dwóch trójkątów by uzyskać kwadrat, do stworzenia pudełka potrzeba by dwunastu trójkątnych face'ów. Tym samym komputer musiałby wygenerować sześć face'ów więcej, co wymaga zaangażowania dodatkowej mocy obliczeniowej.

Kiedy zachodzi potrzeba wykonania koła lub innych bardziej skomplikowanych figur i brył, niektóre face'y trzeba utworzyć z trzech wierzchołków, co jest jak najbardziej poprawne. Tworzenie całego obiektu z pomocą trójkątnych face'ów podczas gdy można by zastosować czworokątne face'y jest nieprawidłowe. To podwoi zasób mocy obliczeniowej procesora niezbędny do wygenerowania obiektu. Sugeruję unikanie programów w których nie można tworzyć face'ów czworokątnych. Proponuję również poświęcenie nieco czasu na naukę korzystania z programu Oxygen 2 light, gdyż chociaż nie jest najwygodniejszy w użyciu to pozwala na tworzenie lepiej funkcjonujących modeli. Kiedy już przyzwyczaisz się do niego odkryjesz, że tworzenie modeli za jego pomocą nie zajmuje dużo czasu i pozwala uzyskać wysoką jakość.

Gdy convex'ujesz określone figury i bryły tak by utworzyły obiekt, tworzysz face'y pomiędzy nimi łącząc je i jednocześnie usuwając te face'y, które okazują się zbędne (np. zwrócone "do wewnątrz") i jedynie zużywałyby niepotrzebnie zasoby systemowe. Korekty można dokonać także wybierając dany face i usuwając go poprzez wciśnięcie klawisza "d". Prawidłowo wykonany obiekt wymaga wygenerowania jedynie "zewnętrznych" powierzchni (tj. tych które można zobaczyć w grze). Gdy to zostanie już wykonane, należy zmodyfikować cieniowanie obiektu, tak by stało się właściwe na powierzchniach płaskich i ostro zakrzywionych (określanych mianem ostrych tj. "sharp" - po wybraniu face'ów wciśnij klawisz "u") i na powierzchniach łagodnie zakrzywionych jak np. bok cylindra (określanych mianem gładkich tj. "smooth" - po wybraniu face'ów wciśnij klawisz "i").

Obiekty takie jak koła i wyjątkowo skommplikowane bryły od stworzenia wymagają znacznej ilości poligonów. W średnio-dokładnie odwzorowanych obiektach powinno się używać kół, których obwód zawiera 16-20 wierzchołków, a w wyjątkowo dokładnych odwzorowaniach koła mogą mieć na obwodzie nawet 32-40 wierzchołki. W przypadku bardzo dużych cylindrycznych obiektów np. silosy czy kominy sugeruję by obwód składał się z conajmniej 40 wierzchołków, gdyż im obiekt większy tym bardziej widoczna staje się "kańciastość" kół. Naczelną zasadą podczas tworzenia modeli trójwymiarowych jest "Jeśli czegoś nie widzę to znaczy że tego nie potrzeba." Podsumowując, zbędne i niewidoczne jedynie zawyżają ilość zasobów systemowych potrzebnych do generowania obiektu w grze.

Wygenerowanie wycieniowanego i skomplikowanego modelu trójwymiarowego bez jakichkolwiek nałożonych tekstur wymaga zaangażowania jedynie minimalnej mocy obliczeniowej komputera. Gdy obiekt ma już przypisane tekstury, wtedy oprócz tego że komputer musi podczas gry go generować, karta graficzna musi znaleźć, załadować i nałożyć te tekstury. Im więcej plików z teksturami tym więcej czasu zajmie karcie graficznej wykonanie tych wszystkich czynności. Morał z tego jest taki, że umieszczenie tekstur wszystkich elementów w jednym pliku znacznie zmniejszy ilość pracy jaką będzie musiał wykonać komputer podczas korzystania z tego addonu.

Na przykład model karabinu M4 zbudowany z 1,968 poligonów i wykorzystujący 29 dużych plików tekstur spowoduje ogromne obciążenie systemu. Dlaczego? Ponieważ komputer będzie musiał znaleźć, załadować i nałożyć każdą z 29 tekstur dla każdego żołnierza trzymającego ten karabin. Powstanie lag wywołany nie nieprawidłową budową modelu, lecz ilością użytych tekstur. Z kolei model Mi-24 Hind zbudowany z 25,000 poligonów wywoła lag'a swymi rozmiarami, nawet jeśli zostanie użyta mała ilość tekstur.

Przykładem wyważonego addonu byłby model Hind'a zbudowany z 10,000-15,000 poligonów i kilku dużych plików tekstur. Jest o wiele łatwiej komputerowi generować model składający się z 10,000 poligonów z 3-5 nałożonymi teksturami, niż model składający się z 25,000 poligonów z 20-40 nałożonymi teksturami albo nawet łatwiej niż generować model złożony z 4,000 poligonów z 50-80 nałożonymi, szczegółowymi teksturami. Wysokiej jakości tekstury nie uratują addonu opartego na kiepskim modelu 3d i zazwyczaj wyjątkowo szczegółowy i skomplikowany model 3d nie poprawi sytuacji, gdy tekstury są słabej jakości. Konieczne jest znalezienie pewnej równowagi pomiędzy wielkością modelu i tekstur. Model złożony z 2,000 poligonów z 8-15 wysokiej jakości teksturami jest mniej więcej równoważny modelowi zbudowanemu z 10,000 poligonów i 2-5 dużych i szczegółowych tekstur.

Tekstury nie są trójwymiarowe i mają swoje ograniczenia w oddawaniu głębi przestrzennej - nie są w stanie imitować wszystkich detali modelu. Z kolei model trójwymiarowy bez dobrych tekstur imitujących światłocień wygląda dosyć "płasko". Znalezienie "złotego środka" wymaga sporo planowania i ciężkiej pracy. Dobry model 3d z jedną lub kilkoma dobrymi teksturami, jest tak samo dobry jak kiepski model 3d z wieloma teksturami, aczkolwiek dobry model z kilkoma teksturami może zostać wyposażony w większą ich ilość w miarę wzrostu możliwości komputerów. Komputery które używano w latach 1998-2000 (czyli wtedy gdy powstawało OFP) są niczym w porównaniu do tych z których korzystamy obecnie. Moc obliczeniowa komputerów osobistych wzrosła ogromnie w ciągu ostatnich sześciu lat. Addony powinne być tworzone z myślą o przyszłości, a nie chwili obecnej. Pracujemy w bardzo dynamicznie rozwijającym się świecie i poziom technologi informatycznej nie będzie taki sam z dwa miesiące czy rok, kiedy ukończymy rozpoczety projekt. Jeśli będziemy tworzyć z myślą o przyszłych możliwościach, nasze projekty będą w pełni je wykorzystywały w momencie ich ukończenia.

Wykonał: Drill Sergeant
Tłumaczył: Alderous



Wejdź na forum Wejdź na stronę Armed Assault Center PL