Co to jest ray tracing i jak działa?

Ray tracing to metoda renderowania grafiki, która naśladuje fizyczne zachowanie światła. Jest to dalekie od nowej metody tworzenia grafiki 3D, która była używana w filmach, animacjach, modelowaniu 3D i nie tylko, gdy użytkownik potrzebuje najbardziej realistycznego renderowania bez względu na zasoby systemowe i czas renderowania. Eksperymenty z tą technologią rozpoczęły się pod koniec lat 60. ubiegłego wieku, a jednym z pionierów jest Ivan Sutherland, twórca aplikacji Sketchpad do symulacji odbić światła na powierzchniach. Jednak ze względu na złożoność i koszt ray tracingu silniki gier przez te wszystkie lata musiały polegać na rasteryzacji ibezpośrednim oświetleniu.


Technologia race tracingu działa na zasadzie symulacji zachowania światła przechodzącego przez wirtualną scenę. Proces rozpoczyna się od wygenerowania promieni, które są śledzone z punktu widzenia kamery i wysyłane do sceny. Wszystkie obiekty w dowolnej wirtualnej scenie są podzielone na grupy, które pochłaniają, przepuszczają i odbijają światło. Oczy gracza służą jako punkt startowy, z którego niejako wystrzeliwuje wirtualny promień. Po drodze wchodzi w interakcje ze wszystkimi obiektami fizycznymi: NPC i bohaterowie gry, budynki, samochody, meble, skrzynie, beczki itp. Kiedy promień zderza się z obiektem, obliczany jest punkt przecięcia promienia z powierzchnią obiektu. Zawiera on informacje o kolorze i jasności, które zostaną użyte do stworzenia ostatecznego obrazu. W pewnym sensie imitacja promienia jest próbą symulowania percepcji światła przez ludzkie oko.


Promienie ze źródła światła wchodzące w interakcję z powierzchnią obiektu mogą być również odbijane, pochłaniane i załamywane, naśladując działanie światła w prawdziwym świecie. Ponadto ray tracing może tworzyć realistyczne cienie w oparciu o fizyczne właściwości obiektu i lokalizację źródeł światła. Właściwości te można wykorzystać do stworzenia bardziej złożonych efektów, jak deszcz w słoneczny dzień, neonowa mgła w Cyberpunku 2077 czy odbicia Spider-Mana w przejeżdżających samochodach. Rezultatem jest bardziej żywy i wiarygodny obraz z realistycznym oświetleniem, cieniami i odbiciami, nawet w tych grach, które nie muszą z założenia wyglądać pięknie. Wystarczy spojrzeć na powyższe filmiki z Minecrafta i Quake'a 2. Z graficznego punktu widzenia obie gry przedstawiają starożytne widowisko, które po dodaniu nowego oświetlenia zamieniło się nowymi kolorami.

Różnica w tracingu między poprzednią a obecną generacją kart graficznych

Zdjęcie z prezentacji kart graficznych NVIDIA Ampere.

Od razu zauważamy, że ray tracing jest dość złożonym i wymagającym dużych zasobów procesem, który powoduje poważne obciążenie karty graficznej. Producenci kart graficznych próbują go rozwiązać na wiele sposobów – Radeon jak zwykle stara się wymyślić sprytne rozwiązanie programowe, które będzie dostępne dla większości zwykłych graczy. NVIDIA poszła na ścieżkę maksymalnej jakości i zdecydowała się na wykorzystanie osobnych rdzeni do ray tracingu (uwaga: w kartach graficznych z serii Turing, Ampere i Ada Lovelace).

Pierwsze wdrożenia technologii okazały się szczerze mówiąc kontrowersyjne. Karty graficzne w 2019 roku zaczęły być bardzo drogie, więc nowość przeszła przez wielu zwykłych graczy, a sami twórcy gier w ogóle nie rozumieli, co się tutaj dzieje i często dodawali element „RT On” wyłącznie na pokaz, podobnie jak sprawa z kinem trójwymiarowym po sukcesie pierwszego Avatara. W efekcie warunkowe Cyberpunk, Battlefield V i Metro Exodus, po dodaniu ray tracingu, stały się zauważalnie ładniejsze. Natomiast w Call Of Duty: Modern Warfare i Shadow Of The Tomb Raider karty graficzne prawie paliły się od zwiększonego obciążenia, a grafika pozostała prawie niezmieniona.

Techniczne detale implementacji imitacji promieni świetlnych w kartach graficznych GeForce RTX 30XX.

Aby udowodnić publiczności, że ray tracing to poważna sprawa i na długi czas, jesienią 2020 roku kierownictwo firmy NVIDIA przedstawiło kolejną generację kart graficznych GeForce Ampere z rdzeniami nowej generacji RT. NVIDIA zwiększyła łączną liczbę rdzeni do przetwarzania oświetlenia, zwiększyła ich wydajność i doprawiła to wszystko nowymi algorytmami do symulacji i optymalizacji oświetlenia. Na przykład nowa metoda tracingu poziomu wtórnego (Secondary Ray Tracing) nauczyła się działać znacznie lepiej z globalnym i lokalnym oświetleniem. Jednocześnie dokładniej radzi sobie z dynamicznymi cieniami i dokładniej modeluje powierzchnię materiałów w wewnętrznej scenie gry.

Wprowadzenie technologii SCG (Simultaneous Computer and Graphics) nauczyło karty graficzne RTX 30XX współdzielić pracę graficzną i obliczeniową pomiędzy różnymi typami rdzeni, wykonując ją niezależnie od siebie. A dzięki opracowaniu technologii sztucznego skalowania DLSS 2.0 inżynierowie firmy byli w stanie znacznie zmniejszyć obciążenie karty graficznej przez ray tracing, zmuszając sieci neuronowe do rysowania pominiętych klatek. Ogólnie rzecz biorąc, okazało się to znacznie piękniejsze i wydajniejsze niż kilka lat temu. Jednak to była tylko rozgrzewka przed ostatnim daniem.

