https://github.com/philcn/DXRNvTutorial
Implementing Nvidia DXR tutorial with Microsoft DXR Fallback Layer
https://github.com/philcn/DXRNvTutorial
dxr
Last synced: 18 days ago
JSON representation
Implementing Nvidia DXR tutorial with Microsoft DXR Fallback Layer
- Host: GitHub
- URL: https://github.com/philcn/DXRNvTutorial
- Owner: philcn
- Created: 2018-08-27T07:52:41.000Z (over 6 years ago)
- Default Branch: master
- Last Pushed: 2018-10-22T07:34:01.000Z (over 6 years ago)
- Last Synced: 2024-11-14T23:33:12.409Z (6 months ago)
- Topics: dxr
- Language: C++
- Homepage:
- Size: 177 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
- AwesomeCppGameDev - DXRNvTutorial
README
# DXRNvTutorial
Implemented the Nvidia DXR tutorial with Microsoft DXR Fallback Layer, tested on Nvidia GTX 980Ti (AMD won't work). Extended nv_helpers_dx12 to work with both D3D12 prototype device and fallback device.
This project isn't updated for Windows 10 RS5 API so it won't continue to work.
## Fallback Layer workaround
Due to the limitations of Fallback Layer, we have to use a slightly different raytracing pipeline and resource binding layout than the tutorial.
* Bind top level acceleration structure and output UAV with global root signature rather than local root signature of a RayGen shader. That's because fallback layer uses a special `SetTopLevelAccelerationStructure()` routine to bind the acceleration structure.
* Need to bind the descriptor heap when 1) building acceleration structures and 2) calling DispatchRays(). That's for the wrapped pointer to work (see Microsoft Fallback Layer documentation).
* Do not use structured buffers in ray tracing shaders, Fallback Layer currently don't support them. Use raw buffers instead.## Reference
https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Libraries/D3D12RaytracingFallback
https://github.com/Microsoft/DirectX-Graphics-Samples/tree/master/Samples/Desktop/D3D12Raytracing
https://developer.nvidia.com/rtx/raytracing/dxr/DX12-Raytracing-tutorial-Part-1
https://developer.nvidia.com/rtx/raytracing/dxr/DX12-Raytracing-tutorial-Part-2
https://github.com/NVIDIAGameWorks/DxrTutorials
http://intro-to-dxr.cwyman.org/