NVIDIA recently published Ray Tracing Gems, a deep-dive into best practices for real-time ray tracing. The book was made free-to-download, to help all developers embrace the bleeding edge of rendering technology. Ray Tracing Essentials is a seven-part video series hosted by the editor of Ray Tracing Gems, NVIDIA’s Eric Haines. The aim of this program is to make developers aware of various terms and concepts used in the field and with Vulkan, while also inspiring them with dramatic and beautiful uses of the technology. This post is about the fourth video in this series, the Ray Tracing Pipeline.
Vulkan Working Group member James Jones, Principal Software Engineer at NVIDIA, has written a Khronos Blog on using Vulkan Timeline Semaphores in Vulkan 1.2. The new timeline semaphore synchronization API shipping as VK_KHR_timeline_semaphore, and a core feature of Vulkan 1.2, defines a primitive containing a superset of both the original VkSemaphore and VkFence primitives, while simultaneously eliminating many of the most painful limitations of the previous APIs. Learn how this new feature in Vulkan 1.2 works with code examples.
The aim of this guide from Codeplay Software is to summarize and analyze the different techniques for deciding what work group size to use for optimal performance, and explain what needs to be considered when choosing an ideal work group size value. The techniques covered in the guide are a summary of the most common ones used across the GPGPU industry, not just for SYCL.
This is a part 2 in a series exploring Granite‘s Vulkan backend. See part 1 for an introduction. Part 2 dives into code, and starts with the basics. The focus will be to discuss object lifetimes and how Granite deals with the Vulkan rule that you cannot delete objects which are in use by the GPU.
The focus of this NVIDIA tutorial and the provided code is to showcase a basic integration of ray tracing within an existing Vulkan sample, using the VK_NV_ray_tracing extension. Note that for educational purposes all the code is contained in a very small set of files. A real integration would require additional levels of abstraction.
CodeProject has started a series on using Vulkan with Kotlin Native. Part I of the project covers the initial setup, while Part II continues the series with creating native windows for Linux and Windows.
If you’re coding 3D visualizations with Three.js, sooner or later you’ll want to move beyond using the library’s basic native shapes to using complex custom 3D shapes wrapped in UV mapped material. Since Three.js dropped support of its Blender exporter plugin in favor of relying on its glTF loader, exporting via the popular and versatile glTF file format is now the way to go for bringing Blender objects into your Three.js projects. This tutorial will walk through each step from creating a Three.js-compatible UV-wrapped 3D object in Blender to loading the object into a Three.js scene.
This mini-tutorial presents a simple use-case the new VK_EXT_conditional_rendering extension. With the new VK_EXT_conditional_rendering extension, Vulkan gains the possibility to execute certain rendering and dispatch commands conditionally, based on values stored in a dedicated buffer. So instead of having to rebuild command buffers if the visibility of objects change it’s now to possible to just change a single buffer value and the to control if the rendering commands for that object are executed without the need to touch any command buffers.
Intel has introduced the next part of their Vulkan API-related series of articles. In the Introduction to Vulkan* tutorial, they taught the most important basics. This part of the tutorial will show you how to use your current knowledge to display more complicated scenes.
The 52nd tutorial from ogldev.org on rendering a triangle in Vulkan has been published. In the previous tutorial we learned how to clear the window and were introduced to a couple of Vulkan entities that are key parts of that operation - the swap chain and the command buffer. This will require the introduction of four new Vulkan entities - the image view, render pass, framebuffer and the pipeline.
Magic Leap released a handful of tutorials and assets files that will help developers get a head-start in creating mixed reality content on Magic Leap One. Magic Leap said that Unity and Unreal already offer optimizations for Magic Leap hardware. The headset has full support for OpenGL 4.5 and OpenGL ES 3.1, but Magic Leap recommends building applications with the Vulkan API for the best performance.
The curriculum for the 2018 OpenVX Workshop at the Embedded Vision Summit in May has been finalized. The Khronos Group will be presenting a day-long hands-on workshop all about OpenVX cross-platform neural network acceleration API for embedded vision applications. Khronos has developed a new curriculum making this a do-not-miss tutorial with new information on computer vision algorithms for feature tracking and neural networks mapped to the graph API. The tutorials will be presented by speakers from Khronos member companies AMD, Axis Communications, Cadence and Codeplay. There will be hands-on practice sessions with the folks who created the OpenVX API to give participants a chance to solve real computer vision problems. Discussions will also include the OpenVX roadmap and what’s to come. Registration is now open but space is limited, so be sure not to wait too long.
A new GPUOpen has posted a new blog tutorial on reducing Vulkan API call overhead. This article looks at costs associated with complex applications that may end up calling Vulkan functions tens or hundreds of thousands of times per frame, and ways to reduce these calls. The technical read is from author Arseny Kapoulkine, who has worked on game technology for the past decade.