BibTeX
@MISC{_meshgit:diffing,
author = {},
title = {MeshGit: Diffing and Merging Meshes for Polygonal Modeling},
year = {}
}
OpenURL
Abstract
original derivative derivative a merged original derivative b merged with subdivision Figure 1: Examples of diffing and merging polygonal meshes done automatically by MeshGit. Left: We visualize changes between two snapshots of the creation of a creature mesh as a two-way diff. The derivative mesh contains many changes, including significant changes in adjacency (red/green) and geometry (blue) of the gum line and tongue with many additional teeth (left inset) and an extra edge-loop and inset details on the shoulder ball (right inset). Right: We visualize changes performed between an original mesh and two derivatives as a three-way diff. Derivative a (left; light colors) adds fingernails, while derivative b (right; dark colors) adds an edge-loop across palm with reshaping. MeshGit automatically merges these two sets of non-conflicting edits, shown at the top. We show the merged mesh after applying Catmull-Clark subdivision rules to demonstrate that MeshGit maintains consistent face adjacencies. This paper presents MeshGit, a practical algorithm for diffing and merging polygonal meshes typically used in subdivision modeling workflows. Inspired by version control for text editing, we intro-duce the mesh edit distance as a measure of the dissimilarity be-tween meshes. This distance is defined as the minimum cost of matching the vertices and faces of one mesh to those of another. We propose an iterative greedy algorithm to approximate the mesh edit distance, which scales well with model complexity, providing a practical solution to our problem. We translate the mesh corre-spondence into a set of mesh editing operations that transforms the first mesh into the second. The editing operations can be displayed directly to provide a meaningful visual difference between meshes. For merging, we compute the difference between two versions and their common ancestor, as sets of editing operations. We robustly detect conflicting operations, automatically apply non-conflicting edits, and allow the user to choose how to merge the conflicting edits. We evaluate MeshGit by diffing and merging a variety of meshes and find it to work well for all.
Keyphrases
merging mesh polygonal modeling non-conflicting edits polygonal mesh mesh edit distance original mesh practical solution light color creature mesh right inset subdivision figure many additional teeth two-way diff inset detail derivative mesh left inset subdivision modeling workflow significant change extra edge-loop first mesh dissimilarity be-tween mesh original derivative consistent face adjacency three-way diff practical algorithm catmull-clark subdivision rule many change common ancestor version control mesh corre-spondence model complexity original derivative derivative text editing red green shoulder ball meaningful visual difference conflicting edits gum line iterative greedy algorithm dark color minimum cost