SpecialX 188a8aea2f feat(d3d12): 实现渲染目标纹理和深度缓冲区
核心变更:
- 实现 d3d12_render_texture 类,支持多 Mip 级别 RTV
- 实现 d3d12_depth_buffer 类,支持 DSV 和 SRV 双视图
- 为所有纹理类添加析构函数,确保资源自动释放
- 深度缓冲区格式转换处理(D32_FLOAT -> R32_TYPELESS)

文档完善:
- 新增变更记录文档
- 更新 D3D12 学习 Wiki,添加渲染目标纹理和深度缓冲区章节
2026-04-01 17:01:18 +08:00
2026-03-26 03:23:57 +00:00

DX12DX12 基础框架)

DX12 是一个面向 Windows 平台的 C++17 引擎学习工程,采用 Engine 静态库 + EngineTest 可执行程序 的结构,用于搭建和演进 DirectX 12 图形程序的基础工程能力。


1. 项目目标

  • 提供清晰的引擎分层结构,便于学习与迭代
  • 用最小可运行框架承载窗口、组件、内容与测试系统
  • 为后续 DX12 功能扩展提供稳定入口

2. 目录与工程结构

  • FeatureExtractDemo.slnVisual 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.cppRenderItem.cppShaderComponents.*:测试样例逻辑
  • Test*.hTest*.hlsl:测试配置与着色器样例

ContentTools

  • 几何生成、模型导入相关工具模块

4. 构建关系

  • Engine 为静态库项目(ConfigurationType = StaticLibrary
  • EngineTest 依赖 Engine 并链接 engine.lib
  • 主要配置:Debug|x64Release|x64DebugEditor|x64ReleaseEditor|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 学习和工程化演进的基础骨架,适合按功能模块逐步扩展。

Description
No description provided
Readme 8 MiB
Languages
C++ 97.7%
HLSL 2%
C 0.3%