自己最近在研究一个Directx9的小型游戏引擎,总结一下目前的成果以及遇到的各种问题的解决方法。
虽然是Directx9但是绘制全部使用Shader实现,现状除了物理模拟外其他功能基本都有。
碰撞检测有AABB,OBB和球体对球体。由于开发环境是日语环境所以UI说明用的日文,模型都来源自MMD模型。
1. ImGui介绍
IMGUI 全称是immediate mode gui,这种实现方法的GUI非常适合作为实时程序辅助组件用来调试。
Dear Imgui是目前比较好用的一个开源Imgui项目,
下载: https://github.com/ocornut/imgui
下载后把必要文件包含到自己的工程并把对应函数加入到程序循环中即可使用。具体组入方法参考Demo。
IMGUI很合适实时项目使用,如果同样是对Directx或者OpenGL进行研究的人来说,我强烈推荐使用Dear Imgui,可以大幅度缩短各种Debug时间。
2. 3D空间数学
3D空间表示一件物体的运动可以用缩放+旋转+平移来描述。而矩阵则可以描述以上行为的总和