Short: C Code for Interactive 3D Graphics Author: mps4466@ultb.isc.rit.edu (Michael P. Schenck) Uploader: mps4466 ultb isc rit edu (Michael P Schenck) Type: gfx/3d Architecture: m68k-amigaos This software package was developed to provide the tools needed to construct, visualize, and interact with a virtual environment. The environment is generated from a series of primitives called models which are linked together and controlled through a hierarchial display map to create objects. There can be multiple objects and any number of nodes (action blocks) within a single object that link the primitives together. The view into the environment is controlled through a view structure which when reconfigured is used to display the next frame of graphics. The view is a simple "camera" implimentation using spherical coordinates and parameters for far and near clipping planes. Other functions available in the library include a pause function and a getinput function. The get input function will grab a character from the keyboard in a wait or nowait mode. The current implimentation of the renderer only supports drawing a wireframe output. Clipping is done on a "whole" polygon basis which means that if any of a poly's verticies are outside the clipping limits (view volume) then the entire poly is removed. This can create annoying visual artifacts if a poly is very large and near to the viewpoint. The library uses a floating point environment and therefore requires a math coprocessor to attain usable frame rates. To give an example of speed, a scene with 18 objects composed of 261 verticies (217 polys) is rendered 1000 times. While each frame is rendered, the viewpoint is moved around the scene. On an A4000/040, this demo completes in 50 sec which is an average of 20fps. On any other machine, the frame rate is usually less than half. This is due to the 040's ability to do FPU operations in parallel with CPU operations. The library is not very useful on anything except an 040 based machine because of the floating point environment. It will multitask well with the operating system and doesn't hog the blitter. The code is really just a small hack I wrote a while ago! I am working on a much larger C++ VR Toolkit for the AMIGA. The toolkit will be an extensive collection of classes and functions that will allow easy construction of interactive 3d environments. If you are interested in the development of a public domain VR Toolkit for the AMIGA, read the notice in this release and respond to it! I am looking for talented people who are interested in the development of powerful PD (and possibly beyond) VR authoring software for the AMIGA.