Vulkan oferuje teraz obsługę ray tracingu. Khronos opublikował ostateczną specyfikację Vulkan Ray Tracing, platformy programistycznej, która umożliwia przyspieszenie funkcji śledzenia promieni w tym standardzie open source do tworzenia gier wideo i aplikacji 3D.
Śledzenie promieni to technika reprezentacji, która realistycznie symuluje sposób, w jaki promienie światła przecinają się i oddziałują z geometrią scen, materiałów i źródeł światła w celu wygenerowania fotorealistycznych obrazów. Jest szeroko stosowany do renderowania filmów i innych produkcji wideo, jest również używany w grach wideo i zaczyna być również używany w innych typach aplikacji.
Do tej pory tego typu funkcja przyspieszania promieni była ograniczona do dedykowanych grafik NVIDIA RTX i bibliotek DirectX 12 Ultimate. Pojawienie się Vulkan Ray Tracing może otworzyć jego użycie dla innych typów sprzętu, przez każdego programistę i dla każdego oprogramowania, które wykorzystuje obrazy 3D.
Należy pamiętać, że Vulkan to zestaw bibliotek typu open source, które zapewniają dostęp niskopoziomowy, umożliwiając programistom maksymalizację wydajności sprzętu. Otwarty, bezpłatny, wieloplatformowy interfejs API, który był stale ulepszany w ciągu ostatnich kilku lat i stał się jedyną alternatywą dla DirectX firmy Microsoft.
Khronos opublikował ostateczną specyfikację zestawu specyfikacji, które umożliwią sprzętowe przyspieszenie śledzenia pioruna. Jest to ważne, ponieważ jest to pierwszy otwarty standard, który umożliwia tego typu funkcje.
Vulkan Ray Tracing integruje spójną strukturę ray tracingu z Vulkan API, umożliwiając elastyczne połączenie rasteryzacji i przyspieszenia ray tracingu. Vulkan ray tracing został zaprojektowany tak, aby był niezależny od sprzętu i dlatego może być przyspieszany zarówno na istniejących procesorach graficznych, jak i na dedykowanych rdzeniach do śledzenia promieni, jeśli są dostępne.
Ogólna architektura tych bibliotek będzie znana użytkownikom istniejących interfejsów API śledzenia promieni, umożliwiając bezpośrednie przenoszenie istniejących treści związanych ze śledzeniem promieni, ale ta struktura wprowadza również nową funkcjonalność i elastyczność we wdrażaniu.
Vulkan Ray Tracing składa się z serii rozszerzeń Vulkan, SPIR-V i GLSL, z których niektóre są opcjonalne. Podstawowe rozszerzenie VK_KHR_ray_tracing zapewnia obsługę konstrukcji i zarządzania strukturami akceleracyjnymi, etapami śledzenia promieni i potokami cieniującymi oraz wewnętrznymi zapytaniami dla wszystkich etapów shaderów.
Innym ważnym rozszerzeniem jest VK_KHR_pipeline_library, zapewniający zestaw shaderów, które można wydajnie łączyć w potoki ray tracingu, podczas gdy VK_KHR_deferred_host_operations umożliwia pobieranie intensywnych operacji kontrolera, w tym kompilacji śledzenia promieni lub konstrukcji struktury akceleracji opartej na procesorze, do grup wątków zarządzanych przez podanie.
Wszystkie te funkcje są już zdefiniowane w ostatecznej wersji specyfikacji, chociaż proces ich implementacji nie jest automatyczny i musi być zdefiniowany przez każdego programistę dla każdej gry lub aplikacji. Vulkan może korzystać z szerokiej gamy sprzętu. Teoretycznie każdy procesor graficzny mógłby uruchomić Vulkan RT przy użyciu istniejących rdzeni „obliczeniowych GPU”, chociaż wydajność prawdopodobnie nie będzie maksymalna.
Wspaniałą wiadomością jest to, że Vulkan został skonsolidowany jako doskonała alternatywa dla monopolu Microsoftu na DirectX i we wszystkich typach funkcji, w tym ray tracingu, który stał się jedną z referencyjnych technik reprezentacji. Khronos ma wielu producentów, którzy je obsługują (AMD, Intel, NVIDIA, Qualcomm, Imagination, ARM…) oraz dostawców silników graficznych, takich jak iDTech, Unreal, Unity, Frostbite czy CryEngine. Wkrótce zobaczenie Vulkan Ray Tracing w świetnych grach nie będzie trudne.