3D Revision Control Framework
390 likes | 625 Vues
3D Revision Control Framework. Jozef Dobo š & Anthony Steed Department of Computer Science University College London August 5, 2012. Introduction. 3D models grow in complexity Artists and engineers collaborate asynchronously File systems pose serious drawbacks. Contributions.
3D Revision Control Framework
E N D
Presentation Transcript
3D Revision Control Framework JozefDoboš & Anthony Steed Department of Computer ScienceUniversity College London August 5, 2012
Introduction • 3D models grow in complexity • Artists and engineers collaborate asynchronously • File systems poseserious drawbacks
Contributions • How to maintain distributed open repository for revising 3D models • How scene graph of 3D assets can be stored in NoSQL DB (MongoDB) • How to extend the DB to store revision history • Tier 1: A stand-alone GUI with conflict detection and resolution • Tier 2: A secondary read-only GUI via WebGL and Java
Previous Work Asset management and version control • High-end CAD modeling packages: • Bentley Assetvise • DassaultCatia • Software engineering: • SVN, Git, Perforce... • 3ds Max, Blender... + filesystems • Locking
Previous Work Edit logging • Nonlinear Revision Control for Images [Chen et al. 2011] • MeshFlow: Interactive Visualization of Mesh Construction Sequences [Denning et al. 2011] • VisTrails Provenance Explorer for Maya Network distribution • XML3D – Interactive 3D Graphics for the Web [Sons et al. 2010] • A scalable architecture for the HTML5/X3D integration model X3DOM [Behr et al. 2010] • SceneJS
Aim • Support non-linear concurrent modeling • Become agnostic to any specific modeling software • Make one DB store the scene and its revision history • Hence separate modeling from its long-term storage
Framework Overview • 3rd party modeling software saves 3D scene locally
Framework Overview • Tier 1 GUI imports/exports various 3D file formats • Visualizes revisions and differences • Saves scene components in remote 3D repository
Framework Overview • Domain specific database • Tracks revision history on individual scene nodes • Supports sub-scene retrieval
Framework Overview • Tier 2 GUI (subset of Tier 1 functionality) • Inspects repository, retrieves and visualizes revisions • Does not modify the models nor their history
Framework Features • Support for wide range of assets • Delta changes stored alongside non-linear history • Easy access control and sub-object retrieval • Interactive 3D diff tool • Web interface for repository inspection
3D Repository (DB) Scene Graph (SG) • Directed Acyclic Graph • SG Node: scene component (binary blob) • Metadata = (ID, R#) • Used by: • [Zeleznik et al. 2000] • [Berthelot et al. 2011] Revision History (RH) • Directed Acyclic Graph • RH Node: revision • Used by: • Git, SVN, Mercurial, ... • [Chen et al. 2011]
Revision History Branch Trunk Rev 0 Rev 8
Revision Management Revision Retrieval • Return all the newest SG nodes for a given revision number Revision Commit • Delta changes as new revisions • Potential conflicts → need conflict resolution Node deletion • Store NULL in the next revision • Recursively check children
3D Diff and Merge • Find corresponding nodes in A, B based on ID • Binary compare for differences
3D Diff and Merge • Identical nodes → no modification
3D Diff and Merge • Discrepancies in nodes → conflict • Select A or B or export into 3rd party editor
3D Diff and Merge • Given AncestorABmore states can be detected
3D Diff and Merge • Identical nodes → no modification (as before)
3D Diff and Merge • Some conflicts can now be automatically resolved
Prototype Implementation MongoDB • NoSQL (schemaless) • Geospatial indexing • Data as Binary JSON (BSON) – little-endian serialized C types • UUID as node identifiers • Two collections (one for each DAG – SG and RH)
DAG as Flat Collection • is a parent-child relationship • V is a logical disjunction
Tier 1 - 3D Revision Control Viewer • Written in C++ and Qt • Open Asset Import Library (Assimp) to handle models • Converts unified scene graph into collection of BSON • Handles all version control logic • Performs visual 3D diff • Exports to common file formats
Tier 2 - 3D Web Client • Driven by JavaScript • MongoDB Java driver loads BSON from DB • WebGL renderer displays in web browsers
Discussion • Interaction via import/export of 3D files • Files now considered only temporary representation • Smallest unit of change is SG node (BSON document) • Each SG node can be 16MB max (automated multiple documents workaround) • Assume the 3D file to preserve metadata • Lack of data validation on insertion
Future Work • Android and Java Webstart Tier 2 viewers • Store other types of data • Locking and hybrid locks with geometric constrains • Search via spatial queries • Integrate into existing industrial pipelines • Open crowd-sourcing of 3D models
Future Work • Possible direct connection from editing software • Hides the revision control layer from the user
Conclusions • Novel approach to storage and revision control of 3D assets • Represented hierarchical scene graphs in DB • Preserved associated revision history • Successfully decoupled modeling from long term storage
Sponsors Arup Foresight • http://driversofchange.com UK Engineering and Physical Sciences Research Council • http://www.epsrc.ac.uk UCL Engineering Doctorate Centre in Virtual Environments, Imaging & Visualisation • http://engdveiv.cs.ucl.ac.uk
Talk Invitation 3D Diff: An Interactive Approach to Mesh Differencing and Conflict Resolution • Session: Model Stories • Date: Tuesday, 7 August • Time: 2:00PM – 3:30PM • Location: Room 406AB http://3drepo.org