310 likes | 425 Views
DAFFIE Technical Presentation. Erik Brisson ebrisson@bu.edu. Outline. What's in a virtual world?. What's in a virtual world?. An environment Representations of physical objects Visual models Auditory elements Interactions with objects Representations of people - avatars Communication
E N D
DAFFIE Technical Presentation Erik Brisson ebrisson@bu.edu
Outline BPC: Art and Computation – Summer 2007
What's in a virtual world? BPC: Art and Computation – Summer 2007
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 2007
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 2007
Traditional animation Sequenceof frames Hand drawn or “captured” BPC: Art and Computation – Summer 2007
Animation example - 3D models • Model sequence • What is changing? • Shape • Elements • movement • Rotation • Scale • Whole object • Movement • Rotations • Scale BPC: Art and Computation – Summer 2007
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 2007
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 2007
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 2007
The DAFFIE scene graph The world-room-group-sequence hierarchy BPC: Art and Computation – Summer 2007
3D Coordinate system BPC: Art and Computation – Summer 2007
arp scripts: arproom file arproom 2.0 name cart-models enter_xyz 3.0 4.0 4.0 enter_hpr 30.0 -98.0 0.0 group_xyz 0 0 0 group_hpr 0 0 0 group_path ../models/purple_cube/ group purple_cube.arpg group_xyz 2 -4 0 group_hpr 60 0 0 group_path ../models/blue_cube/ group blue_cube.arpg group_xyz -3 -5 2 group_hpr 0 0 0 group_path ../models/orange_sphere/ group orange_sphere.arpg end BPC: Art and Computation – Summer 2007
arp script: arpgroup file arpg 2.0 name gbdog geom_size 1.0 geom_path ./ geom_hpr 0 90 0 geom_xyz 0.0 0.1 0.0 geom_rep dog0.obj trigger_method cycle seq_path ./ seq_hpr 0 90 0 seq_xyz 0.0 0.1 0.0 seq_file gbdog.seq end BPC: Art and Computation – Summer 2007
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 2007
darp script example: move object frame geom_show pot21.iv geom_xyz 5.0 2.1 9.3 geom_hpr 0.0 90.0 0.0 geom_show drop21.obj frame geom_show pot22.iv geom_xyz 5.5 1.9 3.2 geom_hpr 0.0 91.0 0.0 geom_show drop22.obj BPC: Art and Computation – Summer 2007
arp example: change object size arp 2.0 name benThorn_seq geom_path ./ playspeed 4 sound_path ../configs/ frame geom_scale 0.56 0.56 0.56 geom_show btw1.obj frame geom_scale 0.42 0.42 0.42 geom_show btw1.obj frame geom_scale 0.56 0.56 0.56 geom_show btw1.obj frame geom_scale 0.7 0.7 0.7 geom_show btw1.obj BPC: Art and Computation – Summer 2007
Design decision - sound clips • Simplicity • Gives simple import methodology • Allows input from many tools • Uses commonly available format (.aiff) BPC: Art and Computation – Summer 2007
Example - adding sound frame geom_show clustergeom0000.obj sound_xyz_stereo 180.932040 -157.771123 -103.679324 180.932040 -43.291371 -103.679324 sound_move h2o4.aif sound_trigger h2o4.aif frame geom_show clustergeom0001.obj sound_xyz_stereo 187.016266 -157.446847 -103.679324 174.847813 -43.615647 -103.679324 sound_move h2o4.aif frame geom_show clustergeom0002.obj sound_xyz_stereo 193.031556 -156.477695 -103.679324 168.832524 -44.584799 -103.679324 sound_move h2o4.aif BPC: Art and Computation – Summer 2007
The view frustum • What you actually see • Units matter (DAFFIE uses feet) BPC: Art and Computation – Summer 2007
Navigation - user experience • The 6 degrees of freedom • 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 2007
The DAFFIE event system • Communication between agents BPC: Art and Computation – Summer 2007
Triggering objects • Light stick (by viewer) • Proximity (by viewer) • Proximity (by agent) • Other (by agent) • The trigger event BPC: Art and Computation – Summer 2007
World state and events • Object descriptions • Trigger • Transforms • Switches • Navigation • Sound • Video • Etc. BPC: Art and Computation – Summer 2007
Agents and events • Using events to control elements of the world • Triggering sequences • Moving objects • Changing rooms • Navigation BPC: Art and Computation – Summer 2007
Navigation by agent sending events • New model - sending of transform matrices to viewer • Keeping track of avatars BPC: Art and Computation – Summer 2007
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 2007
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 2007
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 2007
Tiled walls • Issues and differences • Head node vs render nodes • Event management / avatars / triggering • Virtual cameras • Alignment BPC: Art and Computation – Summer 2007
The End BPC: Art and Computation – Summer 2007