e y 6 e s : home interface panel : tiny3d
Download class files and documentation: 'tiny3d.zip'
Download source code: 'tiny3dsrc.zip'

Tiny3D is a 3D object slide show; the objects displayed are rendered with texture mapped, environment mapped, perspective correct, Gouraud shaded, w-buffered triangles. Textures and object descriptions are loaded asynchronously in a dedicated thread while the primary thread transforms and rasterizes the current object's primitives for display. The objects are lit by a single directional light, and a crude approximation of accumulation buffer blending increases the apparent smoothness of each object's movement.

Please note that the entire rendering process is performed in real time, and completely implemented in Java; the Java VM provides the frame buffer interface (via the MemoryImageSource class), and my code does the rest.

The objects to be displayed are listed in an applet parameter, as are their associated textures. The geometry files read are text files following a simple format wherein a numbered list of vertices (positional vectors and texture coordinates) is followed by a set of indices into the vertex list--three indices for each triangle. Additionally, several control parameters can be listed to affect the object's display and rotational velocity. The applet generates normals automatically for each vertex by averaging the plane normals of all triangles adjacent to the vertex.
Questions? Comments?