stride3d / stride

Stride Game Engine (formerly Xenko)
https://stride3d.net
MIT License
6.42k stars 931 forks source link

GPU Raytracing pipeline #125

Open tebjan opened 6 years ago

tebjan commented 6 years ago

Most of you might have seen the recent Nvidia demo of the new RTX platform. As an open source engine we could be one of the first engines to support the new hardware features. Apparently it will be available on three APIs, Nvidia Optix, DirectX 12 and Vulkan. More info: https://developer.nvidia.com/rtx

RTX Demo

tebjan commented 5 years ago

first developer readings are up. might give an idea how much work it would be to support RTX cards with xenko: https://developer.nvidia.com/books/raytracing/raytracing_gems_preview

thargy commented 3 years ago

Note, both Vulkan RT and Direct X RT are now RTM. NVidia has provided an awesome set of tutorials at https://github.com/nvpro-samples/build_all, that walk you through RT pipelines in Vulkan. There's a similar set of tutorials for DirectX 12 at https://github.com/microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12Raytracing.

From working through the samples, it's clear that both APIs have a lot in common, and so it should be possible to support both. Further, it is possible to RT existing scenes either entirely, or to implement improved GI and ambient occlusion.

Nolram12345 commented 1 year ago

I'd be curious if there have been any further investigations relating to raytracing technologies in regards to Stride? It would seem like a good fit; the engine has supported DX12 and Vulkan as primary targets for a while, and the existing probe lighting system could be adapted amazingly with modern RT tech to provide dynamic illumination without a complete refactor of the user workflow.

Ethereal77 commented 1 year ago

There's a PR in progress right now to change the old SharpDX bindings for the newer (and more importantly, mantained) Silk.NET bindings. When that PR is completed and merged, there would be no blockers to explore the use of more modern technologies (RT, Mesh shaders, etc) that are currently not supported.

For the Vulkan part, obviously that is not blocked by the DX bindings, but I think we need some people experienced with Vulkan and low-level rendering that can help in the same sense.