Raytracing is coming to GeeXLab. After a bunch of hours of coding and debugging (thanks to the latest Vulkan SDK!), I finally managed to see my first ray traced RGB triangle! The Hello World of Vulkan raytracing, in a word. The raytracing code is based on the latest Vulkan official extensions (VK_KHR_acceleration_structure and VK_KHR_ray_tracing_pipeline).
The post header screenshot shows the ray traced triangle rendered on a GeForce RTX 2070 with GeForce 457.44 driver (the triangle is rendered on a 512×512 image).
The following screenshot shows the same demo rendered on a Radeon RX 6800 XT (XMas Edition!) with latest Adrenalin 20.12.2:
As you can see, there is still a lot work to do before releasing GeeXLab 0.40…
Update (2020.12.31)
For this last day of the covid-19 year, here are some new screenshots. In a word, basic ray tracing iis now operational in GeeXLab: you can create raygen, miss and closest hit shaders and trace rays. It’s amazing to see how it’s simple to add shadows in a ray traced scene!
In this scene, we have a ground plane, two animated donuts and shadows. The ray traced scene is rendered in a 512×512 texture.
Vulkan ray tracing on a GeForce RTX 2070 + R460.89
On the Radeon RX 6800 XT, it’s another story. Currently the texture resolution is limited to 128×128 pixels otherwise there are some glitches. Here is a simple example: a donut and a triangle are rendered in red color on a green background.
– BAD: Radeon RX 6800 XT – 512×512 render texture:
– GOOD: Radeon RX 6800 XT – 128×128 render texture:
And shadows can not be rendered otherwise there is a serious crash + reboot!
Vulkan ray tracing on a Radeon RX 6800 XT + Adrenalin 20.12.2
No error is reported by the Vulkan SDK. The crash on the Radeon RX 6800 XT is likely caused by the launch of a second ray (needed for the shadow). More tests (and new driver?? are needed…
Update (2021.01.15)
– Raytracing with texturing and shadows (hard shadows). One ray per pixel.
– First tests of raytracing with several rays per pixel.