feat: initial DX12 foundation framework

This commit is contained in:
SpecialX
2026-03-19 18:27:49 +08:00
commit 60f73b525d
70 changed files with 8993 additions and 0 deletions

110
README.md Normal file
View File

@@ -0,0 +1,110 @@
# FeatureExtractDemoDX12 基础框架)
FeatureExtractDemo 是一个面向 Windows 平台的 C++17 引擎学习工程,采用 **Engine 静态库 + EngineTest 可执行程序** 的结构,用于搭建和演进 DirectX 12 图形程序的基础工程能力。
---
## 1. 项目目标
- 提供清晰的引擎分层结构,便于学习与迭代
- 用最小可运行框架承载窗口、组件、内容与测试系统
- 为后续 DX12 功能扩展提供稳定入口
---
## 2. 目录与工程结构
- `FeatureExtractDemo.sln`Visual Studio 解决方案
- `Engine/`:核心引擎静态库工程
- `EngineTest/`:测试程序与主循环
- `ContentTools/`:内容工具工程(模型/几何处理相关)
- `packages/dxCompiler/`DXC 依赖文件
- `docs/`:架构分析文档
---
## 3. 模块说明
### Engine
- `Common/`:公共类型、基础定义与通用头
- `Components/`Entity / Transform / Script 组件系统
- `Content/`:内容加载与运行时转换
- `Platform/`Win32 窗口与平台层封装
- `Graphics/`:图形接口入口
- `Utilities/`数学、容器、IO 等工具模块
- `Core/`:引擎核心流程代码
### EngineTest
- `Main.cpp`:应用入口与 Win32 消息循环
- `Test.h`:测试基类与基础计时工具
- `Lights.cpp``RenderItem.cpp``ShaderComponents.*`:测试样例逻辑
- `Test*.h``Test*.hlsl`:测试配置与着色器样例
### ContentTools
- 几何生成、模型导入相关工具模块
---
## 4. 构建关系
- `Engine` 为静态库项目(`ConfigurationType = StaticLibrary`
- `EngineTest` 依赖 `Engine` 并链接 `engine.lib`
- 主要配置:`Debug|x64``Release|x64``DebugEditor|x64``ReleaseEditor|x64`
---
## 5. 开发环境
- Windows 10/11 x64
- Visual Studio 2022MSVC v143
- C++17
- Windows SDK 10.x
---
## 6. 快速开始
1. 使用 Visual Studio 2022 打开 `FeatureExtractDemo.sln`
2. 选择 `x64 + Debug` 配置
3. 构建解决方案
4.`EngineTest` 设为启动项目并运行
运行时说明:
- `EngineTest` 的预构建事件会将 `packages/dxCompiler/dxcompiler.dll` 复制到输出目录
- 程序启动时会自动切换工作目录到可执行文件路径
---
## 7. 测试开关
`EngineTest/Test.h` 中可通过宏切换测试入口:
- `TEST_ENTITY_COMPONENTS`
- `TEST_WINDOW_COMPONENTS`
- `TEST_RENDERER`
---
## 8. 代码约定
- 平台相关实现集中在 `Platform/`
- 业务逻辑尽量通过组件与 API 层解耦
- 图形接口通过 `Graphics` 入口统一抽象
- 建议按模块拆分提交,便于回溯与调试
---
## 9. 后续扩展建议
1. 完善 `Graphics` 接口与资源生命周期管理
2. 逐步补齐渲染通道、资源系统与 shader 管线
3. 增加渲染诊断与调试辅助能力
4. 细化测试场景并整理测试入口
---
这个仓库定位为 DX12 学习和工程化演进的基础骨架,适合按功能模块逐步扩展。