DreamRealm is a 3D Rendering Engine built with C++ and the Opengl graphics API with upcoming support for Vulkan
- Cmake support
- Environment Light (Point light, Directional light)
- Scene Camera
- Cloud simulation using perlin noise texture lookup on pixel shaders
- Distant Fog effect using linearized depth buffer technique
- CrunchMath support for graphics related calculations
- Mesh loading with support for animations with the Open Asset Import Library (assimp)
- Image/Texture loading with STB image library
- GLFW support for windows creation, reading input, handling events
- Anti-aliasing (MSAA Technique)
- Instancing
- Deferred Shading Technique
- Shadow Mapping
- Bloom Effects
- High Dynamic Range Rendering (HDRR)
- Physical Based Rendering (PBR)
- Rainbow light
- Text Rendering
- Level Editor
- Vulkan Support
- Voxel Rendering
- Ray Tracing
These instructions will get you a copy of the project up and running on your local machine for development and testing purposes.
The basic requirements for building the executable are:
- CMake 3.8+
- C++ compiler
git clone --recursive https://github.com/harlexkhal/DreamRealm <Your-Build-Directory>
This program has been tested on Windows 10 and binaries built with visual studio 2019. but should work under any system that fulfils the aforementioned requirements.
Make sure to set the environmental path variable of cmake. then on the parent directory of the project using cli. run
cmake .
On Visual studio. Build project, on the first build you would get an error of missing assimp static library. rebuild project and it would be fixed.
After a successful build from parent source directory go to DreamRealm\Dependencies\Assimp\bin\Debug
and copy assimp-vc142-mtd.dll
paste it into DreamRealm\Debug
from parent directory. Now navigate to Dependencies\GLFW\src\Debug
also from parent directory and copy glfw3d.dll
then
paste it into DreamRealm\Debug
from parent directory. now in your current directory which is DreamRealm\Debug
you would see the binary DreamRealm.exe
.
Now navigate to DreamRealm
by going one directory backwards and copy the src
folder and paste into DreamRealm\Debug
. and now you are done you can run
DreamRealm.exe from there or alternatively run it from the compiler.
Some screenshots along the way of developing:
- OpenGL - API used for communicating with graphics drivers
- GLFW3 - Used for display, reading inputs, and handling events
- CrunchMath - Used for graphics related calculations
- Open Asset Import Library (assimp) - Used for loading meshes
- STB image - Used for loading images/textures
- Alexander Ibeh - harlexkhal