This sample demonstrates loading and rendering glTF scenes using Vulkan. It utilizes tinyGLTF for scene loading, nvh::gltf::Scene
for internal representation, and nvvkhl::SceneVk
for GPU resource creation.
- Scene Loading: tinyGLTF
- Internal Representation:
nvh::gltf::Scene
- GPU Resource Management:
nvvkhl::SceneVk
- Ray Tracing Acceleration Structures:
nvvkhl::SceneRtx
- Single compute shader with ray query
- Shader Object and Push Descriptors implementation
- Optimized for scenes with moderate element count
- Update frame-specific buffers (e.g., camera data)
- Push descriptors: TLAS, output image, scene data
- Set push constants
- Dispatch compute shader
- Apply memory barrier for post-processing
Pass glTF scene path as an executable argument for custom scene loading.
Push Descriptors may generate warnings for scenes with numerous textures. Refer to pushDescriptorSet()
implementation for details.