Ray tracing potrafi zdziałać cuda jeśli chodzi o odbicia i cienie, ale jednocześnie mocno obciąża kartę graficzną, szczególnie gdy scena składa się z ogromnej liczby animowanych obiektów. AMD zaprezentowało jednak technikę, która może w bardzo dużym stopniu ograniczyć zarówno zapotrzebowanie na pamięć, jak i koszt obliczeń związanych z aktualizowaniem struktur niezbędnych do śledzenia promieni.
Holger Gruen z AMD zaprezentował na GPUOpen technikę wykorzystującą tzw. tetrahedral cages, czyli czworościenne klatki otaczające gęstą geometrię. Demonstracja obejmowała rozległy teren z około 25 tys. niezależnie animowanych roślin. Poziom szczegółowości wszystkich obiektów odpowiadał zaś około 2,8 mld trójkątów, a po zastosowaniu mechanizmu LOD w każdej klatce ray tracing obejmował około 500 mln animowanych trójkątów. Co szczególnie imponujące, demonstracja działała w ponad 60 kl./s w 1080p na karcie Radeon RX 9070 XT.
Holger Gruen z AMD zaprezentował na GPUOpen technikę wykorzystującą tzw. tetrahedral cages, czyli czworościenne klatki otaczające gęstą geometrię.
Zamiast przebudowywać BVH, AMD animuje klatkę
Sekret rozwiązania tkwi w ograniczeniu kosztów struktur BVH (Bounding Volume Hierarchy). W tradycyjnym podejściu niezależnie animowane obiekty wymagają bowiem własnych struktur, które trzeba aktualizować wraz ze zmianą geometrii, a przy setkach milionów trójkątów szybko staje się to ogromnym obciążeniem dla GPU i VRAM. AMD proponuje z kolei inne podejście, gdzie gęsta, szczegółowa geometria oraz jej BVH pozostają niezmienione, natomiast animowana jest otaczająca ją prosta „klatka” z czworościanów. Promienie są następnie przekształcane do oryginalnego układu współrzędnych geometrii przed wykonaniem testu przecięcia. Efekt jest naprawdę imponujący, bo rozwiązanie Czerwonych ma wymagać około 47 razy mniej pamięci na struktury akceleracyjne i ponad 90-krotnie skracać czas aktualizacji BVH.

Nie dla każdej animacji
Technika ma jednak ograniczenia, ponieważ mniejsza kontrola nad pojedynczymi wierzchołkami sprawia, że najlepiej sprawdzi się w przypadku trawy, roślinności, tłumów czy znajdujących się dalej postaci. Gorzej nadaje się natomiast do precyzyjnych deformacji modeli i animacji zmieniających topologię.
Trzeba też podkreślić, że to na razie projekt badawczy, a nie technologia, która lada moment trafi do gier (chyba, że czerwona ekipa szykuje jakąś niespodziankę). AMD przygotowuje jednak przykłady dla DirectX Raytracing oraz bibliotekę C++, co może ułatwić deweloperom wykorzystanie rozwiązania w przyszłości. Jeśli zaś technika trafi do silników gier, znacznie bardziej szczegółowe i dynamiczne światy mogą przestać wymagać absurdalnych ilości VRAM.
Spodobało Ci się? Podziel się ze znajomymi!

Pokaż / Dodaj komentarze do:
AMD znalazło nowy sposób na ray tracing. Ma jedną istotną zaletę