Inne
Artykuł
Piotr Gołąb, Wtorek, 1 maja 2018, 09:00

Rozwój grafiki komputerowej nierozerwalnie łączy się z ewolucją towarzyszącego mu sprzętu. Nvidia podczas konferencji na tegorocznym GDC pochwaliła się postępami prac nad rozwojem oprawy wizualnej. Okazało się, że nowa generacja kart graficznych Volta będzie obsługiwać technikę raytracingu. W tym materiale postaramy się przybliżyć Czytelnikom, czym jest raytracing i czy mamy szansę zobaczyć dzięki niemu niezwykłe efekty w nadchodzących grach.

Nvidia na ostatniej konferencji GDC 2018 odświeżyła w pamięci wielu osób pojęcie raytracingu, kiedy to poinformowała, że poświęci mu więcej uwagi. Warto więc wiedzieć, czym jest raytracing i czego można się spodziewać po Nvidii.

Raytracing jest techniką dynamicznego oświetlenia w grafice komputerowej. Do tej pory był wykorzystywany głównie przez profesjonalistów do tworzenia fotorealistycznej grafiki komputerowej w produkcjach filmowych i wizualizacjach architektonicznych. W grach, ze względu na bardzo duże zapotrzebowanie na moc obliczeniową, nie był dotychczas stosowany. Preferowano prostsze oświetlenie, w którym cienie, odbicia oraz światła były wyliczane statycznie.

Raytracing

Do generowania sceny 3D wykorzystuje się śledzenie dróg światła z kamery i na tej podstawie generuje płaski obraz, wyświetlany później na ekranie komputera. 

Diagram na górze pokazuje, jak tworzona jest scena z użyciem raytracingu. Jest to pełny model, w którym zastosowano algorytm rekurencyjny.

  • Promienie główne (czerwone) zawsze są prowadzone jako pierwsze z punktu, w którym obserwujemy scenę.
  • Następnie wyszukiwane są najbliższe punkty przecięcia tych promieni z obiektami w scenie.
  • Dla każdego źródła światła zdefiniowanego w scenie wyznaczana jest jasność w punkcie padania, zgodnie z określonym modelem oświetlenia (np. Warda czy Phonga; o modelach oświetlenia powiemy w dalszej części, przy czym uwzględnimy tylko te najpopularniejsze).
  • Określa się także cienie. W tym celu jest sprawdzana widoczność źródła światła w danym punkcie, tj. czy światło nie jest przesłaniane przez jakiś obiekt (w celu sprawdzenia, czy obiekt jest zacieniony, z punktów odbicia promieni głównych prowadzone są promienie zacienienia w stronę źródeł światła), i jeśli nie, dopiero wtedy obliczana jest jasność punktu dla tego źródła.

W algorytmie rekurencyjnym dochodzi jeszcze jeden warunek:

Jeśli punkt przecięcia należy do obiektu odbijającego światło lub przezroczystego, wysyłane są z tego punktu promienie wtórne. Są to, odpowiednio, promień odbity (na wykresie ciemnozielony), wyliczany na podstawie kąta padania światła i różnego rodzaju odbić, np. Fresnela, jak również na podstawie parametru IOR (ang. index of refraction), oraz promień załamany (na wykresie ciemnoniebieski), wyliczany tylko na podstawie parametru IOR. Dodatkowo dla tych punktów wyliczana jest połyskliwość, blask (na wykresie małe strzałki zielone i niebieskie; im większe rozproszenie strzałek tym większa połyskliwość).

raytracingoświetlenie lokalne

Dla szybkiego porównania przedstawiam dwie sceny. W jednej wykorzystano oświetlenie globalne i raytracing (po lewej), w drugiej wykorzystano oświetlenie lokalne (ten rodzaj oświetlenia jest stosowany głównie w grach komputerowych). W razie użycia oświetlenia lokalnego nie są liczone odbicia promieni światła od otoczenia

