{"title":"Exact predicates, exact constructions and combinatorics for mesh CSG","authors":"Bruno Lévy","doi":"arxiv-2405.12949","DOIUrl":null,"url":null,"abstract":"This article introduces a general mesh intersection algorithm that exactly\ncomputes the so-called Weiler model and that uses it to implement boolean\noperations with arbitrary multi-operand expressions, CSG (constructive solid\ngeometry) and some mesh repair operations. From an input polygon soup, the\nalgorithm first computes the co-refinement, with an exact representation of the\nintersection points. Then, the decomposition of 3D space into volumetric\nregions (Weiler model) is constructed, by sorting the facets around the\nnon-manifold intersection edges (radial sort), using specialized exact\npredicates. Finally, based on the input boolean expression, the triangular\nfacets that belong to the boundary of the result are classified. This is, to\nour knowledge, the first algorithm that computes an exact Weiler model. To\nimplement all the involved predicates and constructions, two geometric kernels\nare proposed, tested and discussed (arithmetic expansions and multi-precision\nfloating-point). As a guiding principle,the combinatorial information shared\nbetween each step is kept as simple as possible. It is made possible by\ntreating all the particular cases in the kernel. In particular, triangles with\nintersections are remeshed using the (uniquely defined) Constrained Delaunay\nTriangulation, with symbolic perturbations to disambiguate configurations with\nco-cyclic points. It makes it easy to discard the duplicated triangles that\nappear when remeshing overlapping facets. The method is tested and compared\nwith previous work, on the existing \"thingi10K\" dataset (to test co-refinement\nand mesh repair) and on a new \"thingiCSG\" dataset made publicly available (to\ntest the full CSG pipeline) on a variety of interesting examples featuring\ndifferent types of \"pathologies\"","PeriodicalId":501570,"journal":{"name":"arXiv - CS - Computational Geometry","volume":"26 1","pages":""},"PeriodicalIF":0.0000,"publicationDate":"2024-05-21","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"0","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"arXiv - CS - Computational Geometry","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/arxiv-2405.12949","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 0
Abstract
This article introduces a general mesh intersection algorithm that exactly
computes the so-called Weiler model and that uses it to implement boolean
operations with arbitrary multi-operand expressions, CSG (constructive solid
geometry) and some mesh repair operations. From an input polygon soup, the
algorithm first computes the co-refinement, with an exact representation of the
intersection points. Then, the decomposition of 3D space into volumetric
regions (Weiler model) is constructed, by sorting the facets around the
non-manifold intersection edges (radial sort), using specialized exact
predicates. Finally, based on the input boolean expression, the triangular
facets that belong to the boundary of the result are classified. This is, to
our knowledge, the first algorithm that computes an exact Weiler model. To
implement all the involved predicates and constructions, two geometric kernels
are proposed, tested and discussed (arithmetic expansions and multi-precision
floating-point). As a guiding principle,the combinatorial information shared
between each step is kept as simple as possible. It is made possible by
treating all the particular cases in the kernel. In particular, triangles with
intersections are remeshed using the (uniquely defined) Constrained Delaunay
Triangulation, with symbolic perturbations to disambiguate configurations with
co-cyclic points. It makes it easy to discard the duplicated triangles that
appear when remeshing overlapping facets. The method is tested and compared
with previous work, on the existing "thingi10K" dataset (to test co-refinement
and mesh repair) and on a new "thingiCSG" dataset made publicly available (to
test the full CSG pipeline) on a variety of interesting examples featuring
different types of "pathologies"