diff --git a/Documentation/doc/biblio/cgal_manual.bib b/Documentation/doc/biblio/cgal_manual.bib index 89d062ddddf..713047b1ed5 100644 --- a/Documentation/doc/biblio/cgal_manual.bib +++ b/Documentation/doc/biblio/cgal_manual.bib @@ -3073,6 +3073,16 @@ pages = "207--221" bibsource = {dblp computer science bibliography, https://dblp.org/} } +@inproceedings {dunyach2013curvRemesh, + booktitle = {Eurographics 2013 - Short Papers}, + title = {{Adaptive Remeshing for Real-Time Mesh Deformation}}, + author = {Dunyach, Marion and Vanderhaeghe, David and Barthe, Loïc and Botsch, Mario}, + year = {2013}, + publisher = {The Eurographics Association}, + ISSN = {1017-4656}, + DOI = {10.2312/conf/EG2013/short/029-032} +} + @book{botsch2010PMP, title={Polygon mesh processing}, author={M. Botsch and L. Kobbelt and M. Pauly and P. Alliez and B. L{\'e}vy}, diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt b/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt index 8f5863bd1f0..0f89da2c013 100644 --- a/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt +++ b/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt @@ -116,10 +116,19 @@ to the original surface to keep a good approximation of the input. A triangulated region of a polygon mesh can be remeshed using the function `CGAL::Polygon_mesh_processing::isotropic_remeshing()`, as illustrated -by \cgalFigureRef{iso_remeshing}. The algorithm has only two parameters : -the target edge length for the remeshed surface patch, and -the number of iterations of the abovementioned sequence of operations. The bigger -this number, the smoother and closer to target edge length the mesh will be. +by \cgalFigureRef{iso_remeshing}. The algorithm has two parameters: +the sizing field object for the remeshed surface patch, and +the number of iterations of the abovementioned sequence of operations. + +The sizing field establishes the target edge length for the remeshed surface. The sizing field can be uniform or +adaptive. With the uniform sizing field, initiated by the `CGAL::Polygon_mesh_processing::Uniform_sizing_field()` constructor, +all triangle edges are targeted to have equal lengths. On the other hand, with the adaptive sizing field, initiated by +the `CGAL::Polygon_mesh_processing::Adaptive_sizing_field()`, triangle edge lengths depend on the local curvature -- +shorter edges appear in regions with a higher curvature and vice versa. The outline of the adaptive sizing +field algorithm is available in \cgalCite{dunyach2013curvRemesh}. The distinction between uniform and adaptive +sizing fields is depicted in figure \cgalFigureRef{uniform_and_adaptive}. + +As the number of iterations increases, the mesh tends to be smoother and closer to the target edge length. An additional option has been added to \e protect (\e i.\e e. not modify) some given polylines. In some cases, those polylines are too long, and reaching the desired target edge length while protecting them is not @@ -134,6 +143,12 @@ Isotropic remeshing. (a) Triangulated input surface mesh. (d) Surface mesh with the selection uniformly remeshed. \cgalFigureEnd +\cgalFigureBegin{uniform_and_adaptive, uniform_and_adaptive.png} +Sizing fields in isotropic remeshing. +(a) Uniform sizing field. +(b) Curvature-based adaptive sizing field. +\cgalFigureEnd + \paragraph Delaunay-Based Surface Remeshing The mesh generation algorithm implemented in the \ref PkgMesh3 package can be used to remesh a given triangulated surface mesh. The algorithm, based on Delaunay refinement of a restricted Delaunay triangulation, diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/fig/uniform_and_adaptive.png b/Polygon_mesh_processing/doc/Polygon_mesh_processing/fig/uniform_and_adaptive.png new file mode 100644 index 00000000000..4aca8a398d2 Binary files /dev/null and b/Polygon_mesh_processing/doc/Polygon_mesh_processing/fig/uniform_and_adaptive.png differ