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

自研 C++ 游戏引擎的编辑器界面

用对象和组件组织场景

项目使用类似 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 整理的个人项目资料撰写。

*

感谢阅读,保持好奇。

回到所有笔记 ↗