Guide to Game Development/Rendering and Game Engines/OpenGL

Categories

 * /Getting set up/


 * Creating the project
 * Adding libraries to the project
 * Creating the window


 * /Drawing geometry/


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


 * /GLSL Shaders/


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


 * /User Input/


 * Get mouse movement and click input
 * Get keyboard input


 * /Camera/


 * Moving the camera to view the 3D geometry


 * /Textures/


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


 * /Lighting/
 * /Loading in models/
 * /Exporting the game for distribution/
 * /Miscellaneous /

Ports of OpenGL

 * WebGL
 * A rendering engine based upon OpenGL designed to work on the web.


 * /OpenTK/
 * A wrapper for OpenGL that works with: C#, VB.Net, C++/CLI, F#, Boo and many more on multiple platforms.


 * /LWJGL/
 * Light-Weight Java Game Library.

Libraries

 * /Glew/
 * The OpenGL Extension Wrangler Library (GLEW) is a cross-platform C/C++ library that helps in querying and loading OpenGL extensions . Note that GLEW is open source.


 * /Glm/
 * OpenGL Mathematics library, comes with mathematics code for vector, matrices etc.


 * /GLUT/
 * 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 . Note that GLUT is not open source.


 * /Qt/
 * Qt is a cross-platform application and UI framework for developers using C++ or QML, a CSS & JavaScript like language.

Glut open-source alternatives

 * /CPW/
 * 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.


 * /Fast Light Toolkit/
 * FLTK provides modern GUI functionality without the bloat and supports 3D graphics via OpenGL and its built-in GLUT emulation.


 * /Freeglut/
 * 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.


 * /GLFW/
 * 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.


 * /GLOW Toolkit/
 * C++ wrapper for GLUT, providing a fully object-oriented API for creating windows, menus and other GUI elements, and for event handling.


 * /GLT and GlutMaster/
 * 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.


 * /GLUI UI Library/
 * 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.


 * /NGL/
 * 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.


 * SDL (Simple Direct Media Layer)
 * A cross-platform multimedia library designed to provide level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL, and 2D video framebuffer.

Other

 * /OpenCL/
 * 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.


 * /OpenAL/
 * A cross-platform audio API that deliberately resemble those of OpenGL.