# FeatureExtractDemo(DX12 基础框架) 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 2022(MSVC 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 学习和工程化演进的基础骨架,适合按功能模块逐步扩展。