Frankenstein引擎:首个自主开发的3D游戏引擎

需积分: 5 0 下载量 27 浏览量 更新于2024-10-29 收藏 22.41MB ZIP 举报
资源摘要信息:"我的第一个 3D 游戏引擎名为 'Frankenstein',其开发受到 'thebennybox 3D Game Engine' 的影响。它是一个3D游戏引擎,结合了多个图形和音效库,以支持复杂的游戏开发需求。以下是关于该引擎的知识点: 1. 渲染引擎基础: 'Frankenstein' 渲染引擎是基于 'thebennybox 3D Game Engine' 开发的,这意味着它可能继承了后者的一些核心特点和性能优化。渲染引擎是任何游戏引擎的核心部分,负责将3D模型、纹理、光照等数据转换成玩家可以看到的图像。 2. 物理引擎设计: 尽管文档中没有明确指出物理引擎的具体来源,它可能是受其他开源物理引擎启发而设计的。物理引擎在游戏中的作用是模拟和计算游戏中物体的运动和相互作用,包括碰撞检测、刚体动力学、软体动力学等。 3. 技术依赖: - OpenGL:一个广泛使用的跨语言、跨平台的应用程序编程接口(API),用于渲染2D和3D矢量图形。 - SDL2 (Simple DirectMedia Layer):一个跨平台的开发库,支持访问音频、键盘、鼠标、游戏手柄和图形硬件。 - stbi_image:一个用于图像加载的库,可能用于读取各种格式的图像文件。 - Assimp 3.0 (Open Asset Import Library):一个用于加载和处理多种3D模型格式的库,广泛用于游戏开发中。 - OpenAL (Open Audio Library):一个用于3D声音处理的跨平台音频API。 4. 支持平台: 目前,'Frankenstein' 游戏引擎支持Windows平台,无需额外依赖项。开发者可以通过Visual Studio导入解决方案,并在调试配置中运行。 5. 待办事项: - 自由移动相机的实现已完成,尽管存在错误。 - 法线贴图、渲染到纹理、阴影贴图、抗锯齿等高级图形技术的实现已经完成,但仍然存在一些问题需要解决。 - 粒子系统和物理引擎的实现已完成,为游戏提供动态效果和物理模拟。 - 音响系统已经实现,支持游戏中的音频播放。 - 跨平台支持尚未完成,这可能是未来工作的重点。 6. 已知问题: - 变换计算中存在错误。 - 定向灯阴影贴图中的错误。 - FAAX的震动效果未实现。 - Profiler(性能分析器)未全面使用。 - AABB (Axis-Aligned Bounding Box) 对撞机不支持角动量,原因在于AABB对撞机的非旋转性质。 7. 标签说明: - C++:游戏引擎采用C++语言开发。 - physics-engine:表示引擎包含了物理模拟系统。 - 3d-game-engine:标识这是一个3D游戏引擎。 - C:可能表明引擎的某些部分也使用了C语言,或出于对C语言的引用。 8. 压缩包子文件名称: 文件名为 'Frankenstein-master',表明这可能是主分支的源代码或资源文件。 从上述内容可以看出,'Frankenstein' 是一个正在开发中的3D游戏引擎,尽管有尚未解决的问题,但它已经具备了现代游戏引擎的一些核心功能。开发者需要关注性能优化、错误修复以及跨平台扩展,以达到商业级游戏引擎的水平。"