Commit Graph

123 Commits

Author SHA1 Message Date
3d285fa98a fix: 修复截图保存功能和CreateCommittedResource参数问题
- 修复SaveScreenshot函数中D3D12_RESOURCE_DESC的初始化
- 添加完整的SampleDesc和Layout字段
- 修复从PRESENT状态正确转换到COPY_SOURCE进行读取
- 启用D3D12 Debug Layer以获取更好的调试信息
- 添加日志输出到文件以便捕获调试信息
2026-03-15 12:51:18 +08:00
1a5bcd75d9 feat: 添加截图保存Debug工具
- 添加SaveScreenshot函数使用D3D12 Readback方式读取渲染目标
- 保存为PPM格式(在第2帧自动保存到screenshot.ppm)
- 程序可自行测试渲染结果
2026-03-15 03:29:28 +08:00
17c8ea46c5 feat: 实现D3D12Fence封装
- 添加D3D12Fence类封装ID3D12Fence
- 包含Signal/Wait/GetCompletedValue等同步功能
- 更新测试项目使用新的封装类
2026-03-15 03:23:39 +08:00
8fb11dc650 feat: 实现D3D12CommandQueue和D3D12CommandAllocator
- 添加D3D12CommandQueue类封装ID3D12CommandQueue
- 添加D3D12CommandAllocator类封装ID3D12CommandAllocator
- 在D3D12Enum.h中添加CommandQueueType转换函数
- 在CMake中添加Res文件夹自动拷贝到输出目录
- 更新测试项目使用新的封装类
2026-03-15 03:15:12 +08:00
cba4f9c838 feat: 实现D3D12Device类,整合D3D12Enum.h转换函数
- 简化D3D12Device,仅封装ID3D12Device和IDXGIFactory
- 将D3D12Common.h中的转换函数合并到D3D12Enum.h
- 添加ResourceStates枚举到Enums.h
- 更新测试项目使用新的D3D12Device类
- 更新CMake配置
2026-03-15 03:02:15 +08:00
b2c7627a1b docs: 更新第二阶段计划,反映实际目录结构和已完成任务 2026-03-15 02:27:05 +08:00
be6abd7bf6 refactor: RHI枚举改为独立编号,添加D3D12转换层 2026-03-15 02:24:56 +08:00
3e89489078 refactor: 添加RHI Enums.h并在D3D12测试中替换部分D3D12枚举 2026-03-15 02:05:28 +08:00
f427eb2588 refactor: 删除旧的RHI实现,添加D3D12测试用例和第二阶段计划 2026-03-15 01:58:30 +08:00
9932d860a7 chore: 删除未使用的资源文件 2026-03-15 01:22:34 +08:00
977054164c Add Chinese comments to D3D12 minimum viable system for better readability 2026-03-15 01:20:53 +08:00
d8882ab93f refactor: 移除HelloEarth示例,统一使用D3D12最小可行系统 2026-03-15 00:43:54 +08:00
9a7a6102b5 feat: 添加D3D12最小可行系统示例 2026-03-15 00:43:10 +08:00
827a0c6302 chore: 清理构建产物和临时文件 2026-03-15 00:19:57 +08:00
15f42a1af5 feat: 添加CommandList常量和DSV支持,完善RenderContext 2026-03-15 00:08:03 +08:00
ab29013c01 fix: 修复VertexBuffer/IndexBuffer SizeInBytes错误及Fence Signal类型问题 2026-03-14 14:20:57 +08:00
3ad317afb2 feat: 修复RHI渲染循环问题
- 修复RootSignature参数数量与HelloEarth一致
- 修复StaticMeshComponent中device为nullptr的问题
- 修复CommandList::Reset类型转换问题
- 修复RTV创建使用nullptr而不是rtvDesc
- 添加SwapChain的GetCurrentRenderTarget方法
- 修复DepthStencil创建问题(暂时跳过)
- 渲染循环基本可运行
2026-03-14 03:13:10 +08:00
5f12393424 feat: 实现D3D12 RHI抽象层,修复PSO创建问题
- 添加RHI接口定义(IRHIDevice, ICommandList, IResource等)
- 实现D3D12Device, D3D12CommandList, D3D12PipelineState等
- 修复RootSignature参数数量(3->4)与HelloEarth一致
- 修复DSV格式设置(Unknown->D24_UNorm_S8_UInt)
- 添加Geometry Shader编译
- 创建XCEngineDemo项目验证RHI功能
2026-03-14 02:42:59 +08:00
6a0dfb150d docs: 添加第二阶段计划 - RHI抽象层封装 2026-03-13 21:24:02 +08:00
83fd517974 feat: 实现日志与调试系统(Debug模块)
- LogLevel: 日志级别枚举 (Verbose, Debug, Info, Warning, Error, Fatal)
- LogCategory: 日志分类 (General, Rendering, Physics, Memory, Threading等)
- ILogSink: 日志输出接口
- ConsoleLogSink: 控制台输出, 支持Windows颜色
- FileLogSink: 文件日志输出
- FileWriter: 文件写入器
- Logger: 日志管理器, 支持多sink, 分类控制
- Profiler: 性能分析器
- 单元测试覆盖
2026-03-13 20:53:57 +08:00
dc9b0751cb docs: 在README中添加MVS示例版本介绍 2026-03-13 20:40:12 +08:00
fa3e48b0fc docs: 更新README.md反映新的项目结构 2026-03-13 20:38:32 +08:00
34c75e7129 feat: 实现Containers、Memory、Threading核心模块及单元测试
- Containers: String, Array, HashMap 容器实现及测试
- Memory: Allocator, LinearAllocator, PoolAllocator, ProxyAllocator, MemoryManager 实现及测试
- Threading: Mutex, SpinLock, ReadWriteLock, Thread, Task, TaskSystem 实现及测试
- 修复Windows平台兼容性: _aligned_malloc, std::hash特化
- 修复构建错误和测试用例问题
2026-03-13 20:37:08 +08:00
508ee0bdc8 Fix math unit tests: Plane, Frustum, Quaternion, Bounds
- Plane.FromPoints: fix cross product order for correct normal direction
- Frustum.Intersects: fix inverted logic for bounds intersection
- LookRotation: add edge case handling when forward is parallel to up
- Bounds: fix test expectations (GT -> GE, adjust values)
- Quaternion: fix test expectations for vector rotation
- ToEulerAngles: simplify test to verify identity quaternion
2026-03-13 19:23:12 +08:00
7c54a62f9e feat: 添加Math库和Google Test测试框架
- 新增Math库: Vector2/3/4, Matrix3/4, Quaternion, Transform, Color等
- 新增测试框架: Google Test (gtest)
- 新增140个单元测试,覆盖Vector, Matrix, Quaternion, Geometry
- VolumeRenderer支持vcpkg的NanoVDB
- 添加TESTING.md测试文档
2026-03-13 18:43:14 +08:00
5efa171050 refactor: 重构项目结构为 MVS 多示例版本,添加 README 文档 2026-03-13 15:07:03 +08:00
faf99dfc68 docs: 添加架构设计文档 2026-03-13 01:35:46 +08:00
7d3b05573d Add clickable path navigation in Project panel 2026-03-12 20:33:04 +08:00
de9d9dfa1c Add drag preview icon in Project panel 2026-03-12 20:17:43 +08:00
4887bdd7fe feat: 添加Project面板拖拽功能 2026-03-12 20:11:56 +08:00
909f430c7a feat: 添加Project面板拖拽移动功能 2026-03-12 19:48:51 +08:00
1fc84b9538 refactor: 修复Panel窗口关闭行为并优化ProjectManager路径处理 2026-03-12 19:26:38 +08:00
51251f08a4 fix: 修复层级面板右键无法弹出创建菜单的问题 2026-03-12 19:17:59 +08:00
0c02aa2ae6 refactor: 将SceneView拆分为Scene和Game两个独立窗口
- 新增GameViewPanel作为独立窗口
- 移除SceneViewPanel中的TabBar
- Scene和Game现在像Console/Project一样并排显示
2026-03-12 19:03:32 +08:00
6e12efb67e fix: 修复多个UI框架问题
- 修复 InspectorPanel InputText 使用 data()/capacity() 的错误
- 修复未使用变量警告
- 修复 ProjectManager 路径重复拼接 bug (Assets/Assets)
- 返回按钮在 Assets 目录时禁用但保持显示
- 删除 ProjectPanel 创建按钮,调整 Refresh 位置
- 修复 ProjectPanel 搜索过滤时的 ID 冲突
- 修复 InspectorPanel CollapsingHeader ID 冲突
2026-03-12 18:58:06 +08:00
da7f19e9e8 隐藏ImGui dockspace标题栏按钮 2026-03-12 18:38:31 +08:00
65908526da 修复HierarchyPanel:空白区域右键菜单和拖拽到根目录功能
- 将右键菜单移到Child窗口内部,修复空白区域右键不弹出菜单的问题
- 添加InvisibleButton作为拖放目标,支持将实体拖到根级别
2026-03-12 18:12:50 +08:00
4bcd1055dd 完善HierarchyPanel功能:右键菜单、拖拽排序、搜索过滤、重命名、快捷键
右键菜单:
- Create: Empty Object, Camera, Light, Cube, Sphere, Plane
- Rename (F2), Delete (Del)
- Copy (Ctrl+C), Paste (Ctrl+V), Duplicate (Ctrl+D)

