Ray Tracing w War Thunder!

Wraz z aktualizacją Firebirds, War Thunder otrzymał wsparcie dla Ray Tracingu (RT) i obsługuje kilka efektów wizualnych opartych na RT, takich jak cienie, okluzja otoczenia i odbicia. W dzisiejszym blogu przyjrzymy się bliżej szczegółom!

Jak to działa?

Aby można było korzystać z RT, musimy zbudować i utrzymywać tak zwaną “Bounding Volume Hierarchy” (BVH). BVH to trójkątna reprezentacja całego świata, na której mogą działać wszystkie efekty RT. Wiele gier idzie na skróty w kwestii tego, co należy uwzględnić w BVH i z jaką wiernością. Na przykład używając tylko mniej szczegółowych modeli, usuwając wszystko w stosunkowo bliskiej odległości. Ma to jednak swoją cenę. Przy takim podejściu niemożliwe jest uzyskanie dokładnych cieni.

W przypadku War Thunder zdecydowaliśmy się na prawdziwe efekty, dzięki czemu w dłuższej perspektywie możemy zastosować szerszy zakres efektów. W War Thunder prawie całe pole bitwy jest dostępne dla efektów RT w tej samej wierności, w jakiej jest renderowane w grze, więc wszystkie te efekty mogą być fizycznie poprawne i dokładne.

image

Ma to swoją cenę, ponieważ proces budowania BVH wykorzystuje tak wiele wątków procesora, jak to możliwe, więc zalecany jest nowoczesny procesor.

Teraz mamy gotowy BVH, możemy zacząć śledzić w nim promienie i uzyskać z niego kilka efektów. Na starcie dostępne są trzy główne efekty.

Ray Traced Shadow Map (RTSM)

Zastępuje to mapowanie cieni oparte na teksturach i zamiast tego śledzi promienie z każdego punktu na ekranie na powierzchnię słońca. Ponieważ wykorzystuje całą powierzchnię słońca, a nie tylko jego środkowy punkt, cienie otrzymują fizycznie poprawny półcień, w zależności od odległości obiektu rzucającego cień, jak można by się spodziewać.

Rezultatem są fizycznie poprawne i pikselowo idealne cienie słoneczne.

Na wysokiej klasy procesorach graficznych można również wypróbować cienie z dynamicznych świateł. Umożliwia ona uzyskanie twardych, idealnych co do piksela cieni od wszystkich dynamicznych świateł, takich jak eksplozje, błyski broni palnej i tym podobne. Jest to bardzo wymagająca funkcja, przeznaczona dla wysokiej klasy procesorów graficznych.

Ray Traced Ambient Occlusion (RTAO)

Okluzja otoczenia to technika używana do symulowania cech obiektów blokujących oświetlenie otoczenia, takich jak samo niebo - rodzaj cienia otoczenia. To dlatego zaglądając pod łóżko jest ciemniej.

Tradycyjnie robimy to za pomocą technik przestrzeni ekranu, takich jak SSAO lub GTAO. RTAO jest ray tracingową wersją tych technik przestrzeni ekranowej i może korygować błędy typowe dla technik przestrzeni ekranowej, na przykład gdy coś rzuca cienie otoczenia poza ekran. Techniki przestrzeni ekranu nie mogą sobie z tym poradzić, ale RTAO może. Podobnie jak w przypadku, gdy coś rzuca cienie otoczenia, które są zasłonięte przez inny obiekt. Zwykle w takich przypadkach widać cienie tam, gdzie nie powinno ich być, lub odwrotnie. RTAO rozwiązuje wszystkie te problemy.

Ray Traced Reflection (RTR)

Jest to najbardziej złożona funkcja. RTSM i RTAO to tak naprawdę tylko cienie, ale w RTR wizualizujemy samo BVH. W lustrze widzisz w zasadzie to, co jest w BVH, a my ciężko pracujemy, aby jak najdokładniej dopasować go do renderowanego obrazu.