Co to jest Path tracing? (szczegóły techniczne)

Wizualna różnica między path tracingiem, ray tracingiem i standardową rasteryzacją. Źródło: NVIDIA.

Konwencjonalna symulacja promieni świetlnych, jak opisano wcześniej, śledzi promienie świetlne, ich przecięcia z obiektami w scenie oraz interakcje ze źródłami światła. Z drugiej strony path tracing jest potężniejszą i elastyczniejszą metodą, która symuluje fizyczne zachowanie światła tak blisko do rzeczywistego, jak to możliwe. Jeśli zwykły ray tracing był przez wielu ekspertów nazywany punktem przesiadkowym, path tracing wygląda jak ostateczny cel podróży.

W przeciwieństwie do konwencjonalnej symulacji oświetlenia, path tracing śledzi ścieżkę każdego promienia światła od źródła światła do jego interakcji z obiektami i z powrotem. Uwzględnia wszystkie rodzaje oświetlenia, w tym energię światła bezpośredniego, odbitego i rozproszonego, co daje bardziej realistyczne i złożone efekty świetlne, w tym wiarygodne globalne oświetlenie z wieloma źródłami światła. Zgodnie z opisem nie różni się to tak bardzo od ray tracingu, ale pod maską kryje się wiele szczegółów technicznych, dzięki którym efekt końcowy zauważalnie się różni.

Oficjalny zwiastun prezentujący Ray Tracing: Overdrive Mode w grze Cyberpunk 2077:


Pierwsze poważne testy path tracingu w grach przeprowadzili specjaliści z Digital Foundry, którzy testowali Cyberpunka 2077 w tzw. trybie RT: Overdrive. Filmiki i zrzuty ekranu pokazują, jak wiele scen bardzo się zmienia w porównaniu ze zwykłym oświetleniem i podstawową symulacją światła. Na przykład w zamkniętym garażu z wyłączonymi światłami bez latarki nic nie widać. Postacie wyglądają bardziej realistycznie i nie są podkreślone szarą aurą. A kiedy wyjdziesz z ciemności na jasne światło, uważaj na oczy - słońce oślepia, jakby na podwórku był środek lipca.

Film ze szczegółowym porównaniem konwencjonalnego ray tracingu i path tracingu z Digital Foundry:


Warto zaznaczyć, że różnica w grafice jest tak zauważalna ponieważ oryginalna wersja Cyberpunka 2077 wykorzystywała hybrydowy system oświetlenia z elementami konwencjonalnej rasteryzacji i ray tracingu. Według twórców CDPR, pracując z silnikiem, mieli oni sztywny limit - nie więcej niż 10 źródeł światła z cieniami na scenę. Dzięki path tracingu udało im się sprawić, że każde źródło światła rzuca cienie, a wszystkie powierzchnie odbijają lub pochłaniają światło. Jednocześnie uwzględniają nie tylko statyczne źródła światła, ale także ruchome, takie jak reflektory samochodu czy latarkę trzęsącą się w dłoni.

Ile zasobów zużywa path tracing i jaki sprzęt jest potrzebny?

Bez technologii DLSS pełny tracing oświetlenia w rozdzielczości 4K rzuci na kolana nawet flagową kartę graficzną GeForce RTX 4090.

Z testów trybu RT: Overdrive, który symuluje path tracing w grze Cyberpunk 2077, wygląda na to, że technologia ta dosłownie powala każdą nowoczesną kartę graficzną. Nawet GeForce RTX 4090 z 24 GB pamięci wideo jest znokautowany. Średnio 18 - 20 FPS - jak to w ogóle jest? Ze względu na duże obciążenie chłopaki z CDPR od razu ostrzegli, że RT: Overdrive idzie w parze z technologią generowania sztucznych klatek DLSS 3.0.

W CDPR zauważyli, że DLSS odgrywa kluczową rolę w tworzeniu realistycznego obrazu. Przy pomocy sieci neuronowych DLSS dorysowując klatki, do renderowania których zabrakło zasobów rdzenia wideo, przenosząc obciążenie na przydzielone do tego zadania rdzenie tensorowe. Ponadto generowanie klatek DLSS 3 pozwala poprawić jakość oryginalnego obrazu przed skalowaniem. Podczas testu Cyberpunk 2077, przy włączonym DLSS 3 w trybie Performance, średnia liczba klatek na sekundę wzrosła z nieprzyjemnych 35-40 FPS do bardziej niż komfortowych 90 FPS.

Kiedy path tracing trafi do użytkownika?

Porównanie dwóch klatek z różnymi trybami tracingu.

Na koniec zaznaczamy, że technologię zaprezentowaną w Cyberpunku 2077 najlepiej oglądać jako wersję demo. Piękna i obiecująca, ale jednocześnie nieco wadliwa i bardzo wymagająca pod względem zasobów. NVIDIA aktywnie współpracuje z największymi studiami AAA, aby jak najszybciej z tym sobie poradzić. Na przykład, z pomocą funkcji open source NVIDIA RTX Remix (https://www.nvidia.com/ru-ru/geforce/rtx-remix/), inżenierowie już wkręcili path tracing do wielkiej i potężnej, ale dość przestarzałej Half-Life 2. Jak zauważyli autorzy, proces tworzenia moda okazał się dość prosty, ponieważ RTX Remix sam umieścił światła i zautomatyzował szereg innych procesów. Wraz z wydaniem RTX Remix możemy wkrótce spodziewać się podobnych modów do wielu gier.