w

Nvidia RTX, Jak działa Ray Tracing

Czym jest Ray Tracing, czy warto się nim interesować a może to tylko kolejny bezsensowna opcja graficzna, która pożera zasoby.

Trochę historii czyli jak jest

Cieniowanie to jedna z podstaw obliczeń kart graficznych w grach. Od seri 8800 rdzenie GPU są wyposażane w coraz to większą ilość jednostek cieniujących. Niezależnie jednak od stopnia zaawansowania układu, techniki oświetlenia są bardzo prymitywnymi opcjami graficznymi w grach. Poruszające się źródło światła (np lampa) w trakcie rozgrywki oddaje poczucie realności, ale patrząc na nią wiemy, że jest sztuczne. Nie tylko przez samo w sobie oświetlenie a jego interakcję z otoczeniem. Przykładowo pochodnia „daje” blask, rozjaśnia otoczenie, ale odbicia na kamieniach czy zasłanianie go przez obiekty nie działa jak w realnym życiu. Lustra w grach nie są tym, czym mają być – one nie odbijają światła prezentując odbity obraz, są oddzielnie wygenerowanymi elementami w grze. Gdy podczas rozgrywki traficie do pomieszczenia z dużą ilością świateł, mimo że widzicie źródła światła, to jednak gdzieś z tyłu macie świadomość ze w realnym świecie wygląd tego pomieszczenia byłby kompletnie inny. Rozwiązaniem tego ma być ray tracing.

Ray Tracing’u nie wymyśliła Nvidia

Nie jest to technologia nowa. Od lat stosuje się ją w grafice komputerowej, sami wielokrotnie mogliście zetknąć się z jej efektami np w tytułach naszpikowanych CGI, czy nagrywanych w większości na zielonym tle np Avengers, Gra o Tron. Jednak aby wykonać tak trudne obliczenia związane z cieniami i oświetleniem potrzeba potężnych maszyn. Przy produkcji nawet godzinnej animacji wymagane jest poświęcenie wielu dni pracy jednostek w celu samego wygenerowania efektów świetlnych. W grach z oczywistych względów nikt nie będzie czekać, aż komputer wygeneruje właściwe klatki. Obliczanie dynamicznego światła, a raczej wielu śladów świetlnych pochodzących z jednego, czy wielu źródeł to dla kart graficznych ogromne wyzwanie. Żadna dzisiejsza karta nie jest w stanie sprostać takim wymogom wydajności. Z tego właśnie powodu twórcy gier są skłonni raczej poszukiwać sztuczek urealniających światło, kosztujących mniej zasobów sprzętowych, ale zarazem wymagających wiele więcej pracy po stronie produkcyjnej. Nvidia od lat pracowała nad implementacją dynamicznego, bardziej realistycznego oświetlenia, jednak żadne z nich nie pozwalało na odpowiednio płynne działanie. Dopiero wraz z rozwojem DX 12 i obliczeń równoległych, czy opracowaniu rdzeni sztucznej inteligencji Tensor zdolnych do tzw. głębokiego uczenia. Oczywiście chodzi o karty z serii RTX i technologię Nvidia Ray Tracing.

Czym jest Ray Tracing?

Uproszczone działanie Ray Tracing
Uproszczone działanie Ray Tracing, źródło
Przebrnięcie przez wyjaśnienie czym jest Ray Tracing z całą pewnością nie jest łatwe. Nie chcę zbyt mocno rozpisywać się o technicznych zawiłościach, ale w skrócie: system analizuje które promienie świetlne pojawią się na monitorze. Do tego dolicza się odbicia tych elementów, które z perspektywy gracza nie są jeszcze widziane. W ramach Ray Tracing’u będziemy mogli dostrzec również rozbicia, rozproszenia, połysk, odbicia. Jeżeli wiązka trafi na obiekt typu karoseria, to na niej zobaczycie nie tylko „blask”, ale również elementy otoczenia, a to otoczenie może się również odbić w nim. Źródeł światła może być zdecydowanie więcej, a obliczenia dla toru są prowadzone zależnie od każdej wiązki, która może wejść sobie w interakcję.
Star wars Ray Tracing
Wiele źródeł światła w ruchu wraz w zajemnie odbijającymi się elementami
Wymaga to ogromu zasobów obliczeniowych, z tego powodu pierwotnie obraz jest kompresowany, zaszumiony. Przekłada się to na niższy koszt wydajności po wygenerowaniu oświetlenia, cieni i wszystkich wodotrysków dzięki rdzeniom tensor obraz zostaje odszumiony, a detale poprawiane. Cały ten proces trwa raptem ułamki sekund.
pierwsze RTXy są jedynie kartami „wprowadzającymi”. Powszechne rozwiązania pojawią się najprawdopodobniej za kilka lat.
Można powiedzieć, że realizm oświetleniowy jest na wyciągniecie ręki, a gry będą wyglądały obłędnie? Otóż nie. Obecnie Ray Tracing w wykonaniu Nvidii jest mocno uproszczony. Przejścia świateł, czy rozmycia cieni choć lepsze niż w jakiejkolwiek współczesnej grze nadal są dość mocno ograniczone. Liczba samych wiązek światła trafiających do gracza jest również niewielka. Choć nie znamy prawidłowych liczb Nvidia sama przyznaje, że obecne sprzęty pozwalają tylko na tyle. Zainteresowanych szczegółowym wyjaśnieniem Ray Tracing polecam ten artykuł

