This framework includes some algorithms of Geometry Processing and Shape Analysis as part of our graduate research.
Install all dependencies and run:
make
finally execute:
./gproshan [input mesh paths]
g++ >= 7.2, fopenmp, cuda >= 9.1, libarmadillo, libeigen, libsuitesparse, libopenblas, opengl, gnuplot, libcgal, libgles2-mesa
We have implemented a Compact Half-Edge (CHE) data structure to manipulated triangular meshes, also can be extended for other polygonal meshes. See the paper: CHE: A scalable topological data structure for triangular meshes for more details.
We proposed a CPU/GPU parallel algorithm to compute geodesics distances on triangular meshes. Our approach is competitive with the current methods and is simple to implement. Please cite our paper:
An Iterative Parallel Algorithm for Computing Geodesic Distances on Triangular Meshes
@ARTICLE{2018arXiv181008218R,
author = { {Romero Calla}, L.~A. and {Fuentes Perez}, L.~J. and {Montenegro}, A.~A. and {Lage}, M. },
title = { An Iterative Parallel Algorithm for Computing Geodesic Distances on Triangular Meshes },
journal = { ArXiv e-prints },
eprint = { 1810.08218 },
year = 2018,
month = oct,
url = { https://arxiv.org/abs/1810.08218 }
}
Also, we have implemented the Fast Marching algorithm, and the Heat method.
We proposed a Dictionary Learning and Sparse Coding framework, to solve the problems of Denoising, Inpainting, and Multiresolution on triangular meshes. This work is still in process. Please cite our work:
A Dictionary Learning-based framework on Triangular Meshes
@ARTICLE{2018arXiv181008266F,
author = { {Fuentes Perez}, L.~J. and {Romero Calla}, L.~A. and {Montenegro}, A.~A. },
title = { Dictionary Learning-based Inpainting on Triangular Meshes },
journal = { ArXiv e-prints },
eprint = { 1810.08266 },
year = 2018,
month = oct,
url = { https://arxiv.org/abs/1810.08266 }
}
We implemented repairing mesh holes in two steps:
- Generate a mesh to cover the hole. We modified the algorithm presented in the paper: A robust hole-filling algorithm for triangular mesh, in order to generate a planar triangular mesh using a priority queue.
- Fit the surface described by the new points in order to minimize the variation of the surface, solving the Poisson equation (see the Chapter 4 of the book Polygon Mesh Processing) or using Biharmonic splines.
Please see and cite our final undergraduate project: mesh hole repairing report (in Spanish).
We proposed a simple method based on the faces' areas to compute key-points for adaptive meshes.
Please cite our paper (in Spanish):
Efficient approach for interest points detection in non-rigid shapes
@INPROCEEDINGS{7359459,
author = { C. J. Lopez Del Alamo and L. A. Romero Calla and L. J. Fuentes Perez },
booktitle = { 2015 Latin American Computing Conference (CLEI) },
title = { Efficient approach for interest points detection in non-rigid shapes },
year = { 2015 },
pages = { 1-8 },
doi = { 10.1109/CLEI.2015.7359459 },
month = { Oct },
}
Computing key-components depends on the accuracy and definition of the key points. We were inspired by the work of Ivan Sipiran, he defined for the first time the notion of a key-component in meshes. We proposed a method based on geodesics to determine the key components.
Please see and cite our final undergraduate project: key-components report (in Spanish).
We are implementing the algorithm described by the paper Stellar Mesh Simplification Using Probabilistic Optimization, to compute a mesh simplification.
We implemented Spectral and Taubin fairing algorithms to smooth a mesh surface. See the Chapter 4 of the book Polygon Mesh Processing.
Laplace-Beltrami operator and its eigen decomposition, WKS, HKS, GPS signatures.
Execute:
doxygen Doxyfile
to generate the documentation in html and LaTeX.
The viewer was initially based in the viewer of https://github.com/dgpdec/course. The current viewer uses VAO and VBO to render, and the shaders have been modified and upgraded.
MIT License