Skip to content

kyriewxcode/WaveEngine

Repository files navigation

WaveEngine

WaveEngine 是面向 Windows x64 的 C++20 实时渲染引擎与 ImGui 场景编辑器。当前唯一渲染后端是 DirectX 12,项目重点是现代 GPU 管线、静态场景编辑、自动化和性能分析,并以 AI-native 作为未来整个引擎的设计约束。

Important

当前版本可用于渲染研究、静态场景搭建和编辑器工具开发,但还不能独立制作与发布完整游戏。当前 AI-Native 基础改造只迁移已有能力及其架构边界,不新增 Player、Gameplay、物理、音频或打包功能;长期产品方向见产品化路线图

已实现能力

  • 渲染:Shader Model 6.6、bindless、Mesh Shader、RenderGraph、G-Buffer 延迟光照、Shadow、IBL、自动曝光和 Tonemap。
  • Path Tracing:可选 DXR Tier 1.1 路径;不可用时回落到光栅。
  • 资产:导入 .obj.gltf.glb.fbx,后台构建 Meshlet/CLOD 和 WEMesh v3 缓存。
  • 编辑器:Viewport、Scene、Content、Details、Settings、Trace Capture、Console,支持 Gizmo、Undo/Redo 和保存。
  • 自动化:行分隔 JSON-RPC 2.0 MCP 服务,工具通过 rpc.discover 查询。
  • 分析:CPU/GPU Profiler、.wetrace、live listener 和独立 WaveTraceViewer

世界坐标采用左手系:+X 前、+Y 右、+Z 上;欧拉角顺序为 [Pitch, Yaw, Roll]

AI-native 方向

AI-native 不是增加一个 AI 模块。目标是让 Asset、World、Renderer、Gameplay、Build、Trace 等每个领域都具备稳定身份、可演进机器 schema、revisioned query/change feed、明确 effect、自动验证、provenance、安全预算和 headless 行为。

Human Editor / Agent / Script / CI
               → Domain Contracts
               → Deterministic Runtime

Shipping Player → Runtime-only closure

UI、MCP 和未来 headless host 只是同一领域能力的客户端。Query、Document Command、异步 Job 和 VCS/发布类 External Action 具有不同失败边界;修改必须用 change set、validator、artifact provenance、测试、截图或 trace 证明。未来运行时模型只产生受 Gameplay 校验的高层 Intent,不直接控制逐帧状态。

整体设计见 AI-Native Engine Architecture;通用设计输入已作为仓库内参考快照保存;公共契约基础见 A0-01 Verified Spec

系统要求

  • Windows x64
  • Visual Studio 2022、MSVC v143、Windows SDK
  • CMake 4.0.1 或更高版本
  • 支持 DirectX 12 Mesh Shader 的 GPU
  • DXR Tier 1.1 GPU(仅 Path Tracing 需要)
  • Python 3(运行 Spec、MCP 和资产契约测试时需要)

Vulkan 当前只有预留宏,没有可用后端。项目不使用 vcpkg 或 Conan,主要第三方依赖随仓库提供。

构建与运行

git clone https://github.com/kyriewxcode/WaveEngine.git
cd WaveEngine

cmake -S . -B Build -G "Visual Studio 17 2022" -A x64
cmake --build Build --config Debug
& .\Build\Debug\WaveEditor.exe

Release:

cmake --build Build --config Release
& .\Build\Release\WaveEditor.exe

Rebuild.bat 会复用已有 Build/ 重新生成并构建 Debug,不是 clean rebuild。构建后 CMake 会复制 Agility SDK、DXC 等运行时 DLL。

运行生成内容位于 Engine/Save/,日志写入当前工作目录的 WaveEngine.logBuild/Engine/Save/*.wemesh 和日志不应提交。

WaveTraceViewer

# 启动
& .\Build\Debug\WaveTraceViewer.exe

# 打开文件
& .\Build\Debug\WaveTraceViewer.exe .\path\to\capture.wetrace

# 连接 live listener
& .\Build\Debug\WaveTraceViewer.exe --connect 127.0.0.1:18086

live 端口以编辑器 Trace Capture 面板中的配置为准。

验证

无窗口 CPU 契约使用仓库 preset,Debug 与 Release 都只构建 WaveCoreContracts,不会构建或启动 Editor:

cmake --preset vs2022-x64

cmake --build --preset cpu-debug
ctest --preset test-cpu-debug

cmake --build --preset cpu-release
ctest --preset test-cpu-release

测试 preset 只运行带 cpu label 的测试、显示失败输出,并在没有匹配测试时返回失败。CMakeSettings.json 保留给 Visual Studio 兼容使用,自动化以 CMakePresets.json 为准。

.github/workflows/cpu-contracts.yml 在 Windows x64 runner 上复用完全相同的 preset 链路;该 workflow 不构建或启动 Editor。

完整 Debug 验证:

cmake --build Build --config Debug
ctest --test-dir Build -C Debug --output-on-failure

当前 CTest 覆盖:

  • CMake preset 与 CPU target/source/include 边界。
  • Spec 元数据、状态和链接。
  • Core Runtime 坐标、旋转、RenderGraph allocator 和 trace codec。
  • MCP framing、数值边界和恶意资产输入。
  • WEMesh provenance、缓存、坐标转换、winding 和法线。

只验证 SDD 文档:

py -3 Tests/spec_contracts.py .

RenderGraph 或 Pass 修改还需在 Debug 下设置 WAVE_RG_STRICT=1 并运行真实光栅路径。完整验证矩阵见 AGENTS.md

文档与开发

完整职责、事实层级和冲突处理见 文档地图

文档 职责
AGENTS.md 编码代理工作规则和高风险工程契约
AI-Native Engine Architecture 跨所有领域的长期设计不变量与验收维度
产品化路线图 阶段、依赖、Issue 和产品门禁
SDD 流程 / Spec 注册表 Spec 状态、session 协议、验证规则和活跃入口
设计参考快照 外部设计输入与校验值;不作为实现真值

源码与 CMakeLists.txt 是已实现能力的事实来源;路线和 Draft Spec 只描述未来工作。

核心源码位于:

  • Engine/Source/RHI/RenderGraph/Renderer/:GPU 与渲染。
  • Engine/Source/Scene/:场景、资源导入和序列化。
  • Engine/Source/UI/Mcp/:编辑器与自动化。
  • Engine/Source/Trace/Tools/TraceViewer/:性能采集与分析。
  • Tools/Mcp/:会启动并操作编辑器的 MCP smoke、demo 和性能脚本。
  • Tests/:无第三方测试框架依赖的契约测试。

开发采用 Spec-Driven Development:

Draft → Accepted → Implementing → Verified

新功能和架构修改先从 Spec 注册表 查找或创建 Draft;只有用户明确接受后才能开始生产实现。

当前边界

  • 已拆分 WaveRuntimeWaveEditorSupportWaveEditor.exe;没有新增 Player、Game 或发布功能。
  • 没有完整 World/Entity/Component、Gameplay、PIE、Action Input、物理、音频和 Runtime UI。
  • 没有稳定 Asset ID、Cook、Stage 或 Package。
  • glTF alpha、双面、UV1、每纹理 sampler 和正确 sRGB 过滤尚未完整实现。
  • RenderGraph 当前为单 Direct Queue、整资源状态跟踪。
  • 平台范围仅为 Windows x64。

About

AI-native C++20 real-time rendering engine and ImGui editor for Windows, featuring DirectX 12, Mesh Shaders, bindless rendering, RenderGraph, DXR path tracing, MCP automation, and WaveTrace profiling.

Topics

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages