All Projects → valette → ACVD

valette / ACVD

Licence: other
a program to perform fast simplification of 3D surface meshes

Programming Languages

C++
36643 projects - #6 most used programming language
CMake
9771 projects

Projects that are alternatives of or similar to ACVD

Meshcnn
Convolutional Neural Network for 3D meshes in PyTorch
Stars: ✭ 1,032 (+732.26%)
Mutual labels:  computer-graphics, mesh
Easy3d
A lightweight, easy-to-use, and efficient C++ library for processing and rendering 3D data
Stars: ✭ 383 (+208.87%)
Mutual labels:  computer-graphics, mesh
roadifier
Open Source road mesh generator script for Unity
Stars: ✭ 30 (-75.81%)
Mutual labels:  mesh
PbfVs
Implementation of Macklin, Miles, and Matthias Müller. "Position based fluids.". Visual Studio 2015 + CUDA 8.0
Stars: ✭ 100 (-19.35%)
Mutual labels:  computer-graphics
ComputeShaderBVHMeshHit
Unity ComputeShader implementation of BVH(Bounding Volume Hierarchy) based mesh hit checking.
Stars: ✭ 25 (-79.84%)
Mutual labels:  mesh
pacman.store
Pacman Mirror via IPFS for ArchLinux, Endeavouros and Manjaro
Stars: ✭ 65 (-47.58%)
Mutual labels:  mesh
awesome-glsl
🎇 Compilation of the best resources to learn programming OpenGL Shaders
Stars: ✭ 700 (+464.52%)
Mutual labels:  computer-graphics
go-icp cython
Go-ICP for globally optimal 3D pointset registration
Stars: ✭ 79 (-36.29%)
Mutual labels:  computer-graphics
pymadcad
Simple yet powerful CAD (Computer Aided Design) library, written with Python.
Stars: ✭ 63 (-49.19%)
Mutual labels:  mesh
clumpy
create or transform numpy images from the command line
Stars: ✭ 38 (-69.35%)
Mutual labels:  computer-graphics
creative-production-coding
⚙️ Coding for creative productions.
Stars: ✭ 14 (-88.71%)
Mutual labels:  computer-graphics
unity-plumber
A component to procedurally generate pipe-like meshes in Unity
Stars: ✭ 55 (-55.65%)
Mutual labels:  mesh
StudyNotes
学习笔记
Stars: ✭ 17 (-86.29%)
Mutual labels:  computer-graphics
ofxCorkCsg
A constructive solid geometry (mesh boolean) addon for openFrameworks.
Stars: ✭ 43 (-65.32%)
Mutual labels:  mesh
currender
Currender: A CPU renderer for computer vision
Stars: ✭ 26 (-79.03%)
Mutual labels:  mesh
snap-to-tin
Snap vector features to the faces of a triangulated irregular network (TIN)
Stars: ✭ 18 (-85.48%)
Mutual labels:  mesh
volumentations
Augmentation package for 3d data based on albumentaitons
Stars: ✭ 26 (-79.03%)
Mutual labels:  mesh
3ddensenet.torch
3D DenseNet(torch version) for ModelNet40 dataset
Stars: ✭ 43 (-65.32%)
Mutual labels:  mesh
trace.moe-media
Media server for serving video preview for trace.moe
Stars: ✭ 28 (-77.42%)
Mutual labels:  computer-graphics
NeuralTextSimplification
Exploring Neural Text Simplification
Stars: ✭ 64 (-48.39%)
Mutual labels:  simplification

ACVD

Info

This code is the implementation deriving from those papers:

[1] S. Valette,J.-M. Chassery and R. Prost, Generic remeshing of 3D triangular meshes with metric-dependent discrete Voronoi Diagrams, IEEE Transactions on Visualization and Computer Graphics, Volume 14, no. 2, pages 369-381, 2008.

[2] Sebastien Valette and Jean-Marc Chassery, Approximated Centroidal Voronoi Diagrams for Uniform Polygonal Mesh Coarsening, Computer Graphics Forum (Eurographics 2004 proceedings), Vol. 23, No. 3, September 2004, pp. 381-389.

[3] M. Audette, D. Rivière, M. Ewend, A. Enquobahrie, and S. Valette, "Approach-guided controlled resolution brain meshing for FE-based interactive neurosurgery simulation", Workshop on Mesh Processing in Medical Image Analysis, in conjunction with MICCAI 2011., Toronto, Canada, pp. 176--186, 09/2011.

This code is cross-platform and should compile under Linux, MacOS and Windows.

Licence

This code is distributed under the CeCILL-B license (BSD-compatible) (copyright CNRS, INSA-Lyon, UCBL, INSERM.)

Dependencies

Simple compilation HowTo under Linux

git clone https://github.com/valette/ACVD.git
cd ACVD
cmake . -DCMAKE_BUILD_TYPE=Release
make

the executables (ACVD, ACVDQ, AnisotropicRemeshingQ and others should be found under the "bin" subdirectory)

Usage

execute ACVD and ACVDQ without arguments to see the available options.

when using graphical display, the 'e' key allows to continue to the next step during interaction

for ACVD, the output is written in the file simplification.ply

additionnally, when running ACVD, a file output_1.ply is also written. It is the output mesh before post-processing using quadrics.

note that to enforce a manifold output mesh, such as explained in [3], you need to use the -m 1 option.

comments, suggestions : https://github.com/valette/ACVD/issues

Multithread versions

For each program ACVD, ACVDQ and AnisotropicRemeshingQ, there is a parallel implementation, called ACVDP, ACVDQP and AnisotropicRemeshingQP. In the examples bellow, just add a trailing "P" to the executable to use all your processor cores. Note that the parallel versions are not deterministic, so running the programm twice with the same parameters will yield different remeshings. The parallel versions run much faster when quadrics are used (i.e. with ACVDQ or AnisotropcRemeshigQ), but the speedup is small with linear ACVD. For all programs, the number of threads can be set using the "-p numberOfThreads" option.

Examples

Remeshing the Stanford bunny to 3000 vertices :

wget https://github.com/alecjacobson/common-3d-test-models/raw/master/data/stanford-bunny.obj
bin/ACVD stanford-bunny.obj 3000 0

taking into account curvature:

bin/ACVD stanford-bunny.obj 3000 1.5

Remeshing the fandisk to 3000 vertices, taking into account sharp features with ACVDQ:

wget https://github.com/alecjacobson/common-3d-test-models/raw/master/data/fandisk.obj
bin/ACVDQ fandisk.obj 3000 0

Remeshing the horse to 1000 vertices with anisotropic metric:

wget https://github.com/alecjacobson/common-3d-test-models/raw/master/data/horse.obj
bin/AnisotropicRemeshingQ horse.obj 1000 1.5

Remeshing the Thai Statue to 100000 vertices with curvature computation

wget http://graphics.stanford.edu/data/3Dscanrep/xyzrgb/xyzrgb_statuette.ply.gz
gunzip xyzrgb_statuette.ply.gz
bin/ACVDQ xyzrgb_statuette.ply 100000 1.5

parallel version:
bin/ACVDQP xyzrgb_statuette.ply 100000 1.5

parallel version restricted to 3 threads:
bin/ACVDQP xyzrgb_statuette.ply 100000 1.5 -np 3

for all the examples above, interactive visualization of the processing can be triggered by adding "-d 2" to the command lines

Python port

A part of ACVD has been ported to python here: https://github.com/pyvista/pyacvd

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].