Raytracing jest bardzo kosztowny obliczeniowo. Liczba promieni, które są obliczane, zależy od rozdzielczości wyświetlanego obrazu. Jeszcze bardziej jednak na stopień skomplikowania obliczeń wpływa złożoność sceny, tj. liczba obiektów oraz ich budowa.

Oczywiście, raytracing ma wady. Ponieważ operuje na pojedynczych promieniach, ma problemy z poprawnym modelowaniem rozproszenia światła (dyfrakcji), jak i rozszczepienia, np. na pryzmacie. Nie uzyskamy też efektów zjawisk falowych, takich jak aberracja fotochromatyczna. Na potrzeby tych efektów stworzono dodatkowe techniki, które współdziałają z technikami śledzenia promieni i uzupełniają brakujące efekty. Do tych rozwiązań należą: metoda energetyczna  (ang. radiosity), w której wykorzystuje się mapy wypromieniowania (ang. irradiance map – patrz opis poniżej), śledzenie ścieżek (ang. path tracing), metoda map fotonowych (ang. photon map) i tzw. forward raytracing, który jest odwrotnością algorytmu raytracingu.

Jakich technik oświetlenia użyła Nvidia w demie RTX

RTX

Najnowsze demo technologiczne Nvidii rzuca bardzo dużo światła na przyszłość grafiki komputerowej i na to, co inżynierowie firmy chcą wprowadzić w swoich najnowszych kartach graficznych. Skupiono się głównie na wiernym odtworzeniu cieniowania i odbić na różnych powierzchniach oraz oświetleniu globalnym. Poniżej opiszemy techniki oświetlenia globalnego oraz modele oświetlenia i powierzchni odbijających światło.

Najpierw zajmiemy się oświetleniem globalnym, które określa oświetlenie w scenie

Do tej pory najczęściej używanymi technikami oświetlenia globalnego były dwie metody. Metoda energetyczna (ang. radiosity), która wykorzystuje do obliczeń mapy irradiancji, i mapa fotonów (ang. photon map), która do obliczeń wykorzystuje najmniejsze cząstki światła, czyli fotony. Obie te techniki mogą występować pojedynczo i wyświetlać naszą oświetloną scenę. Obraz będzie jednak wyglądał najlepiej dopiero wtedy, gdy silnik renderujący uwzględni oba te rozwiązania.

Obydwie metody bardzo dobrze się uzupełniają. Metoda energetyczna uwzględnia wyłącznie oświetlenie rozproszone. Nie uwzględnia natomiast efektów świetlnych takich, jak rozbłyski i załamania światła. Te z kolei zapewnia technika mapowania fotonów. Dlatego warto je połączyć.

Technika energetyczna

Radiancja

Technika energetyczna (ang. radiosity), czyli irradiancja, jest funkcją definiującą dowolny punkt (piksel) w scenie 3D i reprezentuje sumę światła dochodzącego w tym punkcie ze wszystkich kierunków. Generalnie irradiancja jest inna w każdym punkcie sceny. Możemy więc założyć, że irradiancja (wypromieniowanie) to zbiór punktów w scenie 3D. Kiedy więc chcemy wyliczyć irradiancję w danym punkcie podczas obliczania oświetlania globalnego, nasz silnik renderujący przeszukuje mapę punktów irradiancji, porównuje ją z sąsiadującymi punktami i sprawdza, czy są one podobne pod względem położenia i kierunku. Na tej podstawie wyliczane są miejsca, z których algorytm renderujący może uzyskać dokładne informacje o tym, co znajduje się w scenie i w jakiej jest relacji z resztą otoczenia. Na podstawie tych miejsc tworzona jest mapa irradiancji.

Sprawdź aktualne ceny kart graficznych – może to dobra okazja do zakupu?

Trzeba wiedzieć, że taka mapa wyliczana jest na samym początku w bardzo niskiej rozdzielczości; często jest to jedna czwarta oryginalnej rozdzielczości, przy czym nie jest to wartość jednakowa dla poszczególnych obiektów w scenie. W scenie są miejsca, które wymagają bardziej precyzyjnych obliczeń, np. kiedy obiekty są bardzo blisko siebie lub miejsce wymaga bardzo dokładnego wyliczenia cieniowania. Z drugiej strony mamy niezbyt wymagające fragmenty sceny 3D, np. duże równo oświetlone powierzchnie.