Różnice obliczeń

Czy aby na pewno nie da się „wycisnąć” więcej? Jensen Huang, CEO Nvidii podczas prezentacji dokonał porównania wydajności Ray Tracing’u pomiędzy GTX 1080Ti, potężną superstacją roboczą przeznaczoną do obliczeń w skład której wchodziły 4 układy Tesla z jednym RTX 2080. Słynne demo z Gwiezdnych Wojen miało oświetlenie renderowane w czasie rzeczywistym poniżej możecie zobaczyć wynik takiego porównania.
Wydajność Ray Tracing przy zastosowaniu najmocniejszych układów graficznych
Wydajność Ray Tracing przy zastosowaniu najmocniejszych układów graficznych
Różnice są ogromne. Jeżeli ktoś chciałby przełożyć to na klatki na sekundę to:
  • Cztery Volty (Tesle) były w stanie wygenerować 18 klatek na sekundę
  • GTX 1080Ti był w stanie wygenerować 3 klatki na sekundę
  • RTX 2080 wygenerował „aż” 22 klatki na sekundę.
Ray Tracing może nawet przyspieszyć produkcję gier. To czysto osobiste przemyślenie, ale jeżeli dobrze rozumiem, to pomijając bolączki implementacji DX12  Nvidia RT odciąża od żmudnego tworzenia powłok i skryptów oświetleniowych, planowania zachowania światła i cienia zależnie od ruchów gracza, czy elementów w grze. Nowa technologia może być mniej wymagająca – wystarczy utworzyć źródło światła o odpowiedniej charakterystyce, do tekstur dodać informacje o tym, jak światło ma na nie reagować i tyle. Oczywiście może dojść jeszcze więcej elementów w trakcie prac, ale wydaje mi się, że mogą one być łatwiejsze w wykonaniu. Prawdopodobnie o tym jeszcze usłyszymy z wypowiedzi samych twórców nadchodzących produkcji ze wsparciem dla RT.
większość gier, które pojawiło się czy to w trakcie prezentacji, czy w trakcie trwających wtedy targów są na bardzo wczesnym etapie prac nad Ray Tracingiem. Twórcy dopiero uczą się o możliwościach i jak to w ogóle ma działać. Optymalizacja w wielu wypadkach na tym etapie może być sprawą drugorzędna.

Kolejne wodotryski, które zabierają wydajność

Niedługo po prezentacji nowych RTXów pojawiły się filmiki pokazujące wydajność Shadow of the Tomb Raider z włączonym Ray Tracing. Wynika z nich, że gra działa jedynie w 30-70 klatek na sekundę w rozdzielczości Full HD i prawdopodobnie najwyższych detalach, a sam wynik został osiągnięty przy działaniu z RTX 2080Ti.  Jęk rozczarowania zalał internet, ale mówimy o grze, która obecnie jest na etapie optymalizacji, a RT pojawi się w jednym z patchy popremierowych. Mimo to, rozumiejąc działanie nowej opcji graficznej trzeba liczyć się z kosztami. Dowodzi to też, że pierwsze RTXy są jedynie kartami „wprowadzającymi”. Powszechne rozwiązania pojawią się najprawdopodobniej za kilka lat.
Gry z zapowiedziamym Ray Tracing
Gry z zapowiedzianym Ray Tracing
Ważnym punktem przy analizie wydajności powinna być jedna uwaga – ludzie z DICE (Battlefield V) pracowali nad RT przy użyciu Titana V (czyli Tesli), a twórcy SotTR podczas prezentacji RTXów otrzymali prezent – wszyscy pracujący nad grą/cieniami mają za darmo otrzymać nową RTX 2080. Czyli większość gier, które pojawiło się czy to w trakcie prezentacji, czy w trakcie trwających wtedy targów są na bardzo wczesnym etapie prac nad Ray Tracingiem. Twórcy dopiero uczą się o możliwościach i jak to w ogóle ma działać. Optymalizacja w wielu wypadkach na tym etapie może być sprawą drugorzędna.

