
Dlaczego śledzenie promieni na urządzeniach mobilnych ma znaczenie
Ray Tracing umożliwia realistyczne oświetlenie, odbicia i cienie, aby zwiększyć immersję gracza w ciemnym świecie fantasy Abyss of Dungeons. Piękna grafika jest bardzo ważna w przypadku gier mobilnych, ale osiągnięcie wysokiej jakości efektów, takich jak obrazy z ray tracingiem, było dużym wyzwaniem. W przeszłości ograniczenia wydajności gier mobilnych ograniczały zaawansowane techniki renderowania, co wymuszało kompromisy w zakresie jakości grafiki w porównaniu z grami na PC i konsole.
Krafton Abyss of Dungeons miał na celu przezwyciężenie tych ograniczeń. Celem było zintegrowanie technologii ray tracingu, która jest zwykle zarezerwowana dla zaawansowanych platform, z wersją na urządzenia mobilne w Unreal Engine 5 (UE5). Celem tego przedsięwzięcia było znaczne zwiększenie immersji gracza dzięki zapewnieniu bardziej realistycznej i bogatszej pod względem wizualnym grafiki na urządzeniach mobilnych. Zespół musiał rozwiązać problemy z wydajnością, dostosować złożone procesy renderowania, takie jak Lumen w UE5, i zapewnić stabilność na różnych urządzeniach mobilnych. Był to ważny krok w kierunku zapewnienia jakości konsoli w grach mobilnych.
Przejście od rastrowania do śledzenia promieni
Konwencjonalna rasteryzacja jest standardem w renderowaniu na urządzeniach mobilnych ze względu na szybkość. Projektuje obiekty 3D na ekran 2D piksel po pikselu. Ta metoda jest skuteczna, ale upraszcza interakcje ze światłem, co powoduje mniej realistyczne cienie i odbicia.
Śledzenie promieniowe to inne podejście. Symuluje rzeczywistą ścieżkę promieniowania światła i oblicza jego interakcje z obiektami. Dzięki temu można uzyskać bardzo dokładne i realistyczne oświetlenie, cienie oraz odbicia. Jednak ten realizm wiąże się z wysokimi wymaganiami obliczeniowymi. Obliczanie ścieżki i interakcji każdego promienia wymaga znacznej mocy obliczeniowej.
Porównanie tworzenia bitmap i śledzenia promieni
W tej tabeli zestawiono najważniejsze różnice między rasteryzacją a śledzeniem promieni:
Funkcja | Rastryzacja | śledzenie promieni, |
---|---|---|
Szybkość | Szybko | Wolno |
Realizm | Opuść | Wyższa |
Wykorzystanie zasobów | Niska | Wysoki |
Ta intensywność wykorzystania zasobów stanowi wyzwanie dla urządzeń mobilnych, które mają ograniczoną moc obliczeniową w porównaniu z komputerami stacjonarnymi. To ograniczenie utrudniało stosowanie śledzenia promieni w przypadku platform mobilnych.
Wybieranie i implementowanie śledzenia promieni w Androidzie: metodyczny sposób

W przypadku implementowania śledzenia promieni w Androidzie za pomocą Vulkan rozważano 2 główne metody: zapytania o promienie i przepływy promieni. Zapytania o promienie oferowały prostsze podejście, umożliwiając ręczne zarządzanie promieniami w shaderach, co było łatwiejsze do zintegrowania z dotychczasowymi systemami.
Rury procesowe promieniowe zapewniają jednak bardziej skalowalne rozwiązanie, które umożliwia Vulkanowi zarządzanie przemierzaniem promieni i ich przecięciami. Chociaż zapytania o promienie były początkowo nieco szybsze w prostszych scenach, to systemy Ray Pipelines wykazywały się lepszą skalowalnością i wydajnością w przypadku bardziej złożonych aplikacji do śledzenia promieni, dzięki czemu były lepszym wyborem w przypadku długoterminowego rozwoju i skomplikowanych wymagań wizualnych. Postanowiliśmy połączyć łatwość wstępnego opracowania z możliwością skalowania i ogólnym działaniem, koncentrując się na długoterminowej integralności wizualnej gry.
Dostosowanie UE5 Lumen do urządzeń mobilnych: monumentalne zadanie

