gproshan: a geometry processing and shape analysis framework
This framework integrates some algorithms and contributions focus on the areas of computer graphics, geometry processing and computational geometry.
Install all dependencies and run:
mkdir build
cd build
cmake ..
make
finally execute:
./gproshan [mesh_paths.(off,obj,ply)]
g++ >= 8.3, cuda >= 10.1, libarmadillo, libeigen, libsuitesparse, libopenblas, opengl, glew, gnuplot, libcgal, libgles2-mesa, cimg
In Ubuntu (>= 18.04) you can install them with:
sudo apt install libarmadillo-dev libeigen3-dev libopenblas-dev libsuitesparse-dev libglew-dev freeglut3-dev libgles2-mesa-dev cimg-dev libcgal-dev
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:
A minimalistic approach for fast computation of geodesic distances on triangular meshes
@Article{ROMEROCALLA2019,
author = { {Romero Calla}, Luciano A. and {Fuentes Perez}, Lizeth J. and Montenegro, Anselmo A. },
title = { A minimalistic approach for fast computation of geodesic distances on triangular meshes },
journal = { Computers \& Graphics },
year = { 2019 },
issn = { 0097-8493 },
doi = { https://doi.org/10.1016/j.cag.2019.08.014 },
keywords = { Geodesic distance, Fast marching, Triangular meshes, Parallel programming, Breadth-first search },
url = { http://www.sciencedirect.com/science/article/pii/S0097849319301426 }
}
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 },
month = { Oct },
pages = { 1-8 },
doi = { 10.1109/CLEI.2015.7359459 }
}
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