DESCRIPTION
Programs in this directory are used as sample source code in
lecture/lab
or as sample solutions to lab activites.
NOTE
Many of the programs expect to load models from /usr/share/Performer/{data,friends}. Spare copies of these models have been provided under ../{pf_data,pf_friends} and the programs will look in these directories, too, to find the models. If these programs fail because neither set is available, you will get an error message like the one below:
PF Warning/Resource(2): file church.flt not loaded. PF Fatal/Usage: Failed to read church.flt
PROGRAMS DESCRIPTIONS ======== ================ Basics ---------------- basic.c Simple programs to view a model. spin.c Viewer program that makes model spin. basicWin.c Rewrite of basic.c. Adds better windowing behavior and allocates items from shared arena. ../labs/sim.c Simple fly program. eskyFly.c Adds an earth/sky model to sim.c to give the appearance of a flying over (flat) terrain. Modeling Xforms ---------------- dcsFly.c Basic eskyFly.c program w/ 2 indep. models each controlled by a DCS node. orbitFly.c Remake of dcsFly.c w/ 3 dependent models. Uses SCS nodes for fixed displacements and DCS nodes for ones that change over time. pathFly.c eskyFly.c program using a simple city. Two objects: the esprit car and the blimp, follow their own paths during the simulation using pfuPath. Try the <v> key to ride along on one of these vehicles. Graphics State ---------------- fogFly.c Simple modification to pathFly.c to add global fog to the scene. Creating Geometry ----------------- geomFly.c Adds simple quads (to be used later as billboards) via libpr and pyramids (as road pylons) via libpfdu calls to pathFly.c. texFly.c Adds tree texture to quads in geomFly.c. More Nodes ------------------ bboardFly.c Converts trees in texFly.c to billboards so that trees do not look flat textFly.c Adds 3D text to bboardFly.c cloneFly.c Uses cloning to copy a dynamic crane model added to bboardFly.c. The 2 cranes move independently even though one is a copy and shares the same geometry. lpsFly.c Adds light point states as road lights to cloneFly.c. morphFly.c Adds a simple morph node that distorts a quad to cloneFly.c. Traversals & Callbacks ---------------------- chanGrpFly.c Divides cloneFly.c into 3 dep. channels (left view, front view, right view). driving.c Converts fly model used in cloneFly.c to a driving model and adds collision detection with objects and added terrain. lightchange.c Modifies cloneFly.c so that lit objects can toggled their lighting status with the <l> key. Uses draw callback to make the change. Also preloads textures at start-up. channels.c Simultaneously displays normal and car view from cloneFly.c in two independent channels. The car front is removed from the car channel via a node mask. firefly.c Uses picking to highlight objects in the scene from cloneFly.c. To pick an object, use the spacebar while pointing to an object. The <w> allows you to to cycle between highlighing, wireframe, or fire as the result of picking. appFly.c Uses app callback to make text from textFly.c spin. dbFly.c Uses database process to dynamically add and remove models from cloneFly.c's scene graph. Keys <1>-<4> add models. Keys <6>-<9> remove them. Performance & Stats -------------------- statsFly.c Adds statistics collection and display to cloneFly.c. Use the <s> key to toggle stats display and the <p> key to cycle through phase control.
Documentation
Reference