Vulkan offre ora il supporto per il ray tracing. Khronos ha pubblicato le specifiche finali di Vulkan Ray Tracing, il framework di sviluppo che consente l’accelerazione delle funzioni di ray tracing in questo standard open source per lo sviluppo di videogiochi e applicazioni 3D.
Il ray tracing è una tecnica di rappresentazione che simula realisticamente il modo in cui i raggi di luce si intersecano e interagiscono con la geometria di scene, materiali e sorgenti luminose per generare immagini fotorealistiche. È ampiamente utilizzato per il rendering di film e altre produzioni video, inoltre viene utilizzato nei videogiochi e sta iniziando ad essere utilizzato anche in altri tipi di applicazioni.
Fino ad ora, questo tipo di funzione di accelerazione dei raggi era limitato alla grafica NVIDIA RTX dedicata e alle librerie DirectX 12 Ultimate. L’arrivo di Vulkan Ray Tracing può aprire il suo utilizzo ad altri tipi di hardware, da qualsiasi sviluppatore e per qualsiasi software che faccia uso di immagini 3D.
Va ricordato che Vulkan è un insieme di librerie open source che forniscono un accesso di basso livello consentendo ai programmatori di massimizzare le prestazioni hardware. Un’API aperta, gratuita e multipiattaforma che è stata continuamente migliorata negli ultimi anni ed è diventata l’unica alternativa a DirectX di Microsoft.
Khronos ha pubblicato le specifiche finali della serie di specifiche che consentiranno l’accelerazione hardware della traccia del fulmine. Questo è importante perché è il primo standard aperto che consente questo tipo di funzione.
Vulkan Ray Tracing integra un framework di ray tracing coerente nell’API Vulkan, consentendo l’unione flessibile di rasterizzazione e accelerazione di ray tracing. Il ray tracing Vulkan è progettato per essere indipendente dall’hardware e quindi può essere accelerato sia su GPU computing esistenti che su core di ray tracing dedicati, se disponibili.
L’architettura complessiva di queste librerie risulterà familiare agli utenti delle API di ray tracing esistenti, consentendo la portabilità diretta del contenuto di ray tracing esistente, ma questo framework introduce anche nuove funzionalità e flessibilità nell’implementazione.
Vulkan Ray Tracing è costituito da una serie di estensioni Vulkan, SPIR-V e GLSL, alcune delle quali sono opzionali. L’estensione primaria VK_KHR_ray_tracing fornisce supporto per la costruzione e la gestione di strutture di accelerazione, stadi di ray tracing e tubi di ombreggiatura e query intrinseche per tutte le fasi di shader.
Un’altra importante estensione è VK_KHR_pipeline_library, che fornisce un set di shader che possono essere collegati in modo efficiente in pipe di ray tracing, mentre VK_KHR_deferred_host_operations consente operazioni intensive del controller, inclusa la compilazione del ray tracing o la costruzione di strutture di accelerazione basata sulla CPU, da scaricare nei gruppi di thread gestiti dal applicazione.
Tutte queste funzioni sono già definite nella versione finale delle specifiche, sebbene il loro processo di implementazione non sia automatico e debba essere definito da ogni sviluppatore per ogni gioco o applicazione. Vulkan può sfruttare un’ampia varietà di hardware. Teoricamente, qualsiasi GPU potrebbe eseguire Vulkan RT utilizzando i core “GPU computing” esistenti, sebbene le prestazioni probabilmente non saranno le massime possibili.
La grande novità è che Vulkan si consolida come un’ottima alternativa al monopolio di Microsoft con DirectX e in tutti i tipi di funzioni, compreso il ray tracing che è diventato una delle tecniche di rappresentazione di riferimento. Khronos ha un gran numero di produttori che li supportano (AMD, Intel, NVIDIA, Qualcomm, Imagination, ARM…) e fornitori di motori grafici come iDTech, Unreal, Unity, Frostbite o CryEngine. Non sarà difficile vedere presto Vulkan Ray Tracing in grandi giochi.