Download presentation
Presentation is loading. Please wait.
Published byThomasine Dickerson Modified over 9 years ago
1
Using GASP for collaborative Interaction within 3D Virtual Worlds Thierry Duval and David Margery IRISA - Siames
2
Outline n GASP’s mission statement n GASP’s Framework n GASP’s run-time platform (Distributing a virtual world) n Sharing 3D virtual worlds n Interacting in 3D virtual worlds n Conclusion
3
Mission Statement n Enable the construction of virtual worlds êThat can be shared between users êWhose calculations can be distributed n Without having to deal with êNetwork programming ê3D visualisation ê3D interactions n By providing a complete framework êFor the programming of the entities populating the Virtual world
4
Framework - Overview n Based on an Object Oriented approach (C++) n Entities populating the virtual world are described by êan interface: the simulation object êa behaviour: the calculation object êa frequency at which the behaviour must be calculated n The virtual world is described by the entities populating it (configuration files)
5
Framework - Simulation Objects n They are the public interface of virtual entities êdescribe the outputs of the virtual entity : named and typed fields êdescribe the inputs known by construction so they can be connected to the outputs of other objects êdescribe control parameters (named and typed) than can be read and set by other objects position F1:Follower Followed positionposition F2:Follower Followed position
6
FC2:FollowerCalculFC1:FollowerCalcul Framework - Calculation Objects n Manages the creation and connection of the inputs of the entity n Read the inputs of the entity n Calculates and produces the outputs position F1:Follower Followed positionposition F2:Follower Followed position
7
Framework - Frequencies n Each object has it’s own frequency êThe connection between input and outputs is an abstract one for the programmer êInterpolation or extrapolation is fundamental to the framework êWhether the connection is local or uses a network is of no importance when the entity is written FC2:FollowerCalculFC1:FollowerCalcul position F1:Follower position F2:Follower Followed position 50hz25hz Followed position
8
GASP’s Distributed Run-Time Platform n Communication êHow are the data connections between entities implemented ? n Synchronisation êHow is the notion of frequency kept meaningful across a network of workstations ? n Consistency êHow is the virtual world kept coherent ?
9
Distribution - Communications FC2:FollowerCalcul FC1:FollowerCalcul position F1:Follower Followed position position F2:Follower Followed position 50hz 25hz Process A Process B position F1:Follower (Mirror)
10
Distribution - Synchronisation n A local controller is created on each node. n Basic algorithm : êProceed to simulation step of date T êWait for all controllers to have finished simulation step T êSend update values to distant mirrors. êWait for update values of local mirrors n Expensive synchronisation costs
11
Distribution - Synchronisation 2 n New algorithm (parameterised by latency) êProceed to simulation step of date T if all the update data of simulation step of date T-dt-latency from the other controllers is available (dt is the simulated time spent during one simulation step) êSend update values and repeat n Less time spent waiting as update values transit through the network during the calculations of a simulation step
12
Distribution - Consistency n Extrapolation of values avoids waiting for values n If latency is made to correspond to network latency, distribution doesn’t slow the simulation êideal view: time for the creation and copy of messages into the network subsystem buffers is taken on simulation time n Very little lag between the different machines
13
Visualizing 3D Virtual Worlds n Thanks to the « PsVisualization » entity: êit creates a visualization for each entity derivating from « PsGeoMeca » êit is based upon the SGI Performer 3D graphic library
14
Classes of the Framework PsGeoMeca PsObjetSimulPsCalcul 10..n
15
“The Train”
16
Inheritance for Visualization PsGeoMeca Follower FollowerCalcul PsObjetSimulPsCalcul 10..n 11
17
Sharing 3D Virtual Worlds n By instancing several « PsVisualizations » êinteractive visualizations… êappropriate interactors... n By distributing these entities upon several workstations êthanks to our kernel distribution possibilities
18
F8:Follower F7:Follower F6:Follower F5:Follower F4:Follower F3:Follower Single Process Simulation F2:Follower F1:Follower V1:Visualization Node 1
19
mF8:Follower mF7:Follower mF6:Follower mF5:Follower mF4:Follower mF3:Follower mF2:Follower mF1:Follower Delegated Visualization F8:Follower F7:Follower F6:Follower F5:Follower F4:Follower F3:Follower F2:Follower F1:Follower Node 1 V1:Visualization Node 2
20
mF8:Follower mF7:Follower mF6:Follower mF5:Follower mF4:Follower mF3:Follower mF2:Follower mF1:Follower Distribution F4:Follower F3:Follower F2:Follower F1:Follower Node 1 V1:Visualization Node 3 F8:Follower F7:Follower F6:Follower F5:Follower mF4:Follower Node 2
21
F4:Follower mF1:Follower F3:Follower mF1:Follower F2:Follower mF1:Follower F1:Follower F8:Follower mF7:Follower F6:Follower mF5:Follower F4:Follower mF3:Follower F2:Follower mF1:Follower mF8:Follower mF7:Follower mF6:Follower mF5:Follower mF4:Follower mF3:Follower mF2:Follower mF1:Follower (unefficient) Distribution Node 1 V1:Visualization Node 3 Node 2
22
Typical Collaborative Simulation F4:Follower F3:Follower F2:Follower F1:Follower Node 1 mF8:Follower mF7:Follower mF6:Follower mF5:Follower mF4:Follower mF3:Follower mF2:Follower mF1:Follower V1:Visualization Node 3 F8:Follower F7:Follower F6:Follower F5:Follower mF4:Follower Node 2 mF8:Follower mF7:Follower mF6:Follower mF5:Follower mF4:Follower mF3:Follower mF2:Follower mF1:Follower V2:Visualization Node 4
23
Interacting within Virtual Worlds n By adding « Interactors » entities: ênew entities that provide outputs for interaction êexisting entities specialized to provide such outputs n By linking these outputs to some inputs: êof existing entities ready for interaction êof specialized entities that have been made interactive using inheritance (and genericity) and then adding dynamically new inputs to them
24
“The Interactive Train”
25
Asking for Interaction FC1:FollowerCalcul FC2:FollowerCalcul FC8:FollowerCalcul position F1:Follower position F8:Follower InteractorCalcul positionF1 positionF2 Interactor positionF3 positionF4 positionF6 positionF5 positionF8 positionF7 position F7:Follower... mousePosition followedPosition Ask for control taking User event
26
FC1:FollowerCalcul FC2:FollowerCalcul FC8:FollowerCalcul CFC8:ControllableFollowerCalcul Accepting Interaction position F1:Follower position F8:Follower InteractorCalcul positionF1 positionF2 Interactor positionF3 positionF4 positionF6 positionF5 positionF8 positionF7 position F7:Follower... position mousePosition Accept the control taking followedPosition
27
Inheritance for Interaction ControllableFollowerControllableFollowerCalcul PsGeoMeca FollowerFollowerCalcul PsObjetSimulPsCalcul 10..n 11 1 1 11
28
Conclusion n GASP ensures its mission statements: êit enables the construction of virtual worlds: that can be shared between users whose calculations can be distributed êwithout having to deal with: network programming 3D visualisation 3D interactions êby providing a complete framework: for the programming of the entities
29
Ongoing Work n Improving the distribution: êperformances (PVM, …) êparadigms (duplicated objects) n Improving the interaction: êadding more interactors êmaking objects interactive more easily
30
Virtual Museum
Similar presentations
© 2024 SlidePlayer.com. Inc.
All rights reserved.