BPC: Art and Computation – Summer 2007 DAFFIE Technical Presentation Erik Brisson
BPC: Art and Computation – Summer Outline
3 What's in a virtual world?
BPC: Art and Computation – Summer What's in a virtual world? An environment Representations of physical objects –Visual models –Auditory elements Interactions with objects Representations of people - avatars Communication –Gesturing –Telephony –Video
BPC: Art and Computation – Summer Our goals with DAFFIE Distributed Interactive Visually and aurally rich Input (models, images and sounds) from variety of available tools Simple import method Script driven Accessible to non-expert users Extensible by programmers
BPC: Art and Computation – Summer Traditional animation Sequence of frames Hand drawn or “captured” Hand drawn or “captured”
BPC: Art and Computation – Summer Animation example - 3D models Model sequence What is changing? –Shape –Elements movement Rotation Scale –Whole object Movement Rotations Scale
BPC: Art and Computation – Summer Design decision - animation by model sequences Allows importation of work from many sources Allows reasonable method of animation Allows input from many tools –Allows artists to create using their favorite software –E.g., Maya, Lightwave3D Gives simple import methodology –Uses Performer loader Avoids import of behavior (avoids programming)
BPC: Art and Computation – Summer Animation - arp scripts Allows control without programming –Developed quickly, early on for class project –Simple, has been used many times Control –Position –Rotation –Scale Timing of playback
BPC: Art and Computation – Summer arp script example: basic sequence arp 2.0 name clusterseq geom_path./ playspeed 10 frame geom_show clustergeom0000.obj frame geom_show clustergeom0001.obj frame geom_show clustergeom0002.obj frame geom_show clustergeom0003.obj end
BPC: Art and Computation – Summer The DAFFIE scene graph The world-room-group-sequence hierarchy
BPC: Art and Computation – Summer D Coordinate system
BPC: Art and Computation – Summer arp scripts: arproom file arproom 2.0 name cart-models enter_xyz enter_hpr group_xyz group_hpr group_path../models/purple_cube/ group purple_cube.arpg group_xyz group_hpr group_path../models/blue_cube/ group blue_cube.arpg group_xyz group_hpr group_path../models/orange_sphere/ group orange_sphere.arpg end
BPC: Art and Computation – Summer arp script: arpgroup file arpg 2.0 name gbdog geom_size 1.0 geom_path./ geom_hpr geom_xyz geom_rep dog0.obj trigger_method cycle seq_path./ seq_hpr seq_xyz seq_file gbdog.seq end
BPC: Art and Computation – Summer arp script example: basic sequence arp 2.0 name clusterseq geom_path./ playspeed 10 frame geom_show clustergeom0000.obj frame geom_show clustergeom0001.obj frame geom_show clustergeom0002.obj frame geom_show clustergeom0003.obj end
BPC: Art and Computation – Summer darp script example: move object frame geom_show pot21.iv geom_xyz geom_hpr geom_show drop21.obj frame geom_show pot22.iv geom_xyz geom_hpr geom_show drop22.obj
BPC: Art and Computation – Summer arp example: change object size arp 2.0 name benThorn_seq geom_path./ playspeed 4 sound_path../configs/ frame geom_scale geom_show btw1.obj frame geom_scale geom_show btw1.obj frame geom_scale geom_show btw1.obj frame geom_scale geom_show btw1.obj
BPC: Art and Computation – Summer Design decision - sound clips Simplicity Gives simple import methodology Allows input from many tools Uses commonly available format (.aiff)
BPC: Art and Computation – Summer Example - adding sound frame geom_show clustergeom0000.obj sound_xyz_stereo sound_move h2o4.aif sound_trigger h2o4.aif frame geom_show clustergeom0001.obj sound_xyz_stereo sound_move h2o4.aif frame geom_show clustergeom0002.obj sound_xyz_stereo sound_move h2o4.aif
BPC: Art and Computation – Summer The view frustum What you actually see Units matter (DAFFIE uses feet)
BPC: Art and Computation – Summer Navigation - user experience The 6 degrees of freedom How map onto various input devices Communication with viewer (old model) –direct sending of xyz,hpr wand motion to viewer
BPC: Art and Computation – Summer The DAFFIE event system Communication between agents
BPC: Art and Computation – Summer Triggering objects Light stick (by viewer) Proximity (by viewer) Proximity (by agent) Other (by agent) The trigger event
BPC: Art and Computation – Summer World state and events Object descriptions Trigger Transforms Switches Navigation Sound Video Etc.
BPC: Art and Computation – Summer Agents and events Using events to control elements of the world –Triggering sequences –Moving objects –Changing rooms –Navigation
BPC: Art and Computation – Summer Navigation by agent sending events New model - sending of transform matrices to viewer Keeping track of avatars
BPC: Art and Computation – Summer Telephony Telephony collector agent –Gets audio stream from microphone –Chops into sound samples –Sends sequence of sound samples Sound server –Receives sequence of sound samples –Reassembles audio stream from sound samples –Sends reconstructed audio stream to speakers
BPC: Art and Computation – Summer Video texture maps Video as sequence of images Video generator –Sends sequence of images Viewer –Receives sequence of images –Uses texture mapping on an object in scene
BPC: Art and Computation – Summer Stereo displays Physical issues and camera issues –Using polarizing filters –Setting up the view –What looks closer vs further –Relative position to the screen and viewer
BPC: Art and Computation – Summer Tiled walls Issues and differences –Head node vs render nodes –Event management / avatars / triggering –Virtual cameras –Alignment
BPC: Art and Computation – Summer The End