War Thunder background
Nowy system renderowania – Dagor Engine 4.0 w War Thunder
Uwaga! Artykuł został opublikowany na starszej wersji strony. Mogą wystąpić problemy z wyświetlaniem na niektórych przeglądarkach.

Zawsze przykładaliśmy ogromną wagę do aspektu graficznego w War Thunder. Już teraz łatwo zauważyć, że wszystkie modele pojazdów i elementy otoczenia składają się z rozmaitych materiałów i wyglądają całkowicie odmiennie. Poniżej macie model P-51D-5. Jego niepomalowane aluminiowe poszycie pięknie lśni w słońcu. Następnie model samochodu GAZ MM z działkiem przeciwlotniczym kal. 25 mm, którego zielona karoseria blado połyskuje w świetle. Dalej widzicie drewniane pudło przytwierdzone do lewej strony kadłuba czołgu Panzerkampfwagen IVG.



Już wkrótce wprowadzimy do gry nową technologię! Sprawi ona, że grafika w grze zacznie wyglądać jeszcze bardziej realistycznie i urokliwie. Poznajcie renderowanie fizyczne — jak sama nazwa wskazuje, jest to renderowanie wykonywane w oparciu o prawa fizyki.

Jak efekty specjalne tworzone w filmie różnią się od renderowania widoku w grze? Jak wiele czasu potrzeba na otrzymanie realistycznego obrazu w warunkach stale zmieniających się, niezsynchronizowanych zdarzeń? Te pytania zada sobie każdy, kto spróbuje wyobrazić sobie krótki moment z bitwy w War Thunder: mnóstwo obiektów, źródeł światła, jego odbić i rozmaitych efektów. W tym artykule opowiemy Wam o nowych metodach renderowania opartego o prawa fizyki, jak również co nieco o oświetleniu i materiałach.


WCZEŚNIEJ

OBECNIE

WCZEŚNIEJ OBECNIE

PBR - Physically Based Rendering ( pol. Renderowanie Fizyczne)

Technologia poprawnego fizycznie renderowania (PBR) opiera się na tych samych prawach fizyki, które opisują poruszanie się światła w rzeczywistym świecie. Gdy mówimy o materiałach, mamy na myśli to, że każdy z nich posiada własną charakterystykę wpływającą na rozproszenie i załamanie padającego na nie światła. Jako przykład weźmy gładką kartkę papieru.  Patrząc na nią, wydaje się, że jej powierzchnia jest kompletnie gładka. Jeśli jednak spojrzymy na nią przez mikroskop, zobaczymy wiele zachodzących na siebie włókien celulozy. W momencie kolizji z taką nierówną powierzchnią fotony odbijają się od włókien pod różnym kątem. Światło rozchodzi się w wielu kierunkach.

Możecie sobie jednakże wyobrazić, jak wiele materiałów wraz z odbitym od nich światłem pojawia się na waszych ekranach w każdej sekundzie toczonej w War Thunder bitwy.

 



Obliczanie oświetlenia z takim poziomem detali nie jest możliwe nawet dla technologii renderowania filmów, a jego struktura jest zbyt złożona. Dokładnie to jest powodem, który sprawia, że używane są pewne niezbędne parametry statystyczne dla zastosowanych materiałów, takie jak: chropowatość, współczynnik załamania, metaliczność (stosunek izolator/przewodnik w pikselu). Oznacza to, że już na etapie tworzenia modeli i wykonanych materiałów możemy pracować z właściwościami fizycznymi tych materiałów. Możemy uwzględnić kombinację wymaganych parametrów bez dalszych poprawek po zakończeniu sceny.

Funkcja dwukierunkowego rozkładu odbić

Funkcja dwukierunkowego rozkładu odbić (ang. the bidirectional reflection distribution function - BRDF) jest czterowymiarową funkcją, która definiuje odbicia świetlne na nieprzejrzystych powierzchniach. Zapewnia ona również możliwość obliczenia ilości energii odbitej lub rozproszonej w kierunku obserwatora przy określonym poziomie emisji. Logiczne jest, że stosowane w grze powierzchnie z metalu, tkanin czy drewna wpływają w różnym stopniu na światło, dyfuzję, refrakcję i odbicia świetlne.



Dla tego rodzaju obliczeń używamy matematycznego modelu teorii mikropłaszczyzn, która przedstawia powierzchnię jako wiele mikropłaszczyzn zorientowanych w różnych kierunkach. W tym samym czasie każda z mikropłaszczyzn odbija światło pod tym samym kątem. Aby obliczyć natężenie światła padającego na określony punkt, musimy obliczyć sumę światła odbitego przez mikropłaszczyzny.



Przypis: funkcja odbicia światła Cooka–Tarrance'a. l to kierunek oświetlenia, v to kierunek patrzenia obserwatora, n to powierzchnia normalna, h to wektor pomiędzy wektorami l i v (półwektor), D(h) to funkcja dystrybucji mikropłaszczyzn, F(v,h) to funkcja Fresnela, G(l, v, h) to funkcja cieniowania mikropłaszczyzn. Wszystkie parametry tej funkcji są proste i mają uzasadnienie fizyczne. Ale jakie uzasadnienie fizyczne posiada półwektor? Półwektor niezbędny jest do odfiltrowania tych mikropłaszczyzn, które wzmacniają odbicie światła w kierunku obserwatora. Jeśli normalna do mikropłaszczyzny jest równa półwektorowi, oznacza to, że mikropłaszczyzna wzmacnia światło przy kierunku patrzenia V.