Lumen, czyli system globalnego oświetlenia i odbicia w czasie rzeczywistym, który jest częścią UE5, zrewolucjonizował oświetlenie w środowiskach gier. Pierwotnie jednak została ona zaprojektowana pod kątem komputerów i konsol o wysokiej wydajności, a nie urządzeń mobilnych. Złożoność i wymagania dotyczące zasobów Lumen stanowiły główne wyzwanie dla integracji mobilnej. Dostosowanie Lumena do Androida wymagało gruntownych modyfikacji w pipeline renderowania i kompilatorze shaderów UE5 oraz optymalizacji struktur przyspieszenia (AS) w celu efektywnego zarządzania złożonymi danymi sceny. Celem zespołu było wypełnienie luki i umożliwienie urządzeniom mobilnym obsługi zaawansowanych obliczeń oświetlenia w Lumen bez utraty wydajności czy stabilności. Te wysiłki przyczyniły się również do rozwoju oficjalnej wersji kodu Unreal Engine, co przyniosło korzyści szerszej społeczności twórców gier i polepszyło możliwości renderowania na urządzeniach mobilnych.
Śledzenie promieni i cienie oraz odbicia: zwiększanie realistyczności wizualnej


Wdrożenie cieni z wykorzystaniem ray tracingu wymagało śledzenia promieni światła bezpośrednio od powierzchni do źródeł światła, co zapewnia większą dokładność w porównaniu z tradycyjnymi mapami cieni. Proces obejmował prepass głębi, zapytania o cienie, redukcję szumów oraz integrację z passem oświetlenia. Miękkie cienie zostały uzyskane dzięki zastosowaniu pojedynczego promienia z drżeniem, a następnie usuwania szumów. W przypadku odbić zespół zastosował wieloetapowy proces obejmujący przetwarzanie G-buffera, śledzenie promieni, przechowywanie danych odbić i uderzeń, konwersję identyfikatorów materiałów, przetwarzanie rozwiązywania (tworzenie odbitego obrazu) oraz przetwarzanie mieszania (integrowanie odbić z główną sceną). Optymalizacje takie jak odczyt z procesora, metody kafelkowania, grupowanie instancji i asercji asynchronicznych znacznie poprawiły wydajność i zredukowały obciążenie, co rozwiązało problem z intensywnym wykorzystaniem zasobów przez te procesy na urządzeniach mobilnych.
Wpływ na skuteczność i strategie optymalizacji


Wpływ ray tracingu na wydajność, zwłaszcza w przypadku odbić, zależał w dużym stopniu od sceny. W przypadku scen z dużą ilością odbijających światło powierzchni odbicia mogą zajmować znaczną część czasu trwania klatki (30–40%). Optymalizacja była kluczowa dla zapewnienia możliwości śledzenia promieniowego. Zespół zastosował wiele technik, aby zmniejszyć narzut i zwiększyć wydajność: renderowanie na podstawie kafelków w celu zminimalizowania marnowania przetwarzania, grupowanie instancji tego samego materiału i geometrii w celu zmniejszenia liczby wywołań rysowania, tworzenie struktur przyspieszenia tylko dla widocznych geometrii oraz korzystanie z obliczeń asynchronicznych do tworzenia struktur przyspieszenia. Te strategie znacznie skracają czas przetwarzania i obciążenie procesora graficznego, co umożliwia ray tracing w czasie rzeczywistym na sprzęcie mobilnym.
Więcej informacji


Gra Abyss of Dungeons firmy Krafton pokazała, że dzięki strategicznym adaptacjom i optymalizacjom można przenieść zaawansowane techniki renderowania, takie jak ray tracing, na platformy mobilne. Zespół z powodzeniem zaadaptował system Lumen z UE5, wdrożył niestandardowe rozwiązania do renderowania i rozwiązał wiele problemów technicznych, aby zapewnić ulepszoną optycznie rozgrywkę. Dzięki temu nie tylko udało się poprawić wierność wizualną Abyss of Dungeons, ale też uzyskać cenne informacje i techniki, które przydadzą się w przyszłości przy tworzeniu gier mobilnych. Pokazuje ona, jaką moc ma współpraca między twórcami gier i dostawcami technologii w przygotowaniu innowacji i podnoszeniu jakości rozgrywki mobilnej, która staje się coraz bardziej zbliżona do jakości oferowanej na komputerach i konsolach. Szczegółowe informacje o optymalizacji treningu promieniowego znajdziesz w witrynie dla deweloperów Samsunga.