基于 Rust + Vulkan 1.3+ 的实时渲染引擎,覆盖从 RHI、RenderGraph 到光线追踪应用层的完整链路。
- 光线追踪:支持 Cornell Box 与 Sponza 等典型场景
- RenderGraph:声明式资源依赖与自动同步管理
- Slang 工具链:自动编译 shader 并生成 Rust 绑定
- Bindless 渲染:统一资源访问模型,降低绑定切换开销
- ImGui 集成:便于实时调试和参数调整
- C++ FFI 资产加载:通过 Assimp 支持 FBX / glTF / OBJ 等格式
- Rust 1.75+
- Vulkan SDK 1.3+
- CMake 3.20+
- Visual Studio 2019+(Windows)
# 1) 拉取资源与工具
cargo run --bin fetch_res
# 2) 构建 C++ 模块
cargo run --bin cxx-build
# 3) 编译 Shader(运行渲染程序前必须执行)
cargo run --bin shader-build
# 4) 构建 Workspace
cargo build --allcargo run --bin triangle
cargo run --bin rt-cornell
cargo run --bin rt-sponza
cargo run --bin shader-toy- 平台入口:
truvis-winit-app通过WinitApp::run_plugin(...)启动渲染线程 - 帧编排:
truvis-app::FrameRuntime负责 phase 调度(input -> build_ui -> update -> prepare -> render -> present) - 应用扩展:demo 通过
AppPlugin接入;旧OuterApp仅保留兼容路径(deprecated) - 渲染后端:
truvis-renderer::Renderer聚焦 backend 执行与 GPU 数据上传 - swapchain 重建:统一由 runtime 单入口处理,覆盖窗口尺寸变化与 backend
need_resize(out-of-date/suboptimal)
- 架构总览:
ARCHITECTURE.md - AI 协作规则:
AGENTS.md - 模块说明:各关键目录下
README.md(如engine/、engine/crates/、engine/shader/)
使用 HashGrid 缓存 diffuse 表面的光照信息,提升全局光照阶段的复用效率。
支持剖切体与填充面的效果渲染。
在光追路径中按材质类型重排执行,提高线程一致性与缓存命中率。


