Modern OpenGL resources round up

With the fundamental shift from a fixed to a programmable pipeline, finding modern style OpenGL resources can prove a bit tricky.  Therefore I have put this page together to show a collection of useful modern GL related links, books and materials.  If I missed something you believe I should add, please let me know!

 

Tutorials, Wikis and eBooks

 

http://www.opengl.org/wiki/Main_Page

The OpenGL wiki, probably the place you should start.  Contains documentation on most of OpenGL as well as complete references for both OpenGL functions and GLSL shader programming.

http://www.opengl.org/registry/

Specs and documentation for OpenGL.  Loads here but a bit… stark.

http://ogldev.atspace.co.uk/

A series of 40 OpenGL tutorials including lighting, shading, normal mapping, skeletal animation and more.

http://www.arcsynthesis.org/gltut/

Actually an ebook, covers most of OpenGL

http://open.gl/

Another series of OpenGL tutorials covering a range of subjects and bordering on being an ebook.

http://www.opengl-tutorial.org/

A series of OpenGL tutorials for OpenGL 3.3 and higher.  Broken into basic, intermediate and misc categories.

http://openglbook.com/the-book/

Another ebook on OpenGL, some on 3.3, some on 4.0.  Makes use of freeGLUT and GLEW.

http://www.lighthouse3d.com/tutorials/glsl-core-tutorial/

A series of GLSL tutorials.  GLSL is the shader language used with OpenGL.

http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html

An intro to modern OpenGL.

http://www.ozone3d.net/tutorials/

Ozone3d offer a range of tutorials on a number of OpenGL subjects ( as well as Direct3D tutorials if you are interested ).

http://www.opengl.org/sdk/docs/tutorials/TyphoonLabs/

Typhoon Labs GLSL tutorials ( PDF format ).

https://developer.nvidia.com/opengl

nVidia have a half dozen tutorials available at the above link, as well as a number of tools such as the NVIDIA PerfKit and Cg and FX Composer.

http://developer.amd.com/tools/graphics-development/

AMD’s (ATI) developer page.  No tutorials, but a number of useful applications for developers.

http://sfml-dev.org/tutorials/2.0/window-opengl.php

Using OpenGL with SFML.

http://www.sdltutorials.com/sdl-opengl-tutorial-basics

Using OpenGL with SDL

http://lazyfoo.net/tutorials/OpenGL/index.php

LazyFoo’s OpenGL tutorials.  Some are OpenGL 2.1 era while later ones are more modern style.

 http://antongerdelan.net/opengl4/

A work in progress series of OpenGL 4 tutorials.  Only the tutorials with working thumbnails currently exist, but certainly one worth keeping your eye on!

http://www.mbsoftworks.sk/index.php?page=tutorials&series=1

Another series of tutorials for OpenGL 3.3 (and higher).  Pretty good collection of materials covered from beginner to intermediate topics.

http://theorangeduck.com/page/writing-portable-opengl

The title says it all. Covers writing OpenGL code that can run on multiple platforms with minimal changes.

Code Samples

 

https://github.com/tomdalling/opengl-series

A series of code samples to go along with the tutorial series from http://tomdalling.com/.  Cover setting up Xcode, Visual Studio and Linux, as well as texturing, model loading, cameras, matrices and more.

https://www.gamefromscratch.com/post/2012/07/03/A-series-of-OpenGL-samples.aspx

A series of well commented modern OpenGL samples that make no use of an external library.  Includes some advanced samples such as a Voxel rendering engine.  Note, these tutorials aren’t hosted on GameFromScratch, we simply provide a table of contents and description of each in one place.

http://sourceforge.net/projects/ogl-samples/

OpenGL samples from the author of the GLM library mentioned below.  Website explaining what is contained is available here.

 

Libraries

 

GLFW http://www.glfw.org/

GLFW is a cross platform open source library for handling window creation and management as well as dealing with input.

GLEW http://glew.sourceforge.net/

GLEW stands for OpenGL Extension Wrangler and it makes working with OpenGL extensions easier.  It makes it easy to querying if a device supports a given extensions as well as calling that extension a much simpler process.

GLUT http://www.opengl.org/resources/libraries/glut/

GLUT stands for OpenGL Utility KIt and it is for creating and handling Windows like GLFW as well as keyboard, mouse and joysticks in a cross platform manner.  It is not being actively developed, so other options are probably better choices.  The last release was in 1998.

freeGLUT http://freeglut.sourceforge.net/

Is an open sourced implementation of GLUT under more active development than GLUT.

SDL http://www.libsdl.org/

Simple DirectMedia Layer is a 2D game programming library that can be used to create windows and handle input, as well as simplifying many 2D graphic tasks.

SFML http://www.sfml-dev.org/

SFML is a 2D game programming library built over OpenGL.  Like SDL it can be used for window creation, input, audio and more along side your OpenGL library.

OpenGL Mathematics http://glm.g-truc.net/

Header file only C++ mathematics

 

As you may have guessed at this point, OpenGL has no facilities for creating windows or handling input, sound, networking, etc.

 

 

Books

 

OpenGL Programming Guide: The Official Guide to Learning OpenGL Version 4.3 (8th Edition)  (Safari Link) OpenGL 4.3

OpenGL SuperBible: Comprehensive Tutorial and Reference (5th Edition) (Safari Link) OpenGL 3.3

OpenGL 4.0 Shading Language Cookbook (Safari Link) OpenGL 4.0

 

 

Language Bindings

 

OGLPlus http://oglplus.org/

OGLPlus is a C++ wrapper for OpenGL 3.x and higher.

OpenTK http://www.opentk.com/ 

OpenGL, OpenAL and OpenCL wrappers for .NET languages such as C# and VB.net.

PyOpenGL http://pyopengl.sourceforge.net/

OpenGL, GLU, GLUT wrapper for Python.

JOGL https://jogamp.org/jogl/www/

OpenGL bindings for Java.

LWJGL http://www.lwjgl.org/

Lightweight Java Game Library, a Java layer over OpenGL, OpenAL, OpenCL as well as additional input support.

( There are many many many more language bindings/wrappers for OpenGL for dozens of languages.  These are some of the most common ).

 

 

See Also

 

OpenGL ES 2 http://www.khronos.org/opengles/2_X/

OpenGL ES 2 is the most modern reference implementation for OpenGL on mobile or embedded devices.  It’s derived from OpenGL 2 and is very similar but varies in some ways from desktop OpenGL.

WebGL http://www.khronos.org/webgl/

WebGL is OpenGL ES 2 for the web, it is a JavaScript based library.  WebGL support in modern browsers is getting better, but is by no means universal, nor is the performance consistent between browsers.

Mesa3D http://www.mesa3d.org/

On open source implementation of the OpenGL standard, currently compatible with OpenGL 3.1.

OGLPlus http://oglplus.org/

OGLPlus is a C++ wrapper for OpenGL 3.x and higher.


Scroll to Top