OpenGL API-based Code - Detail Listing
An intro to modern OpenGL. Table of Contents
Durian Software
http://duriansoftware.com/joe/An-intro-to-modern-OpenGL.-Table-of-Contents.html
OpenGL has been around a long time, and from reading all the accumulated layers of documentation out there on the Internet, it’s not always clear what parts are historic and what parts are still useful and supported on modern graphics hardware. It’s about time for a new OpenGL introduction that walks through the parts that are still relevant today. This is that tutorial.
Pixel Tangent
Simon Flannery
Featuring high quality yet surprisingly simple implementations, including the source code, of common graphic concepts.
REAL-TIME VOLUMETRIC FIRE ANIMATION
Wojciech Jozefowicz
http://narsil.asua.org.pl/~wjozefow/FireDemo.html
Fast generator of a volumetric fire animation - 170 fps on GeForce 7600GS in a 1280x1024 window. The demo has a form of a 3d scene where an observer is immersed in the first-person perspective environment.
Getting started with SDL and OpenGL in D – Part 3
Tomasz 'h3r3tic' Stachowiak
http://dmedia.dprogramming.com/?n=Tutorials.SdlGlTutorial3
Here we finally draw some basic OpenGL primitives to the screen. Perspective projection and transformations are briefly covered.
Getting started with SDL and OpenGL in D – Part 2
Tomasz 'h3r3tic' Stachowiak
http://dmedia.dprogramming.com/?n=Tutorials.SdlGlTutorial2
This tutorial covers the creation of an SDL window with OpenGL support, basic event handling and cleanup.
Getting started with SDL and OpenGL in D – Part 1
Tomasz 'h3r3tic' Stachowiak
http://dmedia.dprogramming.com/?n=Tutorials.SdlGlTutorial1
This article is a starting point to multimedia programming in the D programming language. We’ll begin by installing the Derelict library and making sure it works so we can quickly proceed to writing some cool programs :)
Text rendering
Tomasz 'h3r3tic' Stachowiak
http://dmedia.dprogramming.com/?n=Tutorials.TextRendering1
Shows how to use FreeType and OpenGL to render subpixel anti-aliased Unicode text with kerning and on-demand glyph caching. Source code in the D language.
myOS - Miniature OpenGL development system
zelko
http://one.xthost.info/zelko/opengl.html
This is minimalistic OpenGL capable GNU/Linux based system without X. There is complete OpenGL Red Book together with 45 examples converted to use Scitech’s drivers. Examples are organized to follow chapters and are ready to compile and run, they look very much like their GLUT version in Red Book.
High Dynamic Range Rendering
Burak Arslan
A cross-platform implementation of HDRR with OpenGL2.0, GLSL, SDL.
OpenGL Frame Buffer Object Tutorials
Rob Jones
http://www.gamedev.net/reference/programming/features/fbo2/
The Frame Buffer Object (FBO) extension was introduced to make Render to Texture objects much more efficient and much easier to perform when compared with the copying or pbuffer alternatives. This second article in a series (see FBO 101), shows how you can use a single FBO to cycle through a number of textures to render to and finish off with using the OpenGL Shading Language to render to multiple textures at the same time via the Draw Buffers extension.
Tutorial on implementing Marching Cubes algorithm using OpenGL API Geometry Shaders extension
Cyril Crassin
http://www.icare3d.org/content/view/50/9/
The NVIDIA GeForce 8 series introduced GPU Shaders model 4 and the new Geometry Shader. For the first time, on-GPU dynamic generation of geometric primitives becomes possible. This simple tutorial show how to use OpenGL API-based Geometry Shaders (EXT_geometry_shader4 and EXT_gpu_shader4) and the new integer texture formats (EXT_texture_integer) extensions to implement the Marching Cubes algorithm entirely on the GPU. Includes C++ source and uses GLUT and GLEW extension loader library.
GLSL? An Introduction
Florian Rudolf
http://nehe.gamedev.net/data/articles/article.asp?article=21
GLSL (GLslang) is a short term for the official OpenGL Shading Language. GLSL is a C/C++ similar high level programming language for several parts of the graphic card. With GLSL you can code (right up to) short programs, called shaders, which are executed on the GPU. This tutorial explains the difference between using the fixed function pipeline extensions and the programable pipeline of GLSL.
The art of texturing Using the OpenGL Shading Language
Jerome Guinot
http://www.ozone3d.net/tutorials/glsl_texturing.php
This tutorial shows how to implement the main techniques of texture mapping using the OpenGL Shading Language. Simple and multi texturing, environment mapping (sphere mapping, dual paraboloid mapping and cube mapping), texture warping, projective texture mapping as well as some examples of special textures such as alpha maps or gloss maps are studied. Several simple demos using the freeware Hyperion Demo-System are provided to illustrate all concepts.
SIGGRAPH 99: Programming with OpenGL - Lighting & Shading ; Advanced Graphics Programming
SGI
http://www.opengl.org/resources/code/samples/sig99/
These courses were presented at the 1999 SIGGRAPH Conference in Los Angeles, California. The Lighting and Shading Techniques for Interactive Applications course demonstrated lighting and shading techniques useful for interactive applications.
The Advanced Graphics Programming Techniques Using OpenGL demonstrated more sophisticated and novel techniques possible using the OpenGL library.
SIGGRAPH 2001: Performance OpenGL: Platform Independent Techniques
SGI
http://www.opengl.org/resources/code/samples/s2001/perfogl.pdf
Underlying commonalities of OpenGL implementations, how simple considerations kept in mind while authoring an application can greatly help in achieving better performance across all OpenGL capable platforms, and present techniques to determine where the performance bottleneck (and there always will be one) is occurring.
GDC2003 OpenGL Game Programming and Stencil Volumes Slides
ATI and Nvidia
http://www.opengl.org/resources/code/samples/gdc2003/
The Advanced OpenGL Game Programming Course covers many advanced rendering topics in detail, starting with the mathematical principles behind them. Then, the corresponding OpenGL interfaces are presented, and followed by suggested applications for next generation games. Finally, demos are shown to illustrate the concepts. The techniques presented not only increase realism in games, but also increase performance by offloading many operations onto the GPU that were previously performed on the CPU.
The Optimized Stencil Shadow Volumes slides discusses fast “possible silhouette” determination and stenciled shadow volume culling and scissoring approaches minimize both the GPU and CPU burden.
SGI OpenGL Programming Kitchen/Lab 1997
Silicon Graphics, 3DLabs, and Texas Instruments
http://www.opengl.org/resources/code/samples/kitchen/
In October and November of 1997, Silicon Graphics, 3DLabs, and Texas Instruments presented a series of lectures and programming labs to game developers working principally on Microsoft Windows platforms. These lectured discussed basic techniques for improving performance and visual realism. The are the presentations from those lectures.
SIGGRAPH 1996-2000: Programming with OpenGL: Advanced Techniques
SGI
http://www.opengl.org/resources/code/samples/advanced/
SGI courses from the SIGGRAPH conferences on Developing Efficient Graphics Software: The Yin and Yang of Graphic and Programming with OpenGL: Advanced Rendering. Includes presentations, notes example programs and source.
An Interactive Introduction To OpenGL Programming - Siggraph 2001 Course
SGI
http://www.opengl.org/resources/code/samples/s2001/
Presentation notes and tutorials, as well as some background papers regarding OpenGL presented at Siggraph 2001. The tutorials include versions compiled for SGI’s Irix, Linux, and Microsoft Windows 9X/NT operating systems, as well as source code. All necessary data is included with the programs.
OpenGL Win32 Sample code
SGI
/resources/code/samples/win32_tutorial/
Windows 95/NT specific programs intended to be a tutorial for those getting started with OpenGL and Win32 including mouse events, pixel zoom, Window DIB, and more.
More sophisticated OpenGL Samples
SGI
/resources/code/samples/more_samples/
More interesting samples collected from a variety of places including CSG, distorting an image, drips, simple games, particles, mesh with a color ramp scale, palette animation, real-time soft shadows, and more.
OpenGL Simple Samples
SGI
/resources/code/samples/simple/
Collection of simple programs helpful for testing an OpenGL implementation including accumulation testing, bitmap rendering, depth buffering, simple NURBs, packed pixels, shape primitives, warping, and more. Many have keyboard options.
Redbook Samples
SGI
/resources/code/samples/redbook/
Examples from the OpenGL Programming Guide v1.1 (Redbook) including drawing anti-aliased lines, accumulation buffer, texturing, clipping planes, fog, display lists, mipmaps, gl lighting, vector fonts, and more.
3D Graph ActiveX Control
Nikolai Teofilov
http://www.codeproject.com/opengl/ntgraph3d_atl.asp
An ActiveX control based on the OpenGL API, which allows you to plot three-dimensional data. The control is entirely written on ATL/STL, and does not link to MFC libraries.
Swiftless’ Game Programming Site
Donald Urquhart
Game programming website specializing in OpenGL graphics rendering featuring a wide variety of tutorials ranging from basic GLUT commands, to using GLSL and Terrain/Landscape rendering.
GameProgrammer.org Tutorials
Vahid Kazemi
http://www.gameprogrammer.org/main.php?page=tutorials&subject=OpenGL
Beginner level tutorials and codes to use OpenGL for game programming on Windows platform.
Games Creators Network: tutorials about OpenGL
Collective work
http://www.games-creators.org/wiki/OpenGL
A french introduction to OpenGL and GLUT programming with a lot of examples.
Some more opengl tutorials
Heinrich
http://students.ee.sun.ac.za/~bonkers/gltuts/index.htm
OpenGL/c++/game programming tutorials. The pace is pretty fast and the aim is game programming, but includes a lot on OpenGL.
GLSLang cloth simulation
Maurizio Monge
http://linuz.sns.it/~monge/cloth/
Demo for linux (it should compile on windows too but i didn't try) that simulates a cloth using the OpenGL Shading Language. The cloth computations are done completely in the GPU.
ZeusCMD Design and Development Tutorials
Grant James
Tutorials on many subjects including OpenGL, OpenGL ES and C++. Frequently updated.
OpenGL and Surface C++ projects
ziyoo
Mesh, CAD, OpenGL and Surface C++ projects and examples with sources
OpenGL MFC Glut Tutorials
Kenneth Peterson
http://www.kencocomputers.com/Beginning OpenGL/
These are a series of tutorials using Microsoft Foundation Class, Glut and OpenGL. These tutorials are intended for beginners and will walk the novice through using the Microsoft Developer .NET to create OpenGL programs.
Display Lists tutorial
António Ramires Fernandes
http://www.lighthouse3d.com/opengl/displaylists/
A tutorial with source code exploring some of the possibilities provided by Display Lists. Enhance your application making it run faster with this simple feature.
Picking tutorial
António Ramires Fernandes
http://www.lighthouse3d.com/opengl/picking/
The OpenGL API provides a mechanism for picking objects in a 3D scene. The Red Book proposes an alternative mechanism based on color coding. This tutorial will show you how to detect which objects are bellow the mouse or in a square region of the OpenGL window using both approaches.
Billboarding tutorial
António Ramires Fernandes
http://www.lighthouse3d.com/opengl/billboarding/
Billboarding is a technique that adjusts an object's orientation so that it "faces" some target, usually the camera. In this tutorial several techniques to implement billboarding are covered. From cheating billboards to true billboards. In all techniques both Cylindrical and Spherical versions are presented.
GLUT Tutorial
António Ramires Fernandes
http://www.lighthouse3d.com/opengl/glut/
GLUT is a library that allows us to write system independent applications without messing up with specific window systems. In this tutorial I cover the initializations required, mouse and keyboard input, pop-up menus, writing text, GLUT's gamemode, and subwindows.
CodeSampler.com
Kevin Harris
http://www.codesampler.com/oglsrc.htm
Numerous OpenGL samples ranging from basic triangle rendering to creating shadow volumes and applying vertex and fragment shaders.
OpenGL Extensions Tutorial
http://developer.nvidia.com/object/opengl_extensions_tutorial.html
Nvidia pdf tutorial on how to use OpenGL extensions.
OpenGL Shading Language Tutorials
http://www.clockworkcoders.com/oglsl/tutorials.html
Loading and compiling GLSL programs, vertex and fragment demos, multitexturing, toon shading and more
OpenGL Multiple Document Interface
http://members.net-tech.com.au/alaneb/opengl_mdi.html
How to program an OpenGL Multiple Document Interface application for game model editors using just straight Win32 programming with no MFC
Non-Photorealistic, Painterly and ‘Toon Rendering Online Resources
Craig Reynolds
An annotated survey of online resources for on-Photorealistic, Painterly and 'Toon Rendering
3D Graph ActiveX Control
http://www.codeproject.com/opengl/ntgraph3d_atl.asp
An ActiveX control based on the OpenGL API, which allows you to plot three-dimensional data. The control is entirely written on ATL/STL, and does not link to MFC libraries.
OpenGL Win32 AppWizard
http://www.codeproject.com/opengl/oglwiz.asp
This Custom AppWizard for VC++ 6.0 or VC++.NET creates an OpenGL enabled Win32 application suitable for demos and simple games
Achieving PostScript and Wmf outputs for OpenGL
http://www.codeproject.com/opengl/glexport.asp
How to generate resolution independent versions of 3D meshes rendered by OpenGL/MFC programs, i.e. how to export the rendering results to vectorial formats such as encapsulated postscript (EPS) and Windows enhanced metafile (EMF) formats.
StL Data File Viewer
http://www.codeproject.com/opengl/stlviewer.asp
A simple StereoLithography data file viewer
True OpenGL Zooming
http://www.codeproject.com/opengl/opengl_zooming.asp
Zooming in a perspective OpenGL view.
Visual C++,.Net,C#, C++, Win32 resources
Muthukumar
Visual C++ , C++, .Net, C#, Win32 articles are provided with sufficient sample programs.
OpenGL in a Mfc dialog
Andr√ Stein
http://steinsoft.net/index.php?site=Programming/Tutorials/opengl_dialog
Learn how to use an OpenGL control in a standard Mfc dialog window.
Beginners Guide to OpenGL in free Borland C with GLUT
Paul Groves
The site takes you through how to setup the free Borland C commandline tools and start compiling simple GLUT based programs.````All programs listed on the site have full, annotated source code.
OpenGL Cg Vertex Shader
Owen Bourne
http://nehe.gamedev.net/data/lessons/lesson.asp?lesson=47
An introductory tutorial, explaining how to get started with Cg/OpenGL.
OpenGL and GLUT Tutorials for Newbies
Sebastian Schuberth
http://www.threekings.tk/?section=graphics
These OpenGL tutorials and code samples are quite small and meant for absolute newbies. All tutorials use GLUT for window management.
OpenGL step by step in BCB & Delphi (Chinese)
pinxue
http://www.pinxue.net/OpenGL/openglstepbystep.htm
Step by step tutorial for writing OpenGL program using Borland C++Builder. It is written in Simplified Chinese. Some example is written in Delphi.
OpenGL and Surface C++ projects
ziyoo
Mesh, CAD, OpenGL and Surface C++ projects and examples with sources
Shadow Mapping
Paul Baker
http://www.paulsprojects.net/tutorials/smt/smt.html
Explains the technique of shadow mapping using the ARB-approved shadow and depth texture extensions.
Space simulators and 3d engine tutorials
Damiano Vitulli
http://www.spacesimulator.net/tutorials.html
Step by step tutorials on how to create an OpenGL based 3d engine for a space simulator, from vertices definition to space fights!
Simple Bump Mapping
Paul Baker
http://www.paulsprojects.net/tutorials/tutorials.html
Explains how to implement bump mapping for a single diffuse light. Uses only ARB-approved, vendor-neutral OpenGL extensions.
threekings’ OpenGL section
Sebastian Schuberth
http://threekings.tk/layouts/pengine/?section=opengl
The OpenGL section of this site offers various small to medium ranged OpenGL coding examples, mostly using GLUT.
Martin’s OpenGL Shading Language Tutorials
Martin Christen
http://www.clockworkcoders.com/oglsl
Tutorials about uniform and varying variables, textures, per fragment lighting, color keys and more.
Learn How to Program 3D Graphics
Miguel A Sepulveda
http://mercury.chem.pitt.edu/~sasha/LinuxFocus/English/January1998/index.html
LinuxFocus reviews OpenGL 3D programming on Linux, from libraries intallation to hardware support and interfaces.
OpenGL Rendering and Drawing
http://www.oreillynet.com/pub/a/network/2000/06/23/magazine/opengl_render.html
A basic introduction on drawing and rendering objects and text using OpenGL
Preparing to Build an OpenGL Application
http://www.oreillynet.com/pub/a/network/2000/06/23/magazine/opengl_build.html
For Linux developers, covering the basics of building your first OpenGL program
Java Personal OpenGL Tutor
http://www.cs.uwm.edu/~grafix2/
An interactive tutorial series where each example program lets you interact to practice the concepts you have just learned.
Advanced OpenGL Texture Mapping
Nate Miller
http://www.flipcode.com/tutorials/tut_atmap.shtml
Covers the advanced features of OpenGL texture mapping features so you can control how your texture is stored internally, how it is filtered and how it is wrapped when applied to an object.
OpenGL Texture Mapping: An Introduction
Nate Miller
http://www.gamedev.net/reference/articles/article947.asp
Covers the basics of texture mapping in OpenGL including uploading of the texture to the video memory and the application of the texture onto geometry.
Nehe OpenGL Tutorials
Nehe
Tutorials that take your from beginning to advanced levels. (Versions for Win32 Mac, Linux and Java)
OpenGL Borland C++ Builder coding tutorials
Allan Peterson
http://allanpetersen.com/?cat=6
Tutorials based on NeHe Productions tutorials and ported to C++builder using my OpenGLAPPanel.
OpenGL Win32 Tutorial
http://www.nullterminator.net/opengl32.html
For the Windows programmer, covers header files and linking, device context, render context and more.
Nvidia Rendering Effects Samples
http://developer.nvidia.com/page/documentation.html
An extensive series of samples and demos showing simple and complex OpenGL effects using ARB and Nvidia extension
OpenGL Sample Programs written at E & S
Nate Robins
http://www.xmission.com/~nate/es.html
Sample code that demos texturing & blending, picking/selection, and texturing & lighting.
OpenGL Tutors
Nate Robins
http://www.xmission.com/~nate/tutors.html
Sample code covering fog, light position, light materials, transformations, and textures
BSP FAQ
/resources/code/samples/bspfaq/index.html
This FAQ about Binary Space Partitioning (BSP) Trees is intendedfor developers with working knowledge of computer graphics principles such as viewing transformations, clipping, and polygons, and of binary searching and sorting trees as covered in most computer algorithms textbooks.
Rendering Grids with OpenGL Evaluators
Mark Kilgard
/resources/code/samples/mjktips/grid/index.html
How to quickly render a graph paper-like grid. Grids are often used as backdrops for 3D models to get extra distance cues to the viewer.
Particle Sytems Rendered as OpenGL Points
Mark Kilgard
/resources/code/samples/mjktips/particles/index.html
This code shows a particle system rendered as OpenGL points with attenuation of point size based on eye distance.
OpenGL-rendered patchy planar reflections
Mark Kilgard
/resources/code/samples/mjktips/puddles/index.html
Reflections in puddles of water can add an extra eerie realism to first-person advantures. It is straightforward to render patchy planar reflections with OpenGL.
OpenGL-rendering of Underwater Caustics
Mark Kilgard
/resources/code/samples/mjktips/caustics/
Light hitting the rippling surface of the water creates focusing effects or "caustics" on underwater surfaces (such as the walls of a pool). These effects are straightforward to generate using a second blended rendering pass with OpenGL's texture coordinate generation functionality and some caustic texture patterns
An Application-specific OpenGL Benchmark Harness
Mark Kilgard
/resources/code/samples/mjktips/perf_harness/index.html
To help you quickly determine your application's real rendering speed on a given piece of hardware, it often helps to isolate the important rendering code in your application into a small application-specific benchmark.
OpenGL Projected Textures
Mark Kilgard
/resources/code/samples/mjktips/projtex/index.html
OpenGL GLUT-based source code demonstrating projected textures used to cast a spotlight or a "35mm slide" onto arbitrary surfaces
OpenGL-based Real-Time Shadows
Mark Kilgard
/resources/code/samples/mjktips/rts/index.html
This code demonstrates real-time shadows cast by object of arbitary shape onto arbitary geometry. The shadows are not the simple "planar shadow projections" but can be cast onto curved surfaces and can even be cast by objects with holes in them.
Virtualized OpenGL Light Sources for Efficient Multi-Light Source Lighting
Mark Kilgard
/resources/code/samples/mjktips/VirtualizedLights/VirtualizedLights.html
Virtualized light sources refers to having a large number of scene light sources are mapped dynamically to OpenGL's limited number of (potentially hardware accelerated) OpenGL light sources using per-vertex lighting.
Adaptive OpenGL Performance: isfast and pdb - an OpenGL performance database
Mark Kilgard
/resources/code/samples/mjktips/isfast/isfast.txt
When you're writing an OpenGL application, how do you know whether a particular feature (like depth buffering or texture mapping) is fast enough to be useful? Measure it.
Using Sam Leffler’s libtiff with OpenGL and GLUT
Mark Kilgard
/resources/code/samples/mjktips/libtiff/index.html
OpenGL's texture mapping and pixel processing facilities make it an excellent hardware acceleratable image processing API. This page shows how to write OpenGL programs that read, display, and write TIFF image files.
Rendering a Magic Halo with OpenGL
Mark Kilgard
/resources/code/samples/mjktips/StenciledHaloEffect.html
OpenGL provides rendering capabilities that enable real-time halo effects around 3D objects within your game scene that can also combine with other OpenGL rendering techniques
Shadows, Lighting, Reflections, and Textures all at Once
Mark Kilgard
/resources/code/samples/mjktips/TexShadowReflectLight.html
How OpenGL provides all the rendering functionality needed to combine texturing, lighting, reflections, and shadows all in a single scene.
Achieving Quality PostScript output for OpenGL
Mark Kilgard
/resources/code/samples/mjktips/Feedback.html
How to use OpenGL's feedback mechanism to generate resolution independent versions of scenes rendered by OpenGL programs.
Rendering Fast reflections with OpenGL
Mark Kilgard
/resources/code/samples/mjktips/Reflect.html
OpenGL has all the features needed to render fast high-quality reflections on planar surfaces. Artifact-free planar reflections require 3D transformations, blending, and stenciling.
Fast OpenGL-based “in place” scale & bias technique
Mark Kilgard
/resources/code/samples/mjktips/InPlaceScaleAndBias.html
A scale & bias operation lets an application quickly adjust the contrast and/or bightness of an image. "In place" refers to a scale & bias *after* texture filtering.
Texfont GLUT-based library for creating fonts out of textures
/resources/code/samples/glut_examples/texfont/texfont.html
Programs to show the texture encoding and texture mapping using Texfont and GLUT
MUI portable interface using GLUT
/resources/code/samples/glut_examples/mui/mui.html
The MUI portable user interface written in OpenGL with GLUT.
GLUT demos using Mesa 3D library
/resources/code/samples/glut_examples/mesademos/mesademos.html
GLUT versions of the demonstration programs that come with the Mesa 3D library.
GLUT distribution example programs
/resources/code/samples/glut_examples/examples/examples.html
Example programs that are part of the GLUT distribution
GLUT demos from “Advanced Programming in OpenGL” course
/resources/code/samples/glut_examples/demos/demos.html
Demos from the "Advanced Programming in OpenGL" course at SIGGRAPH '96
GLUT distribution contributed samples
/resources/code/samples/glut_examples/contrib/contrib.html
Programs that were contributed to the GLUT distribution
GLUT samples from “Advanced Programming in OpenGL” course
/resources/code/samples/glut_examples/advanced/advanced.html
Programs from the "Advanced Programming in OpenGL" course at SIGGRAPH '96 + a few more that snuck in
This page has been viewed 1236499 times •