Radykalne odejście od klasycznego renderowania na rzecz PBR polega na tym, że wszystkie powierzchnie  — czy to metale, czy dielektryki, czy roślinność — obliczane są zgodnie z jednym modelem fizycznym. W rezultacie obraz staje się integralny i prawdopodobieństwo wystąpienia błędów oświetlenia praktycznie nie istnieje. Ogólnie rzecz biorąc, tworzenie parametrów dla materiałów jest trudniejsze niż rysowanie klasycznych tekstur. Graficy nie mogą tworzyć tego, co jest widoczne gołym okiem lub na fotografii, ale raczej opisywać fizyczne właściwości powierzchni. W przypadku gry War Thunder graficy muszą przerabiać wszystkie tekstury i materiały, by pracować na nowym modelu. Oznacza to jednak, że możemy uczynić naszą grafikę tak spójną i realistyczną, jak tylko możliwe.

Kilka funkcji pełni kluczową rolę w renderowaniu ostatecznego obrazu. Oto nieco informacji na ich temat:

Mikropłaszczyznowy rozkład odbić D(h) pozwala na rozkład energii w zależności od gładkości oświetlanej powierzchni i zwraca pewien procent jej poziomu, dla którego występują efekty odbicia światła. W War Thunder zastosowaliśmy tzw. model GGX

Mikropłaszczyznowy rozkład samocieniowania G(l,v,h) pozwala określić stopień, w jakim powierzchnia sama się cieniuje wraz z uwzględnieniem odbić od powierzchni pochyłych. Gra wykorzystuje funkcję samocieniowania Smitha przystosowaną na potrzeby modelu GGX. (Eric Heitz. „Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs”) 

Publikacje: 

Funkcja Fresnela F(v,h) określa natężenie światła, które uległo zjawiskom odbicia i refrakcji (załamania) podczas przechodzenia przez granicę dwóch ośrodków. Zjawisko to łatwo zauważyć na granicy woda-powietrze. Obserwując zbiornik lub naczynie z wodą pod niewielkim kątem, woda odbija większą część światła i widzimy odbicie. Patrząc natomiast pod kątem prostym (z lotu ptaka), odbicie będzie niezauważalne i z łatwością będzie można dostrzec dno.



Fizyczne procesy zachodzące na powierzchniach nieprzejrzystych są identyczne, z tą różnicą, że nieodbite promieniowanie (światło) zostanie pochłonięte lub rozproszone.

Dzięki zastosowaniu tej funkcji światło zachowuje się różnie w zależności od kąta padania. Uwzględnia ona również różnice współczynników załamania poszczególnych materiałów. Warto zauważyć, że funkcja Fresnela jest określona dla zbioru liczb zespolonych. Dla metali posiada część rzeczywistą i urojoną i przyjmuje różne wartości w zależności od długości fali, dlatego odbicia od powierzchni metali mogą być wielobarwne.

Będzie to widoczne na mapach dla wojsk pancernych, gdzie właściwie nie ma kompletnie ciemnych przestrzeni — oświetlenie będzie teraz bardziej złożone i realistyczne. „W cieniu” również mamy do czynienia ze światłem odbitym od nieba i innych obiektów. Jedyne całkowicie „ciemne” obiekty to szczeliny skalne i dziury w pancerzu — tylko pomijalnie mała część padającego tam światła ulega odbiciu. W grze wykorzystywane będzie przybliżenie Schlicka dla dielektryków, które od dawna znajduje zastosowanie w grach oraz filmach.


Odbicia rozproszone

Oprócz odbicia światło padające na powierzchnię dielektryków ulega również zjawisku rozproszenia.

Do tej pory w grze wykorzystywany był model Lamberta, który, ze względu na poczynione w nim uproszczenia, nie pozwalał na wierne odwzorowanie odbić od powierzchni chropowatych, których w grze pojawia się bardzo wiele. Problem stanowi zależność odbicia światła od wzajemnego położenia powierzchni je odbijającej oraz obserwatora — dlatego cienie na terminatorze Księżyca (linii pomiędzy jego oświetloną a nieoświetloną częścią) są w większości bardzo ostre. Dlatego też, aby uczynić świat gry bardziej realistycznym, postanowiliśmy zastosować model Orena-Nayara



Jakie korzyści nowy model renderowania przyniesie grze?​

Fizycznie poprawne renderowanie uwzględnia właściwości poszczególnych materiałów. Wykorzystując wzory matematyczne, oblicza i wyświetla prawidłowe zachowanie światła padającego na obiekt. To uczyni modele czołgów i samolotów bardziej naturalnymi i zróżnicowanymi w zależności od pory dnia i warunków pogodowych. Wytarte metalowe powierzchnie manewrujących samolotów mieniły się będą odbiciami promieni słonecznych. Na wysokich ustawieniach grafiki każdy, nawet najmniejszy, element zamontowany na czołgu nie jest cieniowany jednorodnie na całej powierzchni, ale pada na niego światło odbite od pobliskich części pojazdu.


WCZEŚNIEJ OBECNIE

WCZEŚNIEJ OBECNIE

WCZEŚNIEJ OBECNIE

WCZEŚNIEJ OBECNIE

Zespół War Thunder

Czytaj więcej:
Skrzynka z narzędziami!
  • 8 kwietnia 2024
Mad Thunder: Gniew i Grabież!
  • 1 kwietnia 2024
Świętuj Dzień Lotnictwa i Kosmonautyki zdobywając tematyczne oznaczenie!
  • 12 kwietnia 2024
Nacierający Tytani: Superciężkie czołgi XX wieku
  • 11 kwietnia 2024