W przykładowej scenie jest to powierzchnia blatu. Jest oświetlona jednorodnie i nie wymaga skomplikowanych obliczeń. Tak więc mapa irradiancji może być budowana adaptacyjnie. Odbywa się to przez renderowanie sceny kilkukrotnie (każdy taki rendering nazywa się przejściem i zwiększa liczbę szczegółów w finalnej scenie). Oczywiście, można określić, ile takich renderingów (przejść) ma nastąpić. Komu więc nie zależy na idealnej definicji obszaru, ten może ograniczyć  liczbę przejść do minimum.

Jak dokładnie przebiega obliczanie mapy irradiancji, pokazuje diagram powyżej. 

Ponieważ działanie tej metody zależy od tego, co widać na ekranie, pierwsze śledzone są promienie główne (czarne), wyprowadzane z naszej kamery na scenę. To one określają punkty, z których będziemy próbkować mapę irradiancji (wypromieniowania). Kiedy punkty rozproszenia zostają wyznaczone, przechodzimy do drugiej fazy. Z tych punktów prowadzone są w stronę sceny promienie światła (czerwone), które zbierają dane o jej całkowitym oświetleniu. Liczba tych promieni może być dowolnie kontrolowana. Od tego zależy finalna jakość oświetlenia rozproszonego. Mapa irradiancji może śledzić tylko jedno odbicie promieni światła, każde następne musi już zostać wykonane przez drugi silnik renderujący (drugie odbicie to niebieska strzałka na diagramie). Tworzenie mapy irradiancji polega na następujących po sobie przejściach (renderingach), w trakcie których silnik renderujący dodaje więcej szczegółów.

Mapa irradiacji

Mapa irradiacji

Tak wyglądają mapy irradiancji w poszczególnych przejściach

Drugie odbicie jest wykonywane przy użyciu drugiego algorytmu oświetlenia globalnego, tzw. mapy fotonów (ang. photon map).

Mapa Fotonów

Technika ta jest bardzo podobna do mapy irradiancji, z tą różnicą, że w celu jej zbudowania śledzi się poszczególne cząsteczki bazowe światła (fotony), a nie promienie światła, które są emitowane przez źródła światła. Fotony te odbijają się od poszczególnych powierzchni w scenie, a punkty tych odbić są zapisywane w mapie fotonów. Dzięki temu mogą być tworzone takie efekty świetlne, jak: załamania światła, aberracja fotochromatyczna, połyskliwość materiału.

Photon map

kaustyka

Takie efekty rozszczepienia światła można osiągnąć za pomocą mapy fotonów

Śledzenie ścieżek

Trzecia z technik oświetlenia globalnego należy do najbardziej zaawansowanych, a efekty tworzone z jej zastosowaniem można nazwać fotorealistycznymi. Mowa o śledzeniu ścieżek (ang. path tracing). To rozwinięcie raytracingu, niekiedy wymagające jeszcze większej mocy obliczeniowej. 

Path tracing diagram

W tej technice źródłem promieni jest obserwator, tj. kamera. Z niej prowadzone są promienie świetlne w stronę sceny. Promienie te uderzają w powierzchnię. Z punktów, w które uderza taki promień, wystrzeliwane są losowo kolejne promienie (jeden lub więcej). Od funkcji losującej i liczby pierwotnie wystrzeliwanych promieni zależy jakość finalnego obrazu. Tworzenie pojedynczej ścieżki kończy się, gdy liczba odbić promienia światła przekracza pewien limit (na obrazku liczba zielonych promieni nie przekracza liczby odbić). Wówczas wyznacza się ostateczne natężenie światła, które dociera do obserwatora: składa się na nie natężenie światła pochodzącego od obiektów emitujących, które następnie jest tłumione; tłumienie zależy od współczynnika pochłaniania światła (tutaj korzystamy z funkcji BRDF materiału) dla każdego trafionego obiektu. Kiedy połączymy śledzenie ścieżek z poprawnymi fizycznie modelami oświetlenia i powierzchni, efekt będzie fotorealistyczny. Będzie też jednak bardzo kosztowny obliczeniowo.

