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.