Crafter.Graphics/examples/VulkanTriangle/README.md

38 lines
1.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# VulkanTriangle
The minimal ray-traced example. Renders a single static triangle through
`vkCmdTraceRaysKHR`. No UI.
## What it shows
- `Device::Initialize()` + `Window` + swapchain bring-up.
- A `DescriptorHeapVulkan` sized for one image + one buffer slot, with
slot ranges allocated via the bump-allocator API
(`AllocateImageSlots`, `AllocateBufferSlots`).
- A `PipelineRTVulkan` built from raygen / miss / closesthit SPIR-V
shaders compiled at build time.
- `Mesh::Build` constructing a BLAS and `RenderingElement3D::BuildTLAS`
the per-frame TLAS.
- Direct descriptor writes via `vkWriteResourceDescriptorsEXT` for the
swapchain views and TLAS device addresses.
- `RTPass{&pipeline}` plugged into `window.passes` — the canonical
way to add ray tracing to a window in this library.
It's the smallest sensible test of the bindless `VK_EXT_descriptor_heap`
+ ray-tracing path.
## Run
```bash
cd examples/VulkanTriangle
crafter-build -r
```
You should see a 1280×720 window with a triangle filling roughly the
centre.
## Notes
`raygen.glsl`'s `traceRayEXT` call is currently commented out — the
example exercises the dispatch and `imageStore` paths only. Uncomment
it to actually trace into the BLAS.