Dla dzieci

AMD pokazuje technikę ray tracingu, która znacząco ogranicza zużycie pamięci BVH

AMD zaprezentowało badawczą technikę ray tracingu, która może istotnie zmniejszyć wymagania pamięciowe i koszt aktualizacji struktur przyspieszających w złożonych, animowanych scenach. Rozwiązanie wykorzystuje klatki tetraedryczne, dzięki którym gęsta geometria może pozostać statyczna, a animacji podlega uproszczona otaczająca ją struktura.

Ray tracing setek milionów animowanych trójkątów

Technikę opisano w artykule opublikowanym 17 września w serwisie AMD GPUOpen. AMD Fellow Holger Gruen przedstawił demonstrację dużej sceny terenowej zawierającej około 25 tys. niezależnie animowanych roślin. Przy maksymalnym poziomie szczegółowości obiekty te odpowiadają za około 2,8 mld trójkątów.

Po zastosowaniu wyboru poziomu szczegółowości, czyli LOD, scena obejmowała około 500 mln animowanych trójkątów śledzonych promieniami w każdej klatce. W demonstracji wykorzystano promienie główne i cieniujące, a całość działała z wydajnością przekraczającą 60 kl./s w rozdzielczości 1080p na karcie Radeon RX 9070 XT.

Klatki tetraedryczne zamiast ciągłej przebudowy BVH

W klasycznych implementacjach ray tracingu niezależnie animowane obiekty wymagają własnych struktur BVH, czyli hierarchii objętości ograniczających. Służą one do szybkiego określania, z którą geometrią może przeciąć się promień. Przy bardzo złożonych scenach aktualizowanie takich struktur staje się kosztowne obliczeniowo i pamięciowo.

Proponowane przez AMD podejście polega na umieszczaniu gęstej geometrii w prostszych, deformowalnych klatkach tetraedrycznych. Zamiast aktualizować każdy wierzchołek i powiązaną z nim strukturę przyspieszającą, animowana jest otaczająca klatka, natomiast oryginalna geometria oraz jej BVH pozostają statyczne i mogą być ponownie wykorzystywane. Przed testem przecięcia promienie są przekształcane z powrotem do pierwotnego układu odniesienia geometrii.

Wyniki podane przez AMD

  • Zużycie pamięci BVH: do 80 GB w konwencjonalnym podejściu wobec około 1,7 GB przy użyciu klatek tetraedrycznych.
  • Czas aktualizacji BVH na klatkę: ponad 300 ms w metodzie tradycyjnej wobec około 3,3 ms w nowej technice.
  • Liczba animowanych trójkątów po wyborze LOD: około 500 mln w obu wariantach demonstracji.

Według danych AMD oznacza to około 47-krotne zmniejszenie zapotrzebowania na pamięć dla struktur przyspieszających oraz ponad 90-krotne skrócenie czasu aktualizacji BVH. Są to dwa obszary, które zwykle ograniczają możliwość efektywnego stosowania ray tracingu w gęsto wypełnionych, animowanych środowiskach.

Zastosowania i ograniczenia

Technika nie jest pozbawiona kompromisów. AMD wskazuje, że klatki tetraedryczne ograniczają precyzyjną kontrolę nad animacją pojedynczych wierzchołków. Z tego powodu metoda lepiej pasuje do gęstej roślinności, trawy, tłumów lub oddalonych postaci niż do animacji wymagających bardzo dokładnych deformacji albo zmian topologii siatki.

Badanie opisano szerzej w pracy Ray Tracing Massive Amounts of Animated Geometry, która otrzymała trzecie miejsce w konkursie Wolfgang Straßer Best Paper Award podczas High-Performance Graphics 2026. AMD pracuje również nad przykładami dla DirectX Raytracing oraz nad biblioteką C++ typu header-only, która ma ułatwić deweloperom integrację tej metody z potokami renderowania.

Na tym etapie rozwiązanie pozostaje demonstracją badawczą, a nie funkcją dostępną już w wydanych grach. Wyniki pokazują jednak możliwy kierunek rozwoju ray tracingu w scenach zawierających bardzo dużą liczbę animowanych obiektów bez konieczności stosowania kart graficznych z ogromną ilością pamięci VRAM.

Dodaj komentarz