Skip to content

Some practical exercises on how to implement opengl effects and build an abstract layer around OpenGL

Notifications You must be signed in to change notification settings

Rodousse/OpenGLPlayground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

OpenGLPlayground

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.

Dependencies

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

Install

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

Applications

Triangle

The famous triangle as a first application

Texture

Texture sampler properties and texture memory allocation

3D Model

3D model rendering of a scene, with a very simple shading (normal.dot(dir) with dir a uniform vec3)

UBO

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.

FBO

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....)

Tessellation

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.

About

Some practical exercises on how to implement opengl effects and build an abstract layer around OpenGL

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published