Skip to content

joudoki/ModernOpenGLExperiment

Repository files navigation

#Modern OpenGL Experiment Ryan Lewellen December 2012 - February 2013

##Purpose I've had a fair bit of experience with the traditional, fixed-pipeline variant of OpenGL; however, after taking CSCI441 last fall, I decided to take the time (and the plunge) to learn a bit about the modern variant. This has required quite a bit of reading through the OpenGL specs but ultimately I've learned quite a bit.

##Objectives I wanted to get experience working with OpenGL 3.3 in the Core Profile mode. To that end, I've ended up investing the following topics:

  • Context Acquisition with GLFW's context hints
  • Function Acquisition via a custom loader (like GLEW), except that it only loads valid 3.3 core commands. I generated this using glLoadGen 1.0.3, and I quite like the results it has given - mainly that using the custom loader didn't pollute the default namespace with useless deprecated commands, while still working with GLFW
  • Managing data in Vertex Buffers and Vertex Array Buffers
  • Simple GLSL for Vertex and Fragment Shaders, as well as associated management via Programs

##Links

I also used the Gameplay engine as a reference implementation for the management and lifetimes of VBOs, VAOs, Programs, shaders, etc. Gameplay is a multi-platform game engine that is fairly straightforward to understand and runs only on an underlying OpenGL graphics context (as opposed to a more comprehensive engine that may run also run on DirectX). My design of the Mesh, Model, and Program classes was heavily influenced by the corresponding implementation in Gameplay:

https://github.com/blackberry/GamePlay

About

My experiments with "modern" OpenGL - AKA 3.3 core profile

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published