470 likes | 483 Views
A case study on an interactive approach to mesh merging and conflict resolution, highlighting the benefits and challenges. The software aims to automate detecting differences and provide interactive ways for merging. It distinguishes between explicit and implicit conflicts and offers visualization strategies. The tool processes 3D models, resolves conflicts at a vertex level, and generates a merged 3D model. The method involves automated differencing and interactive merging stages, with a focus on directing visualizations and conflict resolution. The tool is independent from modeling tools and implements C++ and Qt technologies for mesh comparison. User studies have shown positive feedback on the tool's effectiveness and usability for 3D model merging tasks.
E N D
3D Diff: An Interactive Approach to Mesh Differencing and Conflict Resolution JozefDobošand Anthony Steed
Motivations • Scene might be edited concurrently • 3D differencing and merging is tedious manual work • Editing software such as Max, Blender do not aid the merging process • Textual changes unlikely to work • Most of the time entire edits from one version • Various modes of interaction and visualization possible
Contributions • Definition analogous to software merging • Automatically detect differences • Provide interactive ways for merging • Distinction of conflicts • Explicit: components edited concurrently • Implicit: caused by side-effects of merging • Prototype open source tool (3D Diff) • Evaluation of different visualizations with users
Previous Work • Asset management and version control • VisTrails Provenance Explorer for Maya [Bavoil et al. ‘05] • Non-linear Revision Control for Images [Chen et al. ‘11] • 3D Revision Control Framework [Doboš& Steed ‘12] • High-end CAD packages • Model correspondences • Contextual Part Analogies in 3D Objects [Shapira et al. ‘10] • Exploring Shape Variations by 3D-model Decomposition and Part-based Recombination [Jain et al. ‘12]
Software Merging • Versioning • Pessimistic: locking • Optimistic: merging • Merging support • State-based (only state at the time of merging) • Change-based (all individual changes) • Operation-based (changes re-run in editor) • Visualization strategies [Gleicher et al. ‘11] • Juxtaposition (side-by-side) • Superposition (overlay) • Explicit encodings (time warp/substractions)
Our Method • Stages • Automated 3D differencing • Interactive 3D merging • Input • Two 3D models • Optionally their ancestor (resolves ambiguities) • Output • Merged 3D model • Direct conflicts to be resolved in a vertex-level editor
Processing Pipeline • Start from a common 3D scene
Processing Pipeline • Modify independently
Processing Pipeline • Export as files
Processing Pipeline • Load into our tool and automatically diff (2-way)
Processing Pipeline • Optionally add common ancestor (3-way)
Processing Pipeline • Interactively merge
Processing Pipeline • Export as file
Representation • 3D model as a generic scene graph • Directed acyclic graph • Edges carry no information apart from parenting • Every component is a node (incl. transformations, meshes…) • Smallest unit of change is a node • Corresponding nodes have matching IDs [Doboš& Steed ‘12] • Changes tracked: addition, deletion, modification • If a node is changed, all instances are affected • Graph topologies can be different
Conflicts • Explicit conflict (direct) • Node exists in both models and is not equal • Equality is implementation dependent • Implicit conflict (indirect) • Semantics are violated • Bounding box intersections introduced during the merge process
3D Merging • Aims to build syntactically correct model • Joins resolved and conflicted nodes • Partial automation • Added • Deleted • Modified • Ambiguities resolved manually • Added/deleted • Deleted/modified • Explicit conflicts
Implementation • Independent from modeling tools • C++ and Qt • Open Asset Import Library (Assimp) • Currently only meshes, extensible to other components • Performs in-memory byte-by-byte comparison on • Vertices • Indices • Normals
Visualization • Same UI for 2-way and 3-way differencing • Modes • Overlay (merge window only) • Standard (two differenced models + larger merge window) • Smart (standard + indirect conflict detection) • Differences shown as • Color coded highlights • Table with tick boxes • Scene navigation linked across windows • Automated camera
User Study • 3D merging with increasing level of support • Two-way overlay • Two-way standard • Three-way standard • Three-way smart • 8 PhD students merged 4 sets of modified models • Sample model • Small industrial model • Large city model • Tests and model sets shuffled according to Latin square
Evaluation • Questionnaire after each test • Participants • Able to explore options easily • Varied in judgement of merge success • Indirect conflict detection considered useful
Conclusions • Problems of 3D differencing and merging are identified • Scene graph abstraction provides syntactically and semantically correct results • Node-to-node correspondence is assumed • Indirect conflict is regarded as a violation of semantics • Interactive prototype tool visualizes both types of differencing
Future Work • Correspondences to be resolved • Granularity of changes might not fit all projects • Differences on vertex-level to be detected • Intentions could be automatically inferred
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
Visualizing 3D Models in Aid of Public Consultation • Saturday 11:00 - 12:45, Tourmaline 207