Vulkan ya admite trazado de rayos

bulkan ray tracing

La empresa The Khronos Group acaba de anunciar algo maravilloso y esperado por muchos, la librería Vulkan ya admite trazado de rayos; la API (Application Programming Interfaces) API gráfica Vulkan tendrá soporte de forma oficial para nuevas extensiones.

Hay que recordar de que Vulkan ya tenía soporte para Ray Tracing de NVIDIA, que disponía de sus propias extensiones trabajando ya en esta potente API para poder usarse en videojuegos y otro tipo de software gráfico.

Vulkan ray tracing 2

Aunque ahora la empresa Nvidia ha colaborado para que el soporte oficial de Vulkan para Ray Tracing esté disponible para todos los proveedores. Dicha tecnología está dando tan buenos resultados a nivel de videojuegos que la compañía roja AMD, también ha trabajado en ella para implementarlo en las nuevas consolas Xbox Series X y Playstation 5, además las nuevas gráficas de AMD Serie 6000 también dispondrán de esta tecnología.

Hablando de todas estas nuevas extensiones de Vulkan recién agregadas “SPIR-V y GLSL” está la que nos interesa y es “VK_KHR_ray_tracing”, esta extensión nos proporcionará un soporte para la construcción y administración de estructuras de aceleración, Stages y pipes de sombreado, etc. Además, los usuarios de Linux no se quedan fuera pues también se han actualizado para recibir estas extensiones.

Vulkan ray tracing 1

Ahora os preguntareis ¿por que han tardado tanto en traerlo? pues bien, el principal motivo es que la empresa Khronos hasta que AMD no confirmó el Ray Tracing en la arquitectura RDNA ” de sus nuevas gráficas 6000, no podían implementar una nueva versión ya que hasta el momento el Ray Tracing estaba solo en las gráficas de nvidia gracias a sus RTcores.

vulkan ray tracing 3

A continuación os dejamos la lista de la librería de extensiones:

  • VK_KHR_acceleration_structure
  • VK_KHR_ray_tracing_pipeline
  • VK_KHR_ray_query
  • VK_KHR_pipeline_library
  • VK_KHR_deferred_host_operations

Las extensiones a SPIR-V  añadidas son:

  • SPV_KHR_ray_tracing
  • SPV_KHR_ray_query

Y en cuanto al GLSL nos encontramos con las siguientes extensiones:

  • GLSL_EXT_ray_tracing
  • GLSL_EXT_ray_query
  • GLSL_EXT_ray_flags_primitive_culling