渲染出模型之后,怎样让它变成可编辑、可保存、可运行的场景?这个自研 C++ 游戏引擎项目围绕这一过程展开,在 DirectX 11 与 Win32 的基础上,加入组件架构、材质、动画、脚本、资产管理和编辑器。

用对象和组件组织场景
项目使用类似 Unity 的 GameObject / Component 架构,提供 Transform、MeshRenderer 等组件。场景中的对象通过组件组合描述位置与渲染等能力,使对象组织与具体功能有所分工。
场景管理包含基本加载与卸载,使用 JSON 序列化存储。编辑器中的修改由此能够对应到可保存的场景数据,而不只停留在一次运行中的显示结果。
材质、光照与动画
公开资料记录了可配置的 Shader 与 Material 管理系统,以及对应的材质、Shader 编辑界面。光照部分包括 Phong / PBR 模型、点光、方向光、球形天空盒和反射。
骨骼与蒙皮动画以 Transform 为基础进行组织,并支持动画控制。模型、动画和材质通过 Assimp 导入,资产管理还涵盖贴图、着色器与 Lua 脚本,把外部内容与运行时需要的数据关联起来。

Lua 脚本与编辑器工具
脚本部分采用 Lua / SOL3,支持脚本挂载、执行和实例化,用于在 C++ 核心之外表达运行逻辑。内部 Log 系统则为运行时和编辑器调试提供信息入口。
编辑器 UI 使用 Dear ImGui,提供场景编辑与资产相关操作。把场景、组件、材质和脚本放进编辑工具后,内容制作与底层实现之间才有了日常可操作的连接。
这个项目的展示重点
它是一个小型个人引擎实践,展示范围从图形模块延伸到内容与工具流程。可以沿着“导入模型、组织对象、设置材质、挂载脚本、保存场景”这条路径理解各模块的作用。
本站另有 DX11Template 介绍,侧重更基础的窗口与绘制链路。本项目的公开信息来自已有展示资料,尚未提供可直接浏览的独立源码地址;目前可以查看功能清单、运行画面、编辑器与材质工具截图。
AI 使用程度:轻度使用,按作者确认的项目标签记录。
本文根据 2026-10-29 整理的个人项目资料撰写。