Scientific Computing and Visualization Group
This documents will tell you how to navigate in the virtual space, and tell you how to set up the command line options you will need to run the viewer:
The three “mouse” buttons on the hand-held input device (e.g., CAVE wand) are used for navigation and interaction. (Note that the joystick is not used.) At this point in the DAFFIE development the use and modes of these three buttons are built into the code.
- Left button: navigation. Movement in the environment is accomplished by depressing and holding down the left button. As long as you hold the button down, the position and orientation of the wand controls the current translational and angular velocity of your motion. Imagine that you are piloting a little spacecraft. Suppose you press the left button down, then move the wand up. You and your spacecraft move up. If you rotate the wand to left, you will turn to the left, and so on. When you release the button, you remain in that position and orientation.
- Middle button: reset. If you press the middle button once, you are automatically returned to the “entry” position and orientation in your current room. If you press it twice, you return to the initial room and are reset to its original entry position and orientation.
- Right button: trigger beam / pointer. As long as this button is held down, a yellow stick or laser beam extends from your hand. When the button is released, the program checks to see if any triggerable object was hit by the beam. If so, a trigger event is sent to all clients to trigger that object. Note that the picking action happens at the time of button release.
These are command line arguments for the bvdarp program.
|-pfmultiprocess||Sets the Performer multiprocessing mode, using the symbolic tokens PFMP_APPCULLDRAW, PFMP_APPCULL_DL_DRAW, PFMP_APP_CULLDRAW, PFMP_APP_CULL_DL_DRAW, PFMP_APPCULL_DRAW, PFMP_APPCULLoDRAW, PFMP_APP_CULL_DL_DRAW, PFMP_APP_CULL_DRAW, PFMP_APP_CULLoDRAW, PFMP_DEFAULT|
|-pfsharedarenasize nbytes||Set shared arena size|
|-pfsemaarenasize nbytes||Set shared semaphore arena size|
|DISTRIBUTED SYSTEM OPTIONS|
|-bvdist serverhost[:port]||Set the event server. port is an optional port number – the default port is 9000.|
|-bvtelephony telephony_host||Set host which will generate telephony for this viewer’s avatar.|
|-efsoff||Do not accept any file service transfers (currently used for video streams)|
|-efson||Accept any file service transfers (currently used for video streams), the default is to have this on.|
|-initsound soundhost||Set host name for the viewer’s local sound server.|
|-urtimeout seconds||In distributed mode, set the number of seconds to wait before assuming that this client is the first viewer attached to the event server. Only to be used for testing, when the user is positive there are no other clients which use global state already attached to the event server.|
|VIEWER FILE OPTIONS|
|-arppath path||Set the relative path to find arproom files.|
|-arproom roomfile||Read an arproom file.|
|-arpreadseq_on||Read in arp sequence files (this is the default)|
|-arpreadseq_off||Do not read in arp sequence files (occasionally useful for testing)|
|-arpreadseq_nth nth||Read every nth frame in all sequences (0 or 1 read all files – this is the default). Note that this value can be set on a per-sequence basis within individual arp sequence (.arp) files.|
|-arpseqwrite seqgroupname seqname fname||Write out an entire sequence in .pfb format. Do this once, then add the usepfb line to the arp sequence (.arp) file. Dramatically increases load time. seqgroupname is the name defined in a .arpg file, seqname is the name defined in a .arp file, fname is the name of the .pfb file to write.|
|-lamb r g b||Set r,g,b ambient values for lighting commands which follow.|
|-ldiff r g b||Set r,g,b diffuse values for lighting commands which follow.|
|-lamb r g b||Set r,g,b specular values for lighting commands which follow.|
|-poslight||lights defined after this will be positional light sources (this is the default).|
|-dirlight||lights defined after this will be directional light sources.|
|-scenelight x y z||create a light in scene coordinates.|
|-cam x y z||create a “camera” light in coordinates attached to the user, i.e., in physical cave coordinates.|
|AUXILIARY GEOMETRY OPTIONS|
|-axes||Place axes at the scene origin. A red cylinder one unit long represents positive X. A green cylinder one unit long represents positive Y. A blue cylinder one unit long represents positive Z.|
|-show_trigger_spheres||Display the spheres which are used for triggering groups, as wireframes.|
|-show_grab_spheres||Display the spheres which are used for grabbing objects, as wireframes. (Note that grabbing is not implemented in the current release.)|
|-avhead groupname||Specify group name (name field in .arpg file) for geometry to use for this viewer’s avatar head. Must not be the same as any other avatar in the distributed system.|
|-avhand groupname||Specify group name (name field in .arpg file) for geometry to use for this viewer’s avatar hand. Must not be the same as any other avatar in the distributed system.|
|-avbody groupname||Specify group name (name field in .arpg file) for geometry to use for this viewer’s avatar body. Must not be the same as any other avatar in the distributed system.|
|-navtransspeed speed||A scale factor to use for translational speed, in ft/sec.|
|-navrotspeed speed||A scale factor to use for rotational speed, in deg/sec.|