Distributed Graphics Two Case Studies Jian Huang CS 594 Spring 2002 Distributed Graphics Two major categories Data can be replicated Data can not be replicated Dependent on the choice Drastically different approach Specific pros and cons This Lecture Look at a sample system in each category A Distributed 3D Graphics Library Blair MacIntyre and Steven Feiner SIGGRAPH 2002 Deep Compression for Streaming Texture Intensive Animations Daniel Cohen Or Yair Mann Shachar Fleishman SIGGRAPH 1999 Lots of research issues are currently still open problems Distributed Graphics Systems for distributing the shared graphical state of multi display multi person distributed interactive applications Computer Supported Corporative Work CSCW and Distributed Virtual Environments DVE High Level Libraries Have excellent programming libraries for stand alone 3D applications Inventor Performer Java3D No such libraries for distributed graphics applications although some DVE systems have been proposed A mechanism to distribute application state either a custom solution or using a general purpose lib Maintain the state of the graphical display separately and locally A dual databases approach Synchronizing the dual database is complex tedious and error prone General Goal To use a single database approach for distributed 3D graphics library Repo 3D is an object oriented high level graphics package The objects used to create the graphical scenes are directly distributable from the programmer s perspective The objects reside in one large distributed shared memory DSM The underlying system automatically replicates the fine grained objects across as many processes as needed Updates to objects are automatically reflected in all replicas with any required objects automatically distributed as needed Different between Distributed and Monolithic Applications Distributed control In a non trivial distributed application different components need to be notified of changes to the distributed state Interactivity Network latency bandwidth limitations make updates to distributed state much slower For performance need to perform some operations locally Local variations There are times when a shared graphical scene may need to be modified locally Repo 3D Repo 3D addresses these problems in two ways Notification object associated with any replicated object Invoke notification object s methods when the replicated object is updated Local variation to allow the properties of a graphical object to be modified locally and parts of the scene graph to be locally added removed or replaced Motivation Authors fundamental belief With uniform high level support for distributed programming in the languages and toolkits prototyping and experimenting with distributed interactive applications can be almost as simple as multi threaded programming in a single process Useful for True with exploration and prototyping phase Object oriented programming high data transparency Client Server Data Sharing Inappropriate for Distributed Graphics Client server data sharing e g CORBA Modular 3 Network Objects Java RMI impossible for high frame rate distributed graphics Data replication is necessary Update of shared replicated data should be asynchronous Underlying Infrastructure Developed in Modula 3 language descendant of PASCAL and heavily influenced Java In particular Modula 3 strong type safety exception handling concurrency object oriented programming automatic garbage collection Distributed Objects Within the paradigm of distributed shared memory DSM Three types of objects Simple objects normal local data obj Remote objects client server semantics All method invocations go across the network to the original object Replicated objects replicated at all locations need to be consistently updated Remote Objects The Network Object package provides support for remote objects It implements distributed garbage collection exception propagation back to the calling site automatic marshalling and unmarshalling of method arguments return values of virtually any data type between heterogeneous machine architectures Replicated Objects The Replicated Object package supports replicated objects Each process can call any method of an object it shares All operations on an instance of an object are atomic and serializable All operations are performed in the same order on all copies of the object If two methods are invoked simultaneously the order of invocation is nondeterministic Full replication no partial replication Update Scheme for Replicated Objects Each method is marked either read or update Only update methods trigger an update event Use a sequencer process maybe a remote process to enforce the same sequence of operations for a replicated object May have multiple sequencers in the distributed system All replicas of an object including the one invoked this update method executes the update after receiving update msg from sequencer Anim 3D Graphical objects GO all entities of a graphical scene geometry light GOs can be grouped in any Directed Acyclic Graph DAG Each GO is associated with a set of properties Properties behavior of GO Defined by a name and a value say TextureReconstruction nearest neighbor Input event call backs GO GO hierarchy GO property of g is inherited by all g s descendants unless overridden But property is always attached to separate nodes Change of a property won t affect its siblings Property 4 behavior types for each property Constant Synchronous Asynchronous Dependent Basic Design of Repo 3D The interface is programmatical and declarative No graphics scene file format all scenes exist as a Repo 3D program Scenes can be updated with a new Repo 3D program as a replicated object Replicated Objects GO 21 GO types all replicated except RootGO which corresponds to window to be rendered into Properties most of the Modula 3 objects that comprise a property are not replicated Properties with a constant binding between name and value All names Behaviors and requests Input callbacks are not replicated Local Variations Needed to maintain interactivity and local modifications to shared scene graph Local state state added to each object only accessible to the local copies not passed to remote processes when the object is copied to create a new replica Typically additions deletions and replacements to the properties or children New methods that manipulate the local variations are added to the GOs as non update method Repo 3D combines both the global and
View Full Document
Unlocking...