Ponownie, nawet przed RTR mieliśmy odbicia. Używano odbić opartych na sondach i odbić w przestrzeni ekranu, ale podobnie jak w przypadku SSAO, mają one swoje ograniczenia. Właściwie bardzo podobne. Obsługa obiektów poza ekranem lub zasłoniętych w przestrzeni ekranowej oraz problemy z pozycjonowaniem sond. RTR ma całą scenę do prześledzenia, więc naturalnie może odbijać obiekty z dowolnego miejsca.

Istnieje jeszcze jedna komplikacja dla RTR, a mianowicie chropowatość powierzchni. Chropowata powierzchnia, taka jak beton, ma odbicia, które są bardzo miękkie i rozmyte, podczas gdy błyszczące powierzchnie, takie jak szkło lub płaska woda, mają lustrzane, ostre odbicia. Dodatkowo, jest też wszystko pomiędzy. Symulowanie tego jest jednym z najgorętszych tematów w grafice komputerowej

Nasze podejście polega na renderowaniu zaszumionych odbić na podstawie chropowatości i użyciu tak zwanego odszumiacza w celu uzyskania fizycznie dokładnych odbić.

Efekt jest czasem oczywisty, jak w przypadku lustrzanych odbić.

Innym razem jest to mniej oczywiste, ale sprawia, że renderowany obraz jest bardziej poprawny i wygląda naturalnie. Jeśli spojrzysz na te ujęcia, spójrz na czołg i jego otoczenie. W wersji bez RT czołg w zasadzie świeci w cieniu, ponieważ budynek, który powinien zasłaniać niebo przed jego odbiciem, nie znajduje się na ekranie, więc techniki przestrzeni ekranowej nie mogą wiedzieć, że niebo powinno być zablokowane. W wersji RT ten niebieski odcień zniknął, ponieważ BVH ma budynek, niezależnie od tego, czy jest na ekranie, czy nie, i prawidłowo blokuje niebo.


Ponownie RTR naprawia problemy związane z tradycyjną przestrzenią ekranu i odbiciami opartymi na sondach.

Podrzędną funkcją RTR są odbicia na półprzezroczystych szklanych powierzchniach. Na tych szklanych powierzchniach można teraz zobaczyć dokładne odbicie świata, zamiast sondy, której używaliśmy wcześniej. Rezultatem są ponownie dokładne odbicia.

Kolejną cechą są odbicia na wodzie.

Nasze odbicia wody wykorzystują w grze odbicia planarne, które są bardzo dokładnym sposobem na uzyskanie odbić, a następnie są zniekształcane w oparciu o fale. W przypadku wody RTR promienie odbicia są prawidłowo otrzymywane w oparciu o wektory normalne fal. Samo odbicie jest po prostu bardziej poprawne, ponieważ nie zniekształca tylko obrazu 2D, ale faktycznie wykorzystuje różne odbicia na piksel.

Różnica jest czasem większa, czasem mniejsza.

Wydajność RT

Ray Tracing to ciężka praca, ale istnieje wiele opcji skalowalności, które czynią ją bardziej dostępną.

Po pierwsze, wszystkie trzy opcje mogą być włączane/wyłączane niezależnie, co oznacza, że możesz użyć tylko tego efektu, na którym najbardziej ci zależy, jeśli masz starszy procesor graficzny obsługujący RT.

Do tego dochodzą poziomy jakości. Ogólnie rzecz biorąc, RTSM z dynamicznym oświetleniemjest przeznaczony dla najnowszych procesorów graficznych z najwyższej półki. Zwykle nie jest to dużo bardziej wymagające niż zwykłe cienie słoneczne, ale w środku akcji z wieloma pożarami i eksplozjami może stać się bardzo zasobożerne.

W przypadku RTAO niska jakość oznacza użycie niższej rozdzielczości wewnętrznej do obliczeń. Jest to jednak ta sama rozdzielczość, co w przypadku technik przestrzeni ekranu, ale bez błędów przestrzeni ekranu. Średnia zapewnia wyższą rozdzielczość, a wysoka lepsze odszumianie. Jest to naprawdę widoczne tylko w pewnych okolicznościach, ale chcieliśmy dać ci nad tym kontrolę.

