Śledzenie promieni w czasie rzeczywistym to szczytowe osiągnięcie w zakresie realistycznego oświetlenia w renderowaniu programowym. Śledzenie promieni polega na uzyskiwaniu realistycznych wyników odbicia 1:1 dla obrazów lustrzanych przekierowanych ze świateł, powierzchni materiałów i obiektów. Większość inżynierów oprogramowania i sprzętu od dawna dążyła do tego, aby w końcu uczynić śledzenie promieni standardowym rozwiązaniem oświetleniowym w oprogramowaniu czasu rzeczywistego. Cóż, teraz staje się to standardową funkcją w silnikach gier i rozwiązaniach GPU. Nowe demo Neon Noir firmy Crytek ilustruje oprogramowanie Total Illumination, które nie tylko współpracuje z kartami Nvidia, ale może także działać w czasie rzeczywistym na sprzęcie AMD bez konieczności stosowania zastrzeżonej technologii RTX.
Demo zostało udostępnione za pomocą filmu przesłanego przez firmę Crytek 15 marca 2019 r. Film zawiera kilka sekwencji panoramowania i ujęcia z przelotu policyjnego drona badającego miejsce zbrodni. Scenariusz wygląda niesamowicie podobnie do cyberpunkowej scenerii z kultowej wersji demonstracyjnej Unreal Engine 3 znanej jako Samarytanin.
W trakcie oglądania możemy zobaczyć całkiem fajne obrazy zdolności CryEngine do renderowania śledzenia promieni w czasie rzeczywistym w specjalnie przygotowanej wersji CryEngine 5.5 działającej na procesorze graficznym AMD Vega 56.
Podczas początkowego pochylania się nad sceną widzimy pewne sekcje renderowania opartego na fizyce, w którym różne źródła światła niebieskiego, czerwonego i zielonego odbijają się od powierzchni. Ma to na celu pokazanie, że śledzenie promieni firmy Crytek działa w połączeniu z istniejącymi rozwiązaniami PBR.
Widzimy również, że można zastosować śledzenie promieni przy różnych gęstościach światła zarówno na powierzchniach statycznych, jak i ruchomych. Dobrym tego przykładem są ciemne okna, po których spływają krople deszczu, z rozmytymi, ale wyraźnymi odbiciami miasta w szybie. Skłonność do odbicia opiera się na nieprzezroczystości powierzchni, co nadaje odbiciu bardziej rozmyty wygląd niż w przypadku przedstawienia go na wyraźniejszej, czystszej i jaśniejszej powierzchni.
Widzimy, że w wielu przypadkach odbicia obrazu nie są idealnie symetryczne. Właściwości refrakcyjne powierzchni będą zaginać i zniekształcać światło zgodnie z możliwie najbardziej realistycznymi obliczeniami tych źródeł światła.
Rozwiązanie działa nie tylko na oknach i błyszczących powierzchniach, możemy jednak również zobaczyć, jak kałuże próbują dokładnie obliczyć realistyczne odbicia na mokrych powierzchniach, a także odpowiednie zniekształcenia przez popękane elementy, takie jak potłuczone lustra, popękane szkło, a nawet obracające się i poruszające się powierzchnie.
Jedną z rzeczy, które wydały mi się interesujące, jest to, że udało im się zredukować wszelkiego rodzaju efekty rekurencji na wielu powierzchniach o właściwościach odblaskowych.
Na przykład w skali 1:32 widzimy łuskę kuli leżącą na ziemi w kałuży wody. Woda odbija osłonki, a osłonki odbijają pobliskie fizycznie renderowane źródła światła, ale osłonki nie odbijają kałuż na ich powierzchni, eliminując w ten sposób jakąkolwiek rekursję. Zasadniczo pozwala to uniknąć efektu nieskończonego lustra.
To imponująca technologia, ponieważ pozwala mieszać i dopasowywać różne rodzaje odblaskowych powierzchni bez zakłócania zanurzenia przez renderowanie niesamowitych efektów.
Jeszcze bardziej imponujące jest to, że Crytek wyłączył natywne odbicia w przestrzeni ekranu, aby zaprezentować pełny zakres możliwości śledzenia promieni w CryEngine.
Według Crytek to rozwiązanie będzie działać z większością popularnych procesorów graficznych nowej generacji, zarówno AMD, jak i Nvidii, o czym wspomina w komunikacie prasowym…
„Neon Noir został opracowany na specjalnie przygotowanej wersji CRYENGINE 5.5., a eksperymentalna funkcja ray tracingu oparta na Total Illumination CRYENGINE wykorzystana do stworzenia wersji demonstracyjnej jest niezależna zarówno od API, jak i sprzętu, umożliwiając działanie ray tracingu na większości popularnych, współczesnych procesorów AMD i NVIDIA Procesory graficzne. Jednak przyszła integracja tej nowej technologii CRYENGINE zostanie zoptymalizowana pod kątem korzyści wynikających z ulepszeń wydajności zapewnianych przez najnowszą generację kart graficznych i obsługiwanych interfejsów API, takich jak Vulkan i DX12.
Crytek nie podaje dokładnie, kiedy ta nowa technologia będzie powszechnie dostępna, ale można się spodziewać, że zostanie zaprezentowanych jej więcej na tegorocznej konferencji Game Developers Conference w San Francisco w Kalifornii.
Tego rodzaju rozwiązanie zmniejszy potrzebę wstępnego wypalania odbić na niektórych powierzchniach lub polegania na mapach sześciennych lub innych nieporadnych obejściach w celu stworzenia realistycznie wyglądających odbić świata w środowisku. Z technicznego punktu widzenia może to pomóc artystom i inżynierom zajmującym się oświetleniem zaoszczędzić dużo czasu na opracowywaniu, a także zmniejszyć liczbę obiektów renderujących wymaganych do ożywienia sceny.
CryEngine można obecnie pobrać bezpłatnie, a funkcja śledzenia promieni ma zadebiutować jeszcze w 2019 r. Więcej informacji o pakiecie Total Illumination firmy Crytek można znaleźć na stronie oficjalna strona CryEngine.