W pierwszej kolejności propozycja dla adminów na zmianę nazwy wątku na coś w stylu "
Rozwiązania techniczne a silnik Il2: CoD" ponieważ temat wykroczył zdecydowanie poza zagadnienia związane z samym SSAO.
Jeśli chodzi o fizykę w grach, tych "prostszych" i w symulatorach, to moc dzisiejszych wielordzeniowych procesorów (CPU) i układów kart graficznych (GPU) pozwala na spokojne obliczanie w czasie rzeczywistym naprawdę skomplikowanych modeli fizycznych.
Filmik z Force Unleashed, który wrzucił Empeck to tylko wierzchołek góry lodowej,
tutaj jest tego więcej. FU korzysta z proceduralnie tworzonych animacji i proceduralnego modelu zniszczeń. Wszystko liczone jest przez CPU i nawet konsole (360ka i PS3) spokojnie dają sobie z tym radę. Gdyby, w przypadku PC, zdjąć z CPU obowiązek liczenia takich rzeczy i zwalić wszystko na barki GPU (ostatnich czterech generacji kart graficznych) to mamy dostęp do wielokrotnie większej mocy obliczeniowej. W przypadku najnowszej generacji kart grafiki można spokojnie mówić o gigantycznej przewadze wydajnościowej nad CPU! Coś
takiego dla dzisiejszych kart graficznych to dziecinna igraszka. Wszystko dzięki
GPGPU pozwalające na układach kart graficznych wykonywać tzw. kod ogólnego przeznaczenia. Z grubsza polega to na tym, że karta grafiki nie zajmuje się już tylko przeliczaniem wierzchołków, teksturowaniem, renderowaniem, przetwarzaniem pikseli itd ale również może zostać zaprzęgnięta do obliczeń nie mających bezpośredniego związku z generowaniem obrazu.
Co to znaczy w praktyce i jak wygląda przyszłość silników gier?
Proceduralne (w wielkim skrócie: generowane dynamicznie według określonego przez programistę schematu)
animowanie postaci,
roślin itd... proceduralne
generowanie zniszczeń i
deformacji... proceduralne tworzenie modeli 3D (
miast,
drzew,
siatki terenu, itp)... proceduralne generowanie oraz realistyczne odwzorowanie mechaniki
płynów i
gazów... nawet proceduralne tworzenie
efektów i niektórych
tekstur... skomplikowane
modele fizyczne... dużo bardziej złożone algorytmy AI...
Wszystko to może być realizowane przez sprzęt obsługujący GPGPU (DirectCompute / OpenCL / CUDA / PhysX).
Oczywiście do tego dołączy coraz
lepsza grafika z realistycznym oświetleniem (o czym było już wcześniej). Zdecydowanie mniejsza będzie ilość prekonfigurowanych efektów, statycznych rozwiązań dotyczących oświetlenia, animacji po prostu odtwarzanych w danym momencie i zaprojektowanych w całości przez animatora...
Pytanie - dlaczego w takim Il-2 Cliffs of Dover żadna z powyżej opisanych funkcji nie jest wykorzystywana? Gra nie obsługuje też teselacji, która w cudowny sposób rozwiązałaby upierdliwą konieczność tworzenia paru modeli LOD (level of detail) dla praktycznie każdego istotnego obiektu w grze. Odpowiedź jest prozaiczna - z braku czasu i umiejętności.
Technologia zasuwa do przodu w niesamowitym tempie. To co 4 lata temu sprawiało kartom graficznym i procesorom spore problemy dzisiaj - 4 generacje sprzętu później - jest obliczane bez wysiłku (np. HDR, wolumetryczne cienie, FSAA itp). Twórcy gier nie są w stanie za tym nadążyć, zwłaszcza że robi się to wszystko coraz bardziej skomplikowane. Najpierw programiści muszą nowinkę opanować, potem zaimplementować ją w silniku gry. Później graficy, modelarze i animatorzy muszą się nauczyć nowość wykorzystywać a następnie tworzyć tekstury, modele oraz animacje już z myślą o nowych funkcjach silnika. Do tego należy wziąć pod uwagę osoby projektujące poziomy czy misje, lead designerów którzy muszą być w pełni świadomi możliwości jakie daje im engine gry, testerów którym trzeba przekazać na co mają zwracać uwagę przy sprawdzaniu implementacji jakiejś nowinki itd, itd. Taki proces przyswajania nowych technologii zajmuje, w najlepszym przypadku, miesiące a w najgorszym - całe lata. Dlatego wiele bajerów działających dzisiaj płynnie w demkach technologicznych będziemy oglądać w grach dopiero za rok czy dwa a może nawet później.

Na koniec małe
porównanko. Każdy posiadacz karty nVidia może sobie to sprawdzić na własnym sprzęcie.
Uff... mam nadzieję, że te wynurzenia okażą się dla kogoś przydatne.

Jeśli ktoś czuje głód informacji to niech doczyta sobie więcej o GPGPU, DirectCompute, OpenCL, CUDA i proceduralnym traktowaniu prawie wszystkiego.
