Skip to content

JobsSteve/Cube-Engine

 
 

Repository files navigation

###What's This?###

Cube Engine is my own hobby porject, It's a small Graphic Engine written in c++ and powered by OpenGL (ES 2.0 or higher), I develop it so that I can improve my knowledges of CG and common programming Skills(generic algorithm ,code style ,design patterns).

Any questions or ideas please contact me:
tzwtangziwen@163.com or ziwen.tang@chukong-inc.com

###Features:###

  1. Camera Control
  2. Commons Model Format loading with Skeleton Animation
  3. SkyBox
  4. Terrain generate and render from HeightMap
  5. Lighting (ambient ,diffuse ,specular)
  6. NormalMapping
  7. ShadowMapping (CSM PCF)
  8. deferred shading
  9. unlimited water surface
  10. basic GUI and text rendering.

###Current Version###

  • the current version is alpha v0.13 7.9.2015

###Requirement###

  • libassimp: If you use Windows, the project have a modified copy under the "cube/external" folder
  • Qt framework and qt-creator: only use if you compile with Qt
  • Opengl ES 2.0 (forward shading) or 3.0(deffered shading)

###How To Build?###

  • Use Qt: currently, I use Qt framework As a backend,so you need qt-creator.just use qt-creator open the file cube.pro in the "cube" folder and bulid it,when you finish ,drag the "res" folder to your build directory like "build-cube-Desktop_Qt_XXXXX-Debug"
  • without Qt: you also can compile the cube engine without Qt, but you need modify the backend.cpp,and handle the delegate's by yourself,it's not too hard to switching the Qt backend to such like GLFW or SDL

###Screenshot###

  • an actor play animation under the spotLight
  • Cascaded Shadow Maps for huge scene
  • Unlimited water surface use projected-grid

###Future Plans###

  • Octree scene manager intergrated.(not focus it yet)
  • Basic UI support.(currently support some basic button and label, orz. need hustle in it)
  • Imrpove Lighting system.(use some advance lighting models to rendering secene.)
  • Strip down the assimp code, use our own file format "*.tzw"(.tzw file currently only support static model,the models which have skin animation still need Assimp (via "external/converter", not directly)).

About

an easy to use OpenGL 3D Engine

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 61.7%
  • C 24.6%
  • GLSL 8.4%
  • QMake 5.3%