OpengGLPlayground has no ambitions except to be a fun playground (as you may have understood) where I experiment with various features of openGL and realtime rendering cool stuff.
This project uses different dependencies:
- Assimp: Used to load model files to render
- Eigen: Matrice and vector manipulation
- Stbipp: Image I/O
- glfw: Window and context provider
- Flix01/imgui: Imgui fork with an additionnal file browser
- glew: OpenGL extension wrangler
- spdlog: Log system
Whole install instructions:
git clone https://github.com/Rodousse/OpenGLPlayground.git
cd OpenGLPlayground
# Third party install
cd third_party
mkdir build
cd build
cmake -DCMAKE_INSTALL_PREFIX="Wherever/you/want" ..
make
# Project build
cd ../../project
mkdir build
cd build
cmake -DCMAKE_PREFIX_PATH="thirdParty/install/path/" ..
make
The famous triangle as a first application
Texture sampler properties and texture memory allocation
3D model rendering of a scene, with a very simple shading (normal.dot(dir) with dir a uniform vec3)
Again, 3D rendering of a scene, with this time a phong illumination. The parameters of the phong material and the light material are passed using a uniform buffer object.
It may look quiet similar to the previous scene, but this application is using deferred rendering instead of forward rendering. Exercice using the framebuffer objects, stencil tests, and blitframebuffer (not optimal at all, could have used a pass through pipeline, but we can't say this application is resource consuming....)
Add some tessellation to the scene, and displacement according to a reconstructed material obtained with photogrammetry. On top of that we add the normal perturbation according to the normal map which gives us this nice result.