Dość iluzji, Microsoft otworzył drogę do fotorealizmu w grach na Windows 10

Dość iluzji, Microsoft otworzył drogę do fotorealizmu w grach na Windows 10

PICA PICA z demo SEED, źródło Electronic Arts
PICA PICA z demo SEED, źródło Electronic Arts
20.03.2018 15:05, aktualizacja: 22.03.2018 10:35

Grafika trójwymiarowa z którą obcujemy w grach komputerowych totylko iluzja. Przechowywany w pamięci trójwymiarowy świat jestrysowany na dwuwymiarowym ekranie poprzez rasteryzację,odwzorowanie prymitywów 3D na płaszczyznie poprzez macierzetransformacji. Robi się przy tym wszystko, by rysować tylko to, cobędzie ostatecznie widoczne – i przez długie lata taka iluzjawystarczyła. Jednak coraz wyższe poziomy realizmu w grach,zapewniane przez nowe techniki graficzne, takie jak mapowanie cieni,mapowanie środowiska, globalne oświetlenie stawiają coraz wyższewymagania mocy obliczeniowej. Są też zasadniczo niezgodne zmetodami rasteryzacji. I właśnie dlatego Microsoft z Nvidią chcąwypróbować w grach coś, co jeszcze do niedawna było technicznieniemożliwe. Do DirectX 12 wprowadzone zostają mechanizmyraytracingu, za sprawą których gry w przyszłości staną się takfotorealistyczne jak to tylko możliwe.

Wpis na oficjalnym DirectX Developer Blog przedstawiaw szczegółach funkcjonalność, która ma być mostem nadprzepaścią między współczesnymi technikami rasteryzacji w gracha efektami 3D w przyszłości. DirectX Raytracing (DXR) pozwala naprzemierzenie całej wewnętrznej trójwymiarowej reprezentacjiświata gry, pozwalając nowoczesnym technikom renderowania grafikina wypełnienie tych luk, które pozostawiają algorytmyrasteryzacji. W konsekwencji możliwe mają stać się zupełnie nowetechniki, nigdy wcześniej nie stosowane w rysowanych w czasierzeczywistym grach.

Co jest nie tak z rasteryzacją?

Algorytmy stosowane w rasteryzacji grafiki 3D działają bardzoefektywnie na procesorach graficznych, ponieważ operacje te możnaprowaadzić równolegle. Obiekty są rzutowane na płaszczyznę przedich pokolorowaniem, a później w niezależnych wątkach możnawykonać pracę związaną z kolorowaniem pikseli na płaszczyźnie.

Rzeczywisty świat tak się jednak nie zachowuje. W świecie kolorjednego obiektu ma wpływ na obiekty dookoła niego, światło wzłożonych sposób odbija się i rozprasza na powierzchniach. Tewszystkie efekty świetlne symuluje się więc, dzięki czemu w grachmamy iluzję odbić, cieni i pośredniego oświetlenia. Oszukiwaćzmysły można jednak tylko do pewnego etapu, większość ekspertówmówi, że większego fotorealizmu w ten sposób już nie da sięuzyskać, po prostu informacja o obiektach 3D w trakcie rasteryzacjiznika.

Jak działa raytracing?

Znana od dziesiątków lat grafikom 3D technika raytracinguodtwarza optykę i geometrię świata. Kolor pikseli wyliczany jestpoprzez śledzenie ścieżki światła, jakie by piksele te zabarwiłoi jego interakcje z matematycznymi modelami powierzchni w wirtualnymświecie. Innymi słowy dzięki raytracingowi wiemy, jak wyglądałbypiksel, gdyby do wirtualnego światła wprowadzić prawdziwe światło.Pojawiają się wtedy odbicia, cienie i pośrednie oświetlenia –nie trzeba stosować żadnych efektów specjalnych.

Experiments with DirectX Raytracing in Northlight

