自制简单的3D游戏引擎

简单的3D游戏引擎

一个轻量级、模块化、易于扩展的3D游戏引擎原型,既可作为学习参考,也能作为小型3D游戏项目的开发起点。基于C++和openGL,以及少量的第三方库,比如ImGui,Assimp,json,stb...等。

项目地址:点我

主要实现模块

  • 资源管理模块
  • 相机,着色器,3d模型加载模块
  • 简单碰撞检测模块
  • 渲染模块
  • 音频模块
  • 光照系统和阴影系统
  • 数据驱动关卡管理模块
  • 地图编辑器

  • 悬浮菜单

  • 游戏内调试终端

基本性能优化算法

  • 视锥体剔除
  • 四叉树空间划分
  • 可视距离渲染剔除
  • 批处理
  • GPU顶点缓存优化 + 物理顺序重排
  • LOD