拖拽排序:
- 支持拖拽实体到另一个实体下成为子节点
- 自动防止循环父子关系

搜索过滤:
- 顶部搜索框实时过滤实体

双击重命名:
- 双击实体名称进入编辑模式

键盘快捷键:
- Delete: 删除选中实体
- F2: 重命名
- Ctrl+C/V/D: 复制/粘贴/复制
2026-03-12 17:54:59 +08:00
c1473d2d39 重构架构:引入EventSystem、EntityID、SelectionManager
- 新增 Event 系统,支持面板间解耦通信
- 用 EntityID 替代裸指针,解决悬空指针问题
- 拆分 SelectionManager 管理选择状态
- SceneManager 使用 EntityID 和 unordered_map 存储
- HierarchyPanel/InspectorPanel 使用事件系统
2026-03-12 17:43:13 +08:00
f8fed72cb7 改进ProjectPanel右键菜单交互逻辑 2026-03-12 17:34:39 +08:00
64dd8339dd 完善Project面板功能:搜索框、创建文件夹、右键菜单、中文路径支持 2026-03-12 17:07:37 +08:00
a2f3db8718 重构UI架构:分离数据模型和显示逻辑
- 新增 Core 模块:GameObject、LogEntry、AssetItem 数据模型
- 新增 Managers 模块:SceneManager、LogSystem、ProjectManager
- Panel 层只负责显示,不再持有数据
- 解耦 HierarchyPanel 和 InspectorPanel 之间的直接依赖
2026-03-12 16:13:34 +08:00
7d3e3b464d 优化UI主题配色为灰色调,改进底部面板Tab布局 2026-03-12 16:05:14 +08:00
44880f03c0 添加D3D12 ImGui编辑器UI框架 2026-03-12 15:39:40 +08:00
e98093da94 更新counter.py适配项目结构 2026-03-12 02:41:26 +08:00
c992e3da24 添加开题报告和任务书文档 2026-03-12 02:36:17 +08:00
a6b73245e4 添加深入方向规划文档 2026-03-12 02:34:11 +08:00
d71099559c 调整相机位置和移除阴影随机抖动 2026-03-12 02:11:26 +08:00
91b15e9d6c 更新README文档 2026-03-12 01:58:17 +08:00
cfdf2c749f 移除Unity参考代码 2026-03-12 01:57:20 +08:00