W ten sposób można ustalić kolor każdego piksela, wysyłającw jego stronę promień światła – algorytm wyliczy, który obiektzostanie pierwszy oświetlony i w którym miejscu. Następnieoceniany jest wpływ światła na konkretną powierzchnię, napodstawie jej właściwości fizycznych i to, jak światło odbijesię dalej, do kolejnych obiektów, gdzie ponownie przeprowadzasię obliczenia reakcji i odbić.

Cztery nowe koncepcje w starym DirectX 12

Nowy interfejs DirectX 12, DirectX Raytracing wprowadza czterynowe koncepcje do biblioteki graficznej Microsoftu. Są to:

  • Struktura akceleracji, czyli obiekt przedstawiający środowisko3D w formacie dogodnym do przeliczania przez GPU, z dwupoziomowąhierarchią, ujmującą zarówno wyliczanie promieni światła jak imodyfikacje świata dynamicznymi obiektami.
  • Nowa metoda listy poleceń, DispatchRays, która wysyła promienieświetlne na scenę, i na poziomie sprzętowym wprowadza obciążeniarobocze na GPU.
  • Nowe typy shaderów (ray-generation, closest-hit, any-hit, miss),które określają, co obciążenie robocze DXR ma robić w kwestiiobliczeń. Po wyliczeniu ścieżki promienia światła wywoływane sąw miejscu zderzenia shadery trafienia i minięcia. Pozwala to grzeprzypisać każdemu obiektowi własny zestaw shaderów i tekstur,tworząc w ten sposób unikalne materiały.
  • Stan potoku raytracingu, odpowiednik obecnie używanego potokustanu obiektów, który zawiera shadery raytracingu i inne danezwiązane z takimi obciążeniami roboczymi.

Jak widać, celowo nie zdecydowano się na wprowadzenie nowegosilnika do DirectX 12, to wszystko działa na już istniejącychsilnikach Graphics i Compute. DXR to po prostu działające na nichnowe środowisko obliczeniowe, które początkowo będzie uzupełniaćobecne techniki renderowania, prowadząc do wzrostu ich jakości, a zczasem zastąpi rasteryzację i stanie się domyślnym sposobemrenderowania grafiki 3D w grach.

PIX: narzędzie do pracy z raytracingiem w DX12
PIX: narzędzie do pracy z raytracingiem w DX12

Nowe API ma być używane już teraz, Windows będzie wspierał jewięc od samego początku. Deweloperzy do pracy nad raytracingiem wgrach mają korzystać z nowego narzędzia PIX, obsługującegoprzechwytywanie i analizowanie ramek zbudowanych przy użyciu DXR.Wśród firm, które zainteresowane są wykorzystaniem tejtechnologii znalazły się m.in. Electronic Arts, Epic Games, Unreali Unity Technologies.

Volta dla gier?

Podczas konferencji GDC Nvidia nie pokazała nowych kartgraficznych, zamiast tego pokazała, jak może wyglądać przyszłośćgier z wykorzystaniem technologii Microsoftu. Demonstracjaprzeprowadzona została na układach graficznych z rodziny Volta,które najwyraźniej jako pierwsze mają wspierać DXR. Dzisiaj z tejrodziny dostępne są na rynku jedynie Titan V oraz akcelerator TeslaV100, ale najwyraźniej w końcu powinniśmy zobaczyć pierwszeskierowane do graczy układy – a nie tylko sprzęt optymalizowanypod kątem trenowania sieci neuronowych.

SEED - Project PICA PICA - Real-time Raytracing Experiment using DXR (DirectX Raytracing)

O tym, że zieloni traktują sprawę poważnie świadczyć musiwprowadzenie obsługi DXR do swojego middleware dla gier, GameWorksSDK. Za jego pomocą deweloperzy już dziś będą mogli korzystać zraytrace’owanych cieni, odbić i przezroczystości. Bez jednaknowej generacji kart GeForce, to wszystko pozostałoby jedynieciekawostką dla nielicznych posiadaczy najnowszego Titana.

Programy

Zobacz więcej
Źródło artykułu:www.dobreprogramy.pl
Oceń jakość naszego artykułuTwoja opinia pozwala nam tworzyć lepsze treści.
Wybrane dla Ciebie
Komentarze (85)