OpenGL | Games-Demos | OpenGL Performer


REFLECTION

This code was ported to C++ from Delphi and originates from the Reflection Demo on the site http://www.exsanity.freeola.com/opengl.html (Original Delphi code by Phil Freeman). It demonstrates how to mirror geometry on a plane.
A simple reflection demo which does not use the stencil buffer but instead renders the reflection to a texture using glCopyTexSubImage2D and then maps the texture onto the mirror using gluProject. No need for stencil buffer or reflection of the camera below the plane as in other methods.
Compiles for Windows and most Unixes. Based on GLUT.

Windows Executable.
Source Code.

Note: Needs GLUT Library installed.


BICUBIC SURFACE PATCHES

The knot shown in the picture on the right side  was done using Ferguson Patches which is a form of Bicubic Surface. The concept behind Bicubic patches is that in order to build a smooth representation of an object such as the one above we do not need to store thousands of small polygons to draw the object.
Instead we store a very coarse mesh of points which lye on the surface and interpolate along them to find as many interior points (new point which lie between two original points) as we want. We can then draw the object forming again polygons or using lines. The most common form of interpolation Bicubic interpolation, and in 3D there are various methods to interpolate between 4 points to find any interior point and form a patch, some are Hermite Patches, Bezier Patches, B-Spline Patches and Ferguson Patches. This program draws this knot and rotates it using 2 methods of Bicubic patch interpolation.

Windows Executable.
Note: Needs  GLUT Library installed.


CUBIC SPLINES

This program fits a curve through the specified points, it is an example of curve interpolation using cubic spline interpolation.
Once executed choose 1 for display and interactive change of a curve (spline), the other 2 choices (2,3) display how a spiral and a cubic polynomial are interpolated. Initially there are 3 points, moving the cursor over a point and holding down the left mouse button the point can be moved to a new position, pressing the right mouse new points get inserted at the specified position. A curve is always interpolated through the existing points. Uses GLUT.

Windows Executable
Note: Needs GLUT Library installed.


RAYTRACER

Implementation of a raytracer, which reads the scene to render from a scene ASCII file. Supports

  • Variable amount of Depth reflections

  • Ambient, Diffuse and Phong lighting

  •  Shadows, Reflections and infinite amount of lights.

  • CSG operations.

  • Bounding sphere speedup for rendering and interactive navigation.

  • Shapes which can be rendered are spheres, planes, cubes, pyramids, quads, triangles and triangle meshes.

OpenGL is only used only for drawing 2D pixels on the screen and GLUT for setting up a window.

Windows Executable with scene files.
Note: Needs Glut Library installed.


VECTORCALC

VectorCalc is a simple yet efficient tool for computing the normal vectors at the Edges of a plane. The plane is centered at (0,0,0) and can be rotated arbitrarily around the primary axes. The normals can also be rotated around the axis formed by the edge they start from.
VectorCalc was primarily developed for finding the normal pointing vectors of SonicStrip Beacons of InterSense trackers, mounted on projection walls or other locations. SonicStrip Beacons are used for setting up tracking at VR installations or installations which require tracking. But it may be also usefull in other fields of application, where the normals of arbitrarily oriented planes have to be computed. There are Linux, Irix and Windows versions available.



Windows Executable
Note: Needs GLUT Library installed.


TEXSYNTHESIS

TexSynthesis can be used for easy creation of Terrain Textures. It takes as input the elevation data of the terrain region as a greyscale bitmap and outputs the created terrain texture for saving after previewing it on a 3D of the actual terrain with this texture.
The texture is created by specifying various terrain types (by specifying an image file or just a color) for various regions of the terrain using elevation and slope. Smooth transitions between various terrain types can be specified for blending. All the specified texture maps, colors and the information for the terrain regions regions are combined and blended onto the terrain map data to produce a final texture map with lighting and shading already precomputed (optional).


DAYSKY EDITOR

Implementation of an procedural DaySky simulation based on the Paper "Analytic Model of DaySky" by Preetham et.al.
Colors on any point on the SkyDome are computed by the DaySky model which takes into account the sun position and other weather factors such as turbidity, exposure, gamma and a specifically introduced model which enhances the colors at sunset/rise. After sunset a basic Night Sky model is computed which also features Stars and Moon. The position of the sun and all of the weather attributes can be animated to have animating sunset/rise with change of weather conditions. The color of the Sun as light source is also computed in order for objects under the SkyDome to be lighted correctly even at Night.
This editor allows preview real-time preview and simulation of the SkyDome and the lighting conditions on any objects.


CAL3D ANIMATION LOADER/VIEWER

Preview skeleton and inverse kinematics animation with mesh, material and lod data exported in Cal3D animation format using the Cal3D SDK. The Cal3D animation format can be exported using plugins from Max and Maya. The Models animations can be previewed and be customized and blended together changing their animation cycle, speed and timings for smooth transitions. Bounding Box, Mesh and Skeleton data can also be displayed for information. Provides SDK for easy integration into OpenGL applications.


XSI LOADER/VIEWER

Load and Preview models in dotXSI 3.0 and 3.6 format. Loads and displays mesh and material data with info. Provides SDK for easy integration into OpenGL applications.