Z drugiej strony można wygenerować obraz przy bardzo niskich wartościach parametru odbić i bardzo małej liczbie promieni wypuszczanych na scenę. Otrzymamy wtedy bardzo przybliżony obraz tego, jak ta scena ma wyglądać, jak rozkłada się oświetlenie i gdzie będą generowane cienie. Niestety, obraz będzie wtedy bardzo mocno zaszumiony (jak na renderingu poniżej).

Path tracing

Przykładowy rendering z wykorzystaniem śledzenia ścieżek. Liczba promieni na piksel – 1

Żeby temu zapobiec, różni producenci zaczęli opracowywać własne algorytmy odszumiania. Wśród nich jest Nvidia. Jej najnowszy algorytm odszumiania, OptiX 5.0, który może wykorzystywać techniki sztucznej inteligencji, należy do najszybszych. Zastosować może go posiadacz odpowiedniej karty graficznej, opartej na jednym z układów Nvidia Volta. Jak widać na wykresie poniżej, wykorzystanie tego algorytmu potrafi przyspieszyć proces renderingu poszczególnych klatek aż 54 razy. Niestety, nadal mówimy o wyjątkowo drogiej karcie, wyposażonej w układ Volta V100.

Wykres Odszumiania OptiX 5

Wykres pokazuje, o ile szybciej scena jest generowana z użyciem odszumiania OptiX 5.0

Efekty, które można osiągnąć przy użyciu tego algorytmu, przedstawiamy poniżej. Po lewej stronie znajduje się scena wygenerowana z wykorzystaniem bardzo niskiej wartości parametru SPP (ang. sample per pixel), a po prawej – ta sama scena wygenerowana przy tej samej wartości parametru SPP, ale z zastosowaniem algorytmu odszumiania OptiX 5.0.

AI OptiX 5

Ocena artykułu:
Ocen: 21
Zaloguj się, by móc oceniać
hideo (2018.05.01, 10:36)
Ocena: 12

0%
fajny dobry art, przyjemnie się czytało
Pawelek6 (2018.05.01, 10:37)
Ocena: 14

0%
Pieśń przyszłości, ciekawostka nadal.
Do wyrenderowania dema na UE4 (to sławne z Gwiezdnych Wojen) potrzeba było aż cztery Volty i to do wygenerowania filmowych 24 kl./s w 1080p.
Edytowane przez autora (2018.05.01, 10:37)
HΛЯPΛGŌN (2018.05.01, 11:16)
Ocena: -4

0%
Gry z pełnym raytracingiem to coś za około 5-7 lat. W konsolach pewnie Playastation 6. Daleka droga jeszcze.
Dthlfwp (2018.05.01, 11:30)
Ocena: -2

0%
Może w kolejnej generacji konsol obliczenia gry będą wspomagane w wyspecjalizowanej chmurze.
iD4Ru73K (2018.05.01, 12:27)
Ocena: 19

0%
Fajny bajer, marketingowcy mają pole do popisu by wzbić się na swoje wyżyny...

Nie twierdzę, że postęp technologiczny jest zły, on powinien trwać, zły jest tylko obrany kierunek. W grę się gra, bardzo często szybko i dynamicznie. Tego typu bajery są dobre w tech demach, benchmarkach i na statycznych obrazkach. Zmarnowane zasoby sprzętu...

W grach akcji, gdzie jesteśmy w ciągłym ruchu, mało kto zwraca uwagę na detale, bo ich po prostu nie widać. Wówczas połowa wszystkich hasełek technologicznych w języku angielskim zastosowana we współczesnej architekturze GPU nie ma żadnego znaczenia. Trzeba się zatrzymać, rozejrzeć, lizać każdy kąt. Raczej nie na tym polega granie.

