OpenGL® Examples



GLUT - Advanced

View Image Description View Source
accumaa.jpg
(anti-aliased)

accumaa1.jpg
(aliased)
Using the accumulation buffers to anti-alias a scene. accumaa.c
af_depthcue.jpg
(fog added by second pass)

af_depthcue1.jpg
(fog rendered normally)
Adding depthcue (fog) in a second rendering pass. af_depthcue.c
af_teapots.jpg
(linear fog)

af_teapots1.jpg
(linear fog added by second pass)
More detailed example of adding fog in a second rendering pass. af_teapots.c
convolve.jpg
(5x5 blur)

convolve1.jpg
(laplace transform)
Using the accumulation buffer for fast convolutions. convolve.c
boundary.jpg This example shows how to use the GLU polygon tessellator to determine the 2D boundary of OpenGL rendered objects. The program uses OpenGL's feedback mechanim to capture transformed polygons and then feeds them to the GLU tesselator in GLU_TESS_WINDING_NONZERO and GLU_TESS_BOUNDARY_ONLY mode. boundary.c
csg.jpg
(A or B)

csg1.jpg
(A sub B)
Composite solid geometry using the stencil buffer. csg.c
decal.jpg Decaling the letter "T" using the stencil buffer. decal.c
dissolve.jpg Dissolving using the stencil buffer. dissolve.c
envphong.jpg
(sphere)

envphong1.jpg
(checkerboard torus)
Demonstrates a use of environment texture mapping for improved highlight shading. envphong.c
field.jpg
(depth of field)

field1.jpg
(normal)
Using the accumulation buffer for depth of field (camera focus blur). field.c
genmipmap.jpg Example of how to generate texture mipmap levels with the accumulation buffer. genmipmap.c
haloed.jpg Draw haloed lines using the stencil buffer. haloed.c
hello2rts.jpg Demonstrates a method of generating real-time shadows. hello2rts.c
hiddenline.jpg Line Rendering: Hidden line techniques. hiddenline.c
imgproc.jpg Examples of various image processing operations coded as OpenGL accumulation buffer operations. imgproc.c
mipmap_lines.jpg Survey of different mipmap filters. mipmap_lines.c
motionblur.jpg Using the accumulation buffer for motion blur. motionblur.c
multilight.jpg This program demonstrates virtualization of OpenGL's lights. The idea is that if an object is lit by many lights, it is computationally more efficient to calculate the approximate lighting contribution of the various lights per-object and only enable the "brightest" lights while rendering the object. This also lets you render scenes with more lights than the OpenGL implementation light (usually 8). Two approaches are used: The "distance-based" approach only enables the 8 closest lights based purely on distance. The "Lambertian-based" approach accounts for diffuse lighting contributions and approximates the diffuse contribution. multilight.c
projshadow.jpg
(shadows)

projshadow1.jpg
(no shadows)
Rendering shadows using projective transforms. projshadow.c
projtex.jpg
(cube)

projtex1.jpg
(three sides)
Demonstrates simple projective texture mapping. projtex.c
rasonly.jpg Demonstrates the use of OpenGL for rasterization-only, with perspective-correct texture mapping. rasonly.c
shadowfun.jpg
(shadows)

shadowfun1.jpg
(view from light)
This program demonstrates a light source and object of arbitrary geometry casing a shadow on arbitary geometry. The program uses OpenGL's feedback, stencil, and boundary tessellation support. shadowfun.c
shadowvol.jpg Demonstrate shadow volume techniques. shadowvol.c
silhouette.jpg Generating silhouette edges with the stencil buffer. silhouette.c
softshadow.jpg
(soft shadows)

softshadow1.jpg
(no shadows)
Demonstrate the use of accumulation buffer to create soft shadows. softshadow.c
tess.jpg
(geodesic)

tess1.jpg
(longitude/lattitude)
Different tesselations for a spherical shape. tess.c
textile.jpg Demonstration of how to "tile" together small textures with a result identical to if a much larger texture was drawn. textile.c
textrim.jpg
(alpha tested)

textrim1.jpg
(no alpha blending/testing)
Trimming textures: demonstrates how alpha blending or alpha testing can be used to "trim" the shape of textures to arbitrary shapes. textrim.c
tvertex.jpg T-vertex artifacts example. The moral: Avoid vertex edge junctions that make a T-shape. tvertex.c
warp.jpg Image warping operations can be done via OpenGL texture mapping. warp.c
zcomposite.jpg Compositing images that include depth information. zcomposite.c