520 likes | 889 Views
3D Diff: An Interactive Approach to Mesh Differencing and Conflict Resolution. Jozef Dobo š & Anthony Steed University College London. Case Study. Case Study. Case Study. Case Study. Case Study. Case Study. Case Study. Case Study. Case Study. ?. Case Study.
E N D
3D Diff: An Interactive Approach to Mesh Differencing and Conflict Resolution JozefDoboš & Anthony Steed University College London
Comparing and merging 3D models is complex and time consuming Popular editing software (Max, Blender) do not aid the merging process Most of the time simply take entire edits Motivation
Connecting software engineering and computer graphics Novel approach to 3D differencing 3D Diff: Automated conflict detection Interactive conflict resolution Contribution
Version Control and Asset Management VisTrails Provenance Explorer for Maya Art Diff for Subversion (abandoned project) CompareVidia WinDiff (text) … Merging surveys [Mens 2002;Altmanninger et al. 2009] Naive as how these represent files and not structure Previous Work
Edit Logging Nonlinear Revision Control for Images [Chen et al. 2011] MeshFlow: Interactive Visualization of Mesh Construction Sequences [Denning et al. 2011] Model Composition Part-Based Representation and Editing of 3D Surface Models [Schmidt 2010] Contextual Part Analogies in 3D Objects [Shapira et al. 2010] Exploring Shape Variations by 3D-Model Decomposition and Part-based Recombination [Jain et al. 2012] Previous Work
Versioning Pessimistic: locking Optimistic: merging Merging support State-based (our focus) Change-based Operation-based Visualization Juxtaposition Superposition Explicit encodings Issues Process of merging changes the problem dynamically Changes have wide spread consequences Observations from Previous Work
Input Two 3D models Optional ancestor Helps to resolved ambiguities Stages 3D differencing 3D merging Output Merged 3D model Or export to mesh-level editor Processing Pipeline
Start from a common 3D model Processing Pipeline
Modify independently in 3D editor Processing Pipeline
Export into files Processing Pipeline
Automatically diff in our tool Processing Pipeline
Optionally add common ancestor Processing Pipeline
Interactively merge Processing Pipeline
Export as a 3D file in scene interchange format Processing Pipeline
Scenes represented as neutral scene graph (DAG - everything a node) Nodes are: transformations, materials, textures… Scene graphs are popular: [Zeleznik et al. 2000] [Berthelot et al. 2011] Scene Graph
Smallest unit of change is a scene node Corresponding nodes have matching UUIDs3D Revision Control Framework [Doboš & Steed 2012] If a node is modified all instances are affected(otherwise modeler would have split already) Graph topologies can be different Assumptions
Seemingly conflicting changes Resolved automatically Direct conflicts Resolved interactively or in 3rd party vertex-level editor Conflict Detection
2-way Unmodified Added/Deleted Conflicted 3-way Unmodified Added Deleted Deleted/Modified Modified Conflicted Differencing Outcomes per Node
C++ and Qt Open Asset Import Library (Assimp) – neutral generic scene graph OpenGL Library Class (GLC lib) Not tied to specific modeling tool Hybrid (juxtaposition + superposition) UI Same UI for 2- and 3-way diff Implementation
Working at level of scene graph components Node-to-node correspondence assumed UUID (32 hexadecimal chars) *.blend recently increased char limit from 24 to 64 *.3ds allows 10 chars only Discussion
Correspondence to be resolved Granularity of changes might not fit all projects Vertex-level merging required Infer intentions and indirect conflicts Future Work
Presented novel approach to differencing and merging of 3D models Established suitable unit of change that can be tracked in a 3D version control system Developed UI and visualization strategy Project website: http://3drepo.org Conclusions