To co zawsze rzuca się w oczy i sprawia, że nie da osiągąć się immersji to płytka fabuła, oklepany scenariusz, słaba fizyka, porażająca głupota AI, błędy, proste otoczenie i obiekty, brak interakcji, projekt lokacji i detali świata, tunelowe mapy i niewidzialne ściany.

Na to kasy, czasu, pomysłu, zasobów sprzętowych już nie ma...
HΛЯPΛGŌN (2018.05.01, 13:24)
Ocena: 2

0%
@ iD4Ru73k

Kierunek jest jak najbardziej dobry. To kolejny naturalny ruch po efektach 3Dfxa, obliczeń geometrycznych pierwszych GeForce, shaderów i programowalnych shaderów... itd Efekty Raytracingu to jest kolejny milowy krok w przybliżeniu sceny 3D do fotorealizmu. Nawet bardzo szybkiej grze akcji mimowolnie dostrzegamy różne drobne ulepszenia. Problemem raytracingu jest dzisiaj zapotrzebowanie na ogromną moc.
Luk4s (2018.05.01, 13:26)
Ocena: 4

0%
Do fotorealistycznej grafiki pełny RT wymaga dużej ilości próbek a to z kolei powoduje że nie ma możliwości czegoś takiego wyrenderować real-time. Nvidia przedstawiła półśrodek - zmniejszmy ilość próbek na tyle aby nasz najlepszy sprzęt podołał i dorzućmy postproces odszumiający. Wady widać w demie. W miejscach gdzie jest więcej przedmiotów, więcej interakcji w oświetleniu, jakość obrazu nie jest jednorodna - jeżeli postproces sobie nie radzi to po prostu brakuje tam więcej promieni. I być może to jest następny krok - adaptacyjny RT z podziałem na obszary, obiekty na scenie. Obecne modele oświetlenia też łączą w sobie różne techniki (jak wspomniał autor) - troche GI, troche statycznego oświetlenia, do tego efekty typu HBAO. Więc jeżeli RT ma się pojawić w grach na obecnym sprzęcie to na razie tylko w takiej formie, czyli łączony z innymi technikami oświetlenia.
iD4Ru73K (2018.05.01, 13:46)
Ocena: 14

0%
Duchu @ 2018.05.01 12:28  Post: 1141557
Fajny art.

Niestety to pieśń przyszłości a nV zamiast zajmować się pierdołami typu zdalne sterowanie VR pojazdami powinna dalej cisnąć techniki RTX.

(...)Niestety, efekty pokazane w demie, które wykorzystuje raytracing, nie nastrajają pozytywnie. (...)To pokazuje, jak daleko jeszcze jesteśmy od pełnoprawnego raytracingu w grach.

Kwintesencja całego zamieszania. licząc wg. nieśmiertelnego prawa moora za 3 lata będziemy mieli 4 krotny przyrost mocy obliczeniowej. Za 4,5 roku 8 krotny... Tylko czekać™

Pozdr.


Buehehe, prawo Moora. Do Cię majówkowa fantazja poniosła... Posłużmy się papierową wydajnością GPU, base core:

Rok 2013:

780: 4 TFLOPS
780 Ti: 5 TFPLOPS

--

Rok 2014:

980: 4,6 TFLOPS
980 Ti: 5,6 TFLOPS

--

Rok 2016:

1080: 8,2 TFLOPS
1080Ti: 10,6 TFLOPS

W ciągu trzech lat papierowa wydajność GPU wzrosła 2x. W przypadku CPU jest jeszcze zabawniej. Prawo Moora dawno od dawna jest fikcją.

2080Ti i nie będzie 2x szybsze od 1080Ti. Wchodzimy mocno w okres nowych silników graficznych + 4K i zasoby pójdą na co innego.
Zaloguj się, by móc komentować
Artykuły spokrewnione
Facebook
Ostatnio komentowane