A poster, JakobProgsch, over on the TigSource forums has made a series of OpenGL samples available on GitHub. Each example is contained in a single file, doesn’t depend on any non-canonical libraries or hide code behind a framework. As a results the examples are a bit longer, but easier to follow.
The following topics are covered ( description taken from each file header ).
Skeleton code that all the other examples are based on
This example shows the setup and usage of shaders and a vbo+vao
This example shows the setup and usage of shaders and a vbo+vao In this example the attrbute locations are set via BindAttribLocation instead of layout qualifiers in the shaders
same as the "Shader and VBO" example, only with an indexed vbo.
apply a texture to the fullscreen quad of "Indexed VBO"
set up a perspective projection and render a rotating cube
render the cube from the perspective example to a texture and
apply fxaa antialiasing to it.
create 8 instances of the cube from the perspective example
with an additional offset buffer and AttribDivisor
create 8 instances of the cube from the perspective example
the difference to the instancing1 example is that we are
using a texture buffer for the per instance data instead of a
vertex buffer with divisor.
create 8 instances of the cube from the perspective example
the per instance data is passed with a uniform buffer object
Uses a geometry shader to expand points to billboard quads.
The billboards are then blended while drawing to create a galaxy
made of particles.
This example uses the geometry shader again for particle drawing.
The particles are animated on the cpu and uploaded every frame by
mapping vbos. Multiple vbos are used to triple buffer the particle
data.
This example simulates the same particle system as the buffer mapping
example. Instead of updating particles on the cpu and uploading
the update is done on the gpu with transform feedback.
This example renders a "voxel landscape/cave" from the view of a
moveable camera. Occlusion queries and conditional rendering are used
to cull occluded parts of the world and timer queries are used
to measure the performance.
Hope he keeps them coming, good OpenGL resources are scarce.
Edit: 7/5/2012 Fixed links and added 14th sample, which by the way, is a bit of a monster.