W przypadku RTR niski poziom to dobry kompromis. Brakuje cieni RT w odbiciach, co znacznie poprawia szybkość. Średnia posiada cienie RT w odbiciach. Zarówno niski, jak i średni poziom wykorzystuje tzw. renderowanie szachownicowe w celu podwojenia wydajności poprzez śledzenie połowy liczby promieni. Wysoki wyłącza renderowanie szachownicy, ale odszumiacz wykonuje świetną robotę ukrywając wzór szachownicy, więc różnica jest niewielka. Ponownie, decyzja należy do ciebie.

RTR ma również kontrolę nad renderowaniem w pełnej lub połowie rozdzielczości, zarówno dla wody, jak i normalnych powierzchni. Różnica jest widoczna głównie w lustrach, które wyglądają dobrze w połowie docelowej rozdzielczości, nawet jeśli nie masz mocniejszego GPU.

Wreszcie, półprzezroczyste szklane odbicia RTR mogą również mieć odbicia RT wewnątrz odbić na wysokich ustawieniach. Zwykle ma to niewielki wpływ na wydajność, ponieważ powierzchnie te nie są zbyt powszechne w grze.

Aby uzyskać zoptymalizowane ustawienie, w którym można uzyskać dobry kompromis między wydajnością a jakością obrazu, zalecamy użycie ustawienia wstępnego Średni RT. Przesunięcie ustawień dalej poprawia jakość efektów, ale za większą cenę w wydajności. Ale jeśli masz najnowszy procesor graficzny z najwyższej półki, zrób to! :)

W przypadku korzystania z efektów RT zalecamy użycie metody skalowania w górę, zapobiegającej aliasingowi, z ustawieniem odpowiednim dla karty graficznej. Na przykład DLSS, FSR, XeSS lub TSR. Dzięki tym upscalerom można osiągnąć świetną wydajność i jakość obrazu. Zrównoważone ustawienia są zazwyczaj dobrym rozwiązaniem dla ray tracingu, ale w przypadku starszych układów GPU nie ma nic złego w wybraniu ustawienia z priorytetem wydajności, jeśli chcesz cieszyć się korzyściami RT.

Naszym celem jest nie tylko dodawanie kolejnych funkcji RT w przyszłości, ale także poprawa wydajności już istniejących, więc bądź na bieżąco z przyszłymi nowościami.

W momencie premiery efekty RT są obsługiwane na kartach graficznych Nvidia. Priorytetem jest dla nas sprawienie, by działały zarówno na kartach AMD, jak i Intela. Działa to z naszymi wewnętrznymi kompilacjami, ale nie jest gotowe do wydania, musimy rozwiązać pewne problemy specyficzne dla tych GPU. Będzie gotowa wkrótce, wraz z konsolami obecnej generacji.

4 Likes

2 obrazy nie działają.

To jest to na co czekam. Mamy tylko nadzieję, że optymalizacja jest lepsza niż na serwerze testowym.

2 Likes

Dzięki, już poprawione :) Wczoraj chyba jeszcze się wyświetlały normalnie

No nieźle - będziemy mieli urealniony obraz do odrealnionych bitew :)

1 Like

Spoko, jakis rok temu zastanawialem sie kiedy pojawi sie RT i jest. @EuroDoragon2 niech chlopaki poprawia w helkach celowanie niekierowanymi bo na monitorach ultrawide celownik znika z ekranu podczas zblizenia. Ps. Napisalem bug report ale kiedy cos z tym zrobia…

Mam nadzieje, ze mi 3070 nie zagotuje mi sie podczas grania. Nie lubie hałasu.

Kojarzę taki bug report :) Masz jeszcze do niego link?

pewnie, prosze:

https://community.gaijin.net/issues/p/warthunder/i/q5dQNkW1xEKZ

to z jakiegos chinczyka, ale na wiekszosci tak jest. Kiedys pisalem o AH1G i tam poprawili z tego co mi sie wydaje.

1 Like