A simple OpenGL 2.1 game engine, written in C++. It features a CDLOD terrain renderer, a mesh loader and render using assimp, GPU skinning animation built on top of that, as well as exponential shadowmaps and several aftereffects (tone mapping, bloom, depth of field, lens flare)
This is just an educational project. I don't own the rights for every media in the application.
- C++11 compiler. (clang recommended)
- OpenGL 4.3, Shader model 430
- GLEW - for loading OpenGL extensions
- Magick++ - for image loading.
- Assimp - for loading 3D models.
- FreeType2 - for text rendering (via freetype-gl).
- Bullet - for physics (isn't fully integrated yet).
- Included dependencies:
- oglwrap - my C++ OpenGL wrapper.
- freetype-gl - for GUI texts
- GLFW3 - for window handling
- glm - for linear algebra
mkdir LandOfDreams && cd LandOfDreams && sudo apt-get install libmagick++-dev libglew-dev libassimp-dev libbullet-dev cmake xorg-dev libglu1-mesa-dev && git clone --recursive https://github.com/Tomius/LoD.git && cd LoD && make -j4 && ./LoD
- get the external dependencies: libmagick++-dev libglew-dev libassimp-dev libbullet-dev libglm-dev libglfw3-dev cmake xorg-dev libglu1-mesa-dev
- initialize the oglwrap submodule: git submodule init && git submodule update
- build with make (uses clang++), run with ./LoD
- if you downloaded LoD using git, but you didn't use git clone --recursive, then you have to initilaize oglwrap with git submodule init && git submodule update. If you download it via http, you will have to download oglwrap too, and paste it into src/oglwrap
- dowload all the third party libraries pre-compiled from here
- add thirdparty/include to compiler search path
- add thirdparty/lib to linker search path
- specify the linker inputs (thirdparty/lib/linker_inputs.txt), or the linker flags (thirdparty/lib/linker_flags.txt)
- enable c++11 mode with your compiler
- compile every .cc file, but none of the .c or .cpp files
- copy the thirdparty/bin files to the exe's directory
- Darkz for useful feedback and help with the fixing of several bugs.
- Kristóf Marussy (kris7t) for a lot of useful advices and catching many implementation-dependent bugs.
- World Machine - Used for heightmap generation
- X-blades - Borrowed Ayumi's character design from this game
- Autodesk Maya && Blender - Used for modelling and animating 3D assets.
- Oglplus sky example - My skybox is based on this one.
- Konserian highlands - Used the trees from this 3D art pack
- Gamasutra fast blur artice - The mipmap based DoF was inspired by this.
- Filip Strugar's CDLOD paper - Implemented the current Level of Detail algorithm for the terrain using this paper (with some changes).
- Musk's lens flare - The lens flare I use is based on this.