Part of the Khronos Group

NOTE: This page contains old archived material and may not be relevant anymore.

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

http://www.pixeltangent.com

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

http://www.gsulinux.org/~plq

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

http://www.swiftless.com/

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

http://www.zeuscmd.com

Tutorials on many subjects including OpenGL, OpenGL ES and C++. Frequently updated.

OpenGL and Surface C++ projects

ziyoo

http://www.ziyoo.com

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

http://www.red3d.com/cwr/npr/

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

http://www.codersource.net/

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

http://paulyg.f2s.com/ogl.htm

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

http://www.ziyoo.com

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

http://nehe.gamedev.net/

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 •

Column Header
Column Footer