Vulkan agora oferece suporte para rastreamento de raios. Khronos publicou as especificações finais do Vulkan Ray Tracing, a estrutura de desenvolvimento que permite a aceleração das funções de ray tracing neste padrão de código aberto para desenvolvimento de videogames e aplicativos 3D.
O rastreamento de raios é uma técnica de representação que simula de forma realista como os raios de luz se cruzam e interagem com a geometria de cenas, materiais e fontes de luz para gerar imagens fotorrealísticas. É amplamente utilizado para renderizar filmes e outras produções de vídeo, também é usado em videogames e está começando a ser usado em outros tipos de aplicações.
Até agora, esse tipo de função de aceleração de raio estava limitado a gráficos NVIDIA RTX dedicados e bibliotecas DirectX 12 Ultimate. A chegada do Vulkan Ray Tracing pode abrir seu uso para outros tipos de hardware, por qualquer desenvolvedor e para qualquer software que faça uso de imagens 3D.
Deve ser lembrado que Vulkan é um conjunto de bibliotecas de código aberto que fornecem acesso de baixo nível, permitindo aos programadores maximizar o desempenho do hardware. Uma API aberta, gratuita e multiplataforma que tem sido continuamente aprimorada nos últimos anos e se tornou a única alternativa ao DirectX da Microsoft.
Khronos publicou as especificações finais do conjunto de especificações que permitirão a aceleração de hardware do traço do raio. Isso é importante porque é o primeiro padrão aberto que permite esse tipo de função.
Vulkan Ray Tracing integra uma estrutura de traçado de raio consistente à API Vulkan, permitindo a fusão flexível de rasterização e aceleração de traçado de raio. O rastreamento de raios Vulkan foi projetado para ser independente de hardware e, portanto, pode ser acelerado tanto na computação de GPU existente quanto nos núcleos de rastreamento de raios dedicados, se disponíveis.
A arquitetura geral dessas bibliotecas será familiar aos usuários de APIs de rastreamento de raio existentes, permitindo a portabilidade direta do conteúdo de rastreamento de raio existente, mas esta estrutura também apresenta uma nova funcionalidade e flexibilidade na implementação.
Vulkan Ray Tracing consiste em uma série de extensões Vulkan, SPIR-V e GLSL, algumas das quais são opcionais. A extensão primária VK_KHR_ray_tracing fornece suporte para a construção e gerenciamento de estruturas de aceleração, estágios de traçado de raio e tubos de sombreamento e consulta intrínseca para todos os estágios de sombreamento.
Outra extensão importante é VK_KHR_pipeline_library, fornecendo um conjunto de sombreadores que podem ser eficientemente vinculados a tubos de rastreamento de raio, enquanto VK_KHR_deferred_host_operations permite operações intensivas de controlador, incluindo compilação de ray tracing ou construção de estrutura de aceleração baseada em CPU, a serem baixados para os grupos de threads gerenciados pelo inscrição.
Todas essas funções já estão definidas na versão final das especificações, embora seu processo de implementação não seja automático e deva ser definido por cada desenvolvedor para cada jogo ou aplicativo. Vulkan pode tirar proveito de uma ampla variedade de hardware. Teoricamente, qualquer GPU poderia executar o Vulkan RT usando os núcleos de “computação de GPU” existentes, embora o desempenho provavelmente não seja o máximo possível.
A grande novidade é que Vulkan se consolida como uma ótima alternativa ao monopólio da Microsoft com o DirectX e em todos os tipos de funções, inclusive o ray tracing que se tornou uma das técnicas de representação de referência. Khronos tem um grande número de fabricantes que os suportam (AMD, Intel, NVIDIA, Qualcomm, Imagination, ARM …) e fornecedores de motores gráficos como iDTech, Unreal, Unity, Frostbite ou CryEngine. Não será difícil ver Vulkan Ray Tracing em grandes jogos em breve.