Skip to content

rjindael/bigworld

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

21 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

bigworld

OpenGL experiments

This is just a means for me to tinker around with OpenGL and get a fundamental grasp of how to perform 3D rendering for video games from C++. In this journey, I am using C++ and am following the Learn OpenGL tutorial to learn OpenGL.

Currently tested to run on Windows only, but should compile and work for Linux (CI soon:tm:). Builds with Clang 18.1.1 targeting x86_64-pc-windows-msvc.

Checklist of things I want to do of varying complexity, in no particular order:

  • Get a basic GL app working (using SDL2)
  • Abstract a basic OpenGL rendering engine
  • Get basic 3D rendering working (using cglm)
  • Finish LearnOpenGL tutorial and whatever else
  • Mess with boolean operations for sculpting 3D meshes
  • Experiment with shaders
  • Shadow mapping
  • Shadow volumes that are then stenciled (and get this working with a vertex or geometry shader)
  • Post processing effects (MSAA, SSAA, FXAA, bloom, color correction, blurring, sunrays)
  • PBR materials
  • Atmospheric effects (God rays, clouds, fog, haze, glare)
  • Have a nice shader development pipeline, since I realize shaders get more complex as visual effects become more varied
  • Eventually migrate over to SDL2 and start processing inputs from KB+M and a gamepad
  • Experiment with getting this on Linux and Android and WASM (GL ES)
  • Experiment with 3D audio with SDL2 audio
  • Experiment with particles, soft particles, whatever else
  • Ambient occlusion with a fragment shader (SSAO/HBAO)
  • High refresh rate rendering
  • 3D camera controls
  • Basic physics with BulletPhysics
  • libsm64 support

Resources

Resources I have collected that I have found useful:

High level info:

Shadow volumes:

Shadow mapping:

Soft particles:

PBR:

Post Processing effects:

License

bigworld is licensed under the MIT license. A copy of it has been included with bigworld.

bigworld uses the following third-party libraries:

About

OpenGL experiments

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published