Requirements/Setup

This tutorial introduces modern, low-level 3D rendering techniques. It tries to avoid the use of "legacy" OpenGL entry points as much as possible. Though legacy OpenGL is likely to be supported on most desktop/laptop hardware for the foreseeable future, their use is technically discouraged.
We assume you know:

Package Installation

This tutorial requires at least the following packages:
For platforms other than Win32 I recommend using virtualenv environment in order to run this tutorial, as many of the packages above are not available in distribution packaging systems yet. Numpy is normally available on Linux platforms with a recent build, so you may wish to use the platform build.
To set up the packages on a Linux Machine using virtualenv:
"""apt-get install python-virtualenv python-numpy python-imaging # for virtualenv >= 1.7 the --system-site-packages is required to # include the system-level packages... virtualenv --sytem-site-packages tutorial virtualenv tutorial # older virtualenvs source tutorial/bin/activate # The -I flag ensures we are installed in this virtualenv pip install -I http://sourceforge.net/projects/fonttools/files/2.3/fonttools-2.3.tar.gz/download pip install -I TTFQuery PyOpenGL PyOpenGL-accelerate pip install -I pydispatcher PyVRML97 PyVRML97-accelerate pip install -I simpleparse pip install -I OpenGLContext """
You'll need to have GLUT, GLE and the like installed via your system's package manager. See the OpenGLContext installation notes for details.

System Requirements

This tutorial requires a very modern OpenGL implementation. Your card/driver should likely support OpenGL 2.x natively, though OpenGL 1.5+ extensions may work.
It is known *not* to work on the following theoretically capable configurations:
Note that there are alternative code-paths that can be used, but that the tutorial does not currently explore those paths in the interest of making the introductory tutorial easier to follow.
This code-walkthrough tutorial is generated from the shader_intro.py script in the OpenGLContext source distribution.