首页 > 代码库 > Bubble三维图形引擎简介
Bubble三维图形引擎简介
Bubble是一款基于OpenGL的3D图形引擎,主要使用C++编写,采用CMake构建工具构建,基于OpenGL可编程管线,支持GLSL着色器语言。这是一个用于学习和实践的项目,目前尚在开发中。
目录结构
目前项目结构如下图所示:
Bubble/bubble包含引擎的全部源代码和资源,其中:
Bubble/bubble/include为引擎的全部公共头文件;
Bubble/bubble/src为引擎全部源文件;
Bubble/bubble/res包含引擎的所有内置资源,包括材质,纹理,模型,着色器等。
除此之外,`Bubble/samples`还包含引擎的所有示例程序。
基本模块
目前引擎由以下四个模块组成:
- Base:引擎的底层模块,包括窗口管理,资源管理等。其中Windows为窗口类,主要使用第三方库SDL2实现,Engine类负责引擎的初始化和引擎子系统的管理工作,Resources类负责引擎的资源管理。
- Math:引擎的数学模块,实现了向量,矩阵和四元数类以及常用的数学函数。
- Render:引擎的渲染模块,实现了对模型,材质,纹理,着色器,摄像机以及灯光的管理和封装,实现基本的渲染功能,同时对顶点缓冲对象,索引缓冲对象和顶点格式也做了一定的封装。
- Scene:引擎的场景模块,实现基本的场景管理,以及基于组件的对象模型。Node类表示场景中的一个对象,他包含位置,缩放,旋转等空间信息,同时维护一系列Component对象。Component类是所有组件的基类,用于描述对象的行为。Scene类表示场景,他负责组织节点,并维护场景中的灯光和摄像机信息。
这是目前引擎的大致结构,未来可能会加入更多的模块和功能。
项目github地址:https://github.com/EasonWhite0928/Bubble
Bubble三维图形引擎简介
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。