OpenGLContext Documentation
This document collects OpenGLContext-specific
documentation. The main PyOpenGL
documentation collection includes links to both PyOpenGL and OpenGL
documentation which will be of use to the OpenGLContext programmer as
well.
OpenGLContext-Specific Documentation
There is little OpenGLContext-specific documentation at the moment.
The most useful items are probably the rendering process
description, and the pydoc-generated reference. The NeHe tutorial
translations should be useful for beginning OpenGL programmers.
- Tutorials --
Documentation for users unfamiliary with OpenGL
- NeHe translations
- Introduction to Shaders
- The Rendering Process -- The
rendering algorithm(s), including the scenegraph traversal mechanism(s),
used by OpenGLContext when rendering a scene
- Using VRML97 -- Tutorial on using the
(partial) VRML97 loader and the nodes it creates
- PyDoc References (Automatically generated
documentation)
- Structural Overview --
OpenGLContext's architecture and implementation
- Rendering Text -- Overview of the Text and
FontStyle scenegraph nodes, general notes regarding support of text in
OpenGLContext
- Using Numeric Python -- Overview
of using Numeric Python within OpenGLContext (and PyOpenGL), with
emphasis on the basics of Numeric Python, rather than PyOpenGL specifics.
Sample Code (Where to Look)
The râison d'être (apologies for my rusty French) for OpenGLContext is to
provide a platform for testing and sample code, so you'll find a lot of
it lurking about in the project. In particular, you can find
sample code for:
- NURBs objects, including surfaces and curves, with trimming
- Usage sample: tests/molehill.py
- GLU polygon tessellation
- scenegraph/polygontessellator.py
- Polygon-sorting by screen depth
- passes sub-package, flat.py and passes.py
- Multi-texturing
- Saving buffers to disk (screen capture)
- Select-buffer-based mouse interactions
- tests/selectrendermode*.py
- Particle-systems
- tests/particles_simple.py
- Generic node-rendering code (scenegraph sub-package)
- Partial implementations of many VRML97 nodes
- IndexedFaceSet -- polygonal geometry
- IndexedLineSet -- sets-of-lines
- PointSet -- points (including point-sprite support)
- Transform, Group, Switch -- bounding-box and culling aware grouping nodes
- Background -- minimalist VRML-style backgrounds
- Sphere, Cone, Cylinder -- VBO-based rendering/generation of quadric geometry (not GLU based)
- Teapot -- GLUT based teapot geometry
- Box -- Simple VBO-based box geometry
- Extrusions -- GLE-based tubing and extrusion
- Gear -- trivial gear-rendering geometry
- Nurbs -- Blaxxun-style VRML97 NURBs geometry
- ImageTexture, Material, Appearance -- generic material properties
- Lights -- the various VRML97 light types
- Shader-based Geometry -- overly-flexible mechanism for loading shader/vbo based geometry as node-graphs
- TimeSensor, Interpolators -- animation support
- Viewpoint -- currently just "define a position" usage, does not support animating camera
- Text (rough)
- Usage sample: tests/solid_font.py
- scenegraph/text/toolsfont.py (font rendering using OpenGL)
- TTFQuery package (font metadata and outline extraction)
- Various bitmap text modes
- Position manipulations (move sub-package)
- Logo-like
forward/backward/up/down/turn
- Examine/orbit modes
- Animated movement (smooth-movement)
- PIL-to-texture loading (texture.py)
- Display-list management code (displaylist.py)
- Stencil-buffer-based shadow rendering (defunct)