码迷,mamicode.com
首页 > 其他好文 > 详细

Bubble三维图形引擎简介

时间:2017-05-15 00:41:50      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:对象模型   github   窗口   bubble   学习   简介   com   组成   分享   

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三维图形引擎简介

标签:对象模型   github   窗口   bubble   学习   简介   com   组成   分享   

原文地址:http://www.cnblogs.com/EasonWhite/p/6854386.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!