Hirdetés

Szabványos sugárkövetést kapott a Vulkan

A Khronos Group öt kiterjesztéssel implementálta a rendszert az 1.2.162-es verzió API-ba.

A Khronos Group bejelentette, hogy véglegesítették a Vulkan API 1.2-es verziójához tartozó, sugárkövetéshez való kiterjesztéseket, amelyek fejlesztése elég régóta zajlik.

A friss rendszer öt Vulkan kiterjesztésből áll. Ezek közül a legfontosabb VK_KHR_ray_tracing_pipeline, amely biztosítja a gyorsítóstruktúra felépítéséhez és menedzseléséhez szükséges funkcionalitást, definiálja a sugárkövetéshez való futószalagot, annak lépcsőivel együtt, illetve a sugárlekérdezés beépített függvényét hozzáférhetővé teszi az összes shader lépcsőn. Hozzá kapcsolódik a VK_KHR_pipeline_library, amivel az adott shaderkészlet hatékonyan linkelhető a sugárkövetés futószalagjába. A korábbiakhoz képest újítás a gyorsítóstruktúrára vonatkozó funkcionalitást biztosító VK_KHR_acceleration_structure, illetve VK_KHR_ray_query kiterjesztés, ami lényegében a DXR (DirectX Raytracing) 1.1-es verziójának megfelelő tudást biztosít a Vulkan API-n belül, de ennek a használata opcionális. Itt fontos különbség, hogy amíg a Microsoft a DXR 1.0-t és DXR 1.1-et a futószalag szintjén is megkülönbözteti, addig a Khronos Group implementációja némileg egyszerűbb, mivel a kiterjesztések egymásra építkeznek. Végeredmény tekintetében persze mindkét grafikus API-n meg lehet majd csinálni ugyanazt.

A fentiek mellett több kiterjesztést kapott a SPIR-V (SPV_KHR_ray_tracing és SPV_KHR_ray_query) és a GLSL (GLSL_EXT_ray_tracing, GLSL_EXT_ray_query és GLSL_EXT_ray_flags_primitive_culling). Ezek definiálják a sugárkövetéssel kapcsolatos függvényeket a shaderekben. Mindebből kitalálható, hogy a GLSL nyelven keresztül elérhető lesz az újítás, de a készülő SPIR-V specifikáció elfogadja majd a HLSL-ben írt kódokat is. Mivel az alapvető működés szempontjából a Microsoft és a Khronos Group rendszere eléggé hasonló, így a DirectX Raytracinghez írt HLSL shaderek egészen minimális módosításokkal szállíthatók a Vulkan API-ra.

Mindezeken túl a VK_KHR_deferred_host_operations tartalmazza a működés legalapvetőbb funkcióit, ideértve a sugárkövetés futószalagjának lefordítását, valamint a gyorsítóstruktúra felépítésének kiszervezését az alkalmazás által menedzselhető processzormagokra. Utóbbi egy nagyon érdekes fejlesztés, amihez hasonló a DirectX Raytracingben nincs is. Annyi biztos, hogy egy ideje komoly vita van arról, hogy hol kellene a gyorsítóstruktúrát felépíteni. Alapvetően ezt a grafikus processzor végzi, de a Khronos Group megadja annak a lehetőségét, hogy a munka egészét, vagy akár csak egy részét a program kiszervezze a processzormagokra. Ez főleg azért lesz lényeges, mert egyrészt a GPU eleve egy nagyon leterhelt hardverelem, miközben a CPU-kban a magok száma igen intenzíven növekszik, és ezeket könnyen be lehetne fogni a Vulkan API szóban forgó újításával, ami végeredményben gyorsabb feldolgozáshoz vezethet.

Természetesen a Khronos Group a szükséges fejlesztőeszközöket is a sugárkövetést használó effektek debugolására, többek között a népszerű RenderDoc új verziója már bevethető.

A Vulkan API sugárkövetésre vonatkozó kiterjesztései a 1.2.162-es verzió részei. Ennek támogatását a gyártók már bejelentették, így az elkövetkező hetekben jöhetnek a kompatibilis grafikus meghajtók.

Azóta történt

Előzmények

Hirdetés