To tylko opcja w ustawieniach graficznych

Wystarczy zastanowić się, jakie zastosowanie zabawy z dynamicznym światłem i różnego typu odbiciami można użyć w grach skradankowych czy horrorach
We wczorajszej publikacji przyznałem, że RTXy nie wykorzystają pełni mocy w innych tytułach, niż tych działających w DX12/Vulcan (RT do Vulcana ma zostać zaimplementowane) i nadal to podtrzymuję. Przyznałem również, że RTX jest zapewne końcem epoki produkowania kart graficznych z „czystą wydajnością”. Takie działania wymuszają na producentach wdrażanie nowych API, w innym wypadku ich produkcje nie będą wyglądać lepiej. Przez wielu komentujących Nvidia Ray Tracing jest tylko wodotryskiem, który zżera wydajność. Zostałeś 1v1 na inferno, podkładasz bombę na B chowasz się gdzieś na „sajdzie” i czekasz. Po chwili słyszysz kroki, które ustają. Nic nie robisz, czekasz aż zacznie rozbrajać, dopiero wtedy się wychylisz, nagle wyskakuje na ciebie CT z prefire i giniesz. Cheatował? przecież nie mógł cie zobaczyć. Niekoniecznie. Miał włączone RT. Zauważył cię w odbiciu fontanny czy posadzki i wykorzystał przewagę.
A gdyby za wrakiem był człowiek jego odbicie byłoby widoczne w doświetlonej karoserii
A gdyby za czołgiem był przeciwnik, jego odbicie byłoby widoczne w doświetlonej karoserii
Taki scenariusz jest możliwy i odłóżmy na bok możliwość równoczesnego grania online z włączonym i wyłączonym RT oraz jego wpływie na segregację graczy. Chciałem przede wszystkim zobrazować potencjalne wykorzystanie dynamicznego oświetlenia. Wokół niego można budować mechanikę gry, może być „ułatwiaczem” w orientacji przestrzennej, ale również tworzyć immersję z grą. Wystarczy zastanowić się, jakie zastosowanie zabawy z dynamicznym światłem i różnego typu odbiciami można użyć w grach skradankowych czy horrorach. Odbicie stwora zauważone w jakimś elemencie otoczenia i uświadomienie sobie, że jest tuż za tobą. Strach się w nas potęguje, bo kształt jest niewyraźny, nie wiemy co wydarzy się za chwilę, jak zareagować. Panicznie zerkamy na ilość amunicji, czy na pewno wystarczy. Budowanie napięcia w bardziej subtelny sposób niż tanimi jumpscareami daje potężne narzędzie w rękach twórców gier. Pytanie nie czy, tylko kiedy zaczną z niego korzystać.

Na koniec

Mam pełną świadomość, że zgodnie z analizą dostępnych materiałów, nagrań z gameplay gier wiele rzeczy było częściowo zmanipulowane, np brak jakichkolwiek cieni przy wyłączonym RTX w SotTR, Póki nie zobaczymy gotowych tytułów z dopracowaną implementacją, czy sterownikami nie ma najmniejszego sensu krytykować Ray Tracingu. Uważam, wyciąganie wniosków na podstawie stanu obecnych tytułów jest dość mocną nadinterpretacją, tak samo jak 1.5X wydajności więcej, ale o tym w kolejnym odcinku. Tym razem bardziej różnorodnym treściowo i do cholery krótszym!

Jakie jest twoje zdanie?

94 punkty
Dobre Słabe

Komentarze

2 Pingi

  1. Pingback:

  2. Pingback:

Dodaj komentarz

Ładowanie…

Ładowanie…

0

Dodaj komentarz

Nowe karty graficzne, jak działa RTX?

Nvidia RTX: analiza