The blue-c Distributed Scene Graph Martin Naef, Edouard Lamboray, - - PowerPoint PPT Presentation

the blue c distributed scene graph
SMART_READER_LITE
LIVE PREVIEW

The blue-c Distributed Scene Graph Martin Naef, Edouard Lamboray, - - PowerPoint PPT Presentation

The blue-c Distributed Scene Graph Martin Naef, Edouard Lamboray, Markus Gross Computer Graphics Laboratory, ETH Zurich Oliver Staadt Computer Science Department, UC Davis Context: The blue-c Collaborative Immersive Virtual Reality


slide-1
SLIDE 1

The blue-c Distributed Scene Graph

Martin Naef, Edouard Lamboray, Markus Gross

Computer Graphics Laboratory, ETH Zurich

Oliver Staadt

Computer Science Department, UC Davis

slide-2
SLIDE 2

http://blue-c.ethz.ch 2

Context: The blue-c

  • Collaborative Immersive Virtual Reality Environment
  • Provide remote collaboration features

– Shared, synchronized virtual world – Render partners using 3D video streams – Concurrent rendering and acquisition

slide-3
SLIDE 3

3

Overview

  • Motivation and Related Work
  • Design Goals
  • Scene Distribution

– System integration – Object model – Messages

  • Locking and Consistency
  • Networking
  • Example applications
  • Conclusions
slide-4
SLIDE 4

4

Motivation

  • Support collaborative VR applications
  • Distributed manipulation of shared geometry

– Generalized concept for a large class of applications – No application-specific synchronization protocols

  • Support blue-c features

– 3D video rendering – Multimedia integration (2D video, audio) – Animation

slide-5
SLIDE 5

5

Related Work

  • Large-scale virtual environments

– DIS/HLA, RING, DIVE, MASSIVE

  • Cluster rendering

– OpenSG, Syzygy, WireGL/Chromium

  • Distributed scene graphs

– Distributed Inventor, Avango, Repo3D

slide-6
SLIDE 6

6

bcDSG: Design Goals

  • Distributed, synchronized scene graph

– Including all attributes

  • Avoid reinventing the wheel

– Use existing technology – Support legacy code

  • Based on familiar tools

– C++ programming language – Proven scene graph (e.g. Performer)

slide-7
SLIDE 7

7

bcDSG: Overview

  • Part of the blue-c API
  • Partitioned scene

– Shared and local partition

  • Synchronization service

– Traverses the shared partition once per frame – Generates and handles update messages

  • Networking

– Built upon blue-c communication layer (bcl)

blue-c Core SyncManager ClassFactory NodeManager Networking Scene Graph

Shared

Graphics Rendering Audio Rendering Application

slide-8
SLIDE 8

8

Object Model (Nodes)

  • Shared nodes

– Derived from Performer Nodes

  • Add interface and state using

multiple inheritance

  • Keep Performer interface in place

– Streaming interface

  • Read / write state
  • Read / write connectivity

pfNode pfGroup pfDCS bcDCS CBCSharedNode

slide-9
SLIDE 9

9

Object Model II

  • State data per node

– Unique node ID – Ownership information – State information

  • State dirty flag and serial no.
  • Connectivity dirty flag and serial no.
  • Ownership requested

7 15 23 31

State Serial Connectivity S. Owner ID Generation Word 0 Word 1

slide-10
SLIDE 10

10

Components

  • Sync Manager

– Scene traversal once per frame

  • Checks flags, generates and handles messages

– Initiates and handles network connections

  • Using the blue-c communication layer
  • Node Manager

– Maps IDs to nodes

  • Class Factory

– Create class instances by name or type

slide-11
SLIDE 11

11

Synchronization Messages

  • Create Node

– New ID and class name is transmitted – Handled by the class factory

  • Update State

– Transmits internal node state / attributes – Updates ownership information – Serial number ensures consistency

  • Update Connectivity

– Similar to Update State – Includes ID list of child nodes

  • Delete Node
slide-12
SLIDE 12

12

Locking Scheme

  • Concept: Node ownership
  • Messages

– Request ownership – Pass ownership – Decline ownership request

  • Application intervention
slide-13
SLIDE 13

13

Locking Scheme II

  • Default behavior: Lazy locking

– Local site may modify node regardless of

  • wnership status

– Updates are only sent by the owner – Local changes may be overridden by node owner

slide-14
SLIDE 14

14

Per-Frame Evaluation

Visit node Dirty? no Owner? no

  • Req. •

Pending? no Send update Clear dirty flag Request ownership Done yes yes yes

slide-15
SLIDE 15

15

Locking Scheme III

  • Customized locking scheme

– Application may decide not to modify a node without having ownership (strict locking) – Ownership may be requested at any time – Application may grant or decline ownership requests by providing a hook

slide-16
SLIDE 16

16

Consistency

  • Network assumptions

– Reliable transmission – Guaranteed ordering between two machines – No global ordering

  • Conflicting updates

– Only the owner sends updates – Serial number scheme

  • Outdated update messages are discarded
  • Delayed processing of updates

– Avoids global ordering requirement

slide-17
SLIDE 17

17

Networking

  • Connection management
  • Reliable transport and multicast
  • ID management
  • Time service
  • Based on CORBA: ACE/TAO

A B NamingService TimeService Connection Management UDP Multicast CORBA CORBA NodeIDService

slide-18
SLIDE 18

18

Example Application

  • Collaborative Painter

– Place quads anywhere in 3D space – Paint on textures – Geometry and textures are synchronized

slide-19
SLIDE 19

19

Video: Painter

slide-20
SLIDE 20

20

Example Application

  • Distributed Chess

– Static background geometry – Shared chessboard and pieces – Strict locking for chess pieces – No chess application logic

slide-21
SLIDE 21

21

Video: Chess

slide-22
SLIDE 22

22

Conclusions

  • Distributed scene graph

– No changes in the Performer API – Complete synchronization including vertex and texture data – Relaxed locking scheme, customizable

slide-23
SLIDE 23

23

Future Work

  • Enable late joining sites
  • Finer granularity for updates
  • Completely transparent operation

– Automatic setting of flags

  • Network congestion control
  • Applications
slide-24
SLIDE 24

http://blue-c.ethz.ch 24

Questions?

24