1. 程式人生 > >Bubble三維圖形引擎簡介

Bubble三維圖形引擎簡介

模塊 images c++編寫 sdl2 支持 ima 包括 .com glsl

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三維圖形引擎簡介