Guide to Game Development/Rendering and Game Engines/OpenGL


Creating the project
Adding libraries to the project
Creating the window

Sending the vertex data to openGL
Drawing from vertex element arrays
Sending colour to OpenGL

Reading in shaders into your program
Writing vertex shaders
Writing fragment shaders

Get mouse movement and click input
Get keyboard input

Moving the camera to view the 3D geometry

Reading the image files in
Using UV coordinates
Adding textures to the geometry

Sister projectsEdit

Ports of OpenGLEdit

A rendering engine based upon OpenGL designed to work on the web.
A wrapper for OpenGL that works with: C#, VB.Net, C++/CLI, F#, Boo and many more on multiple platforms[1].
Light-Weight Java Game Library.


The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ library that helps in querying and loading OpenGL extensions[2]. Note that GLEW is open source[3].
OpenGL Mathematics library, comes with mathematics code for vector, matrices etc.
The OpenGL Utility Toolkit (GLUT) is a library of utilities for OpenGL programs, which primarily perform system-level I/O with the host operating system. Functions performed include window definition, window control, and monitoring of keyboard and mouse input[4]. Note that GLUT is not open source[5].
Qt is a cross-platform application and UI framework for developers using C++ or QML, a CSS & JavaScript like language[6].

Glut open-source alternativesEdit

Cpw is an application framework library for OpenGL applications and games modeled after the GLUT API. It is designed with speed, simplicity, and portability in mind[7].
FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation[7].
Open source and extended alternative to GLUT that allows the user to create and manage windows containing OpenGL contexts on a wide range of platforms and also read the mouse, keyboard and joystick functions[7].
Open source, portable framework for OpenGL application development with a link library for handling operating system specific tasks, such as opening an OpenGL window and reading keyboard, mouse and joystick input[7].
C++ wrapper for GLUT, providing a fully object-oriented API for creating windows, menus and other GUI elements, and for event handling[7].
GLT can be used as an object oriented interface to OpenGL, or as a library of pre-canned functionality for transformations, shapes or fonts, etc. GlutMaster is a C++ interface wrapper to GLUT, providing a portable window, keyboard, mouse and menu environment for OpenGL programs[7].
GLUI is a GLUT-based C++ user interface library which provides controls such as buttons, checkboxes, radio buttons, and spinners to OpenGL applications. It is window-system independent, using GLUT or FreeGLUT[7].
NGL is an application framework similar in many ways to GLUT, but with many enhancements in order to make it an easy and yet powerful tool for cross-platform C++ application programming[7].
A cross-platform multimedia library designed to provide level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer[7].


OpenCL™ is the first open, royalty-free standard for cross-platform, parallel programming of modern processors found in personal computers, servers and handheld/embedded devices[8].
A cross-platform audio API that deliberately resemble those of OpenGL[9].

External LinksEdit