Guide to Game Development/Rendering and Game Engines/OpenGL
Appearance
Categories
[edit | edit source]- 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 projects
[edit | edit source]Ports of OpenGL
[edit | edit source]- 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.
Libraries
[edit | edit source]- 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 alternatives
[edit | edit source]- 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].
Other
[edit | edit source]- 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 Links
[edit | edit source]- OpenGL's HomePage
- AngleProject - Used to port OpenGL to DirectX
- OpenGL Programming wikibook
- Learning Modern 3D Graphics Programming - An online reference for learning OpenGL with C/C++
YouTube:
- Game Engine Development In OpenGL by Jamie King
- 3D Computer Graphics Using OpenGL by Jamie King
- Intro to Modern OpenGL by thebennybox
- 3D Game Engine Development Tutorial by thebennybox
References
[edit | edit source]- ↑ http://www.opentk.com/
- ↑ https://en.wikipedia.org/wiki/OpenGL_Extension_Wrangler_Library
- ↑ http://www.opengl.org/sdk/libs/GLEW/
- ↑ https://en.wikipedia.org/wiki/OpenGL_Utility_Toolkit
- ↑ Paragraph 4: http://www.opengl.org/resources/libraries/glut/
- ↑ Direct quote from: http://qt-project.org/
- ↑ a b c d e f g h i List of alternatives for GLUT: http://www.opengl.org/resources/libraries/windowtoolkits/
- ↑ http://www.khronos.org/opencl/
- ↑ https://en.wikipedia.org/wiki/OpenAL