All Projects → Zielon → ParallelQSlim

Zielon / ParallelQSlim

Licence: BSD-2-Clause license
Shape Aware Parallel Mesh Simplification Algorithm

Programming Languages

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

Projects that are alternatives of or similar to ParallelQSlim

Hamsters.js
100% Vanilla Javascript Multithreading & Parallel Execution Library
Stars: ✭ 517 (+515.48%)
Mutual labels:  parallel-computing, multithreading, thread-pool
Corium
Corium is a modern scripting language which combines simple, safe and efficient programming.
Stars: ✭ 18 (-78.57%)
Mutual labels:  parallel-computing, multithreading
b-rabbit
A thread safe library that aims to provide a simple API for interfacing with RabbitMQ. Built on top of rabbitpy, the library make it very easy to use the RabbitMQ message broker with just few lines of code. It implements all messaging pattern used by message brokers
Stars: ✭ 15 (-82.14%)
Mutual labels:  parallel-computing, multithreading
CPURasterizer
CPU Based Rasterizer Engine
Stars: ✭ 99 (+17.86%)
Mutual labels:  parallel-computing, multithreading
boxtree
Quad/octree building for FMMs in Python and OpenCL
Stars: ✭ 52 (-38.1%)
Mutual labels:  parallel-computing, parallel-algorithm
scala-parallel-programming
coursera
Stars: ✭ 17 (-79.76%)
Mutual labels:  parallel-computing, parallel-algorithm
parallel-dfs-dag
A parallel implementation of DFS for Directed Acyclic Graphs (https://research.nvidia.com/publication/parallel-depth-first-search-directed-acyclic-graphs)
Stars: ✭ 29 (-65.48%)
Mutual labels:  parallel-computing, multithreading
TaskManager
A C++14 Task Manager / Scheduler
Stars: ✭ 81 (-3.57%)
Mutual labels:  multithreading, thread-pool
Taskflow
A General-purpose Parallel and Heterogeneous Task Programming System
Stars: ✭ 6,128 (+7195.24%)
Mutual labels:  parallel-computing, multithreading
mvThreadPool
An easy to use C++ Thread Pool
Stars: ✭ 30 (-64.29%)
Mutual labels:  multithreading, thread-pool
Openmp Examples
openmp examples
Stars: ✭ 64 (-23.81%)
Mutual labels:  parallel-computing, multithreading
Lazy
Light-weight header-only library for parallel function calls and continuations in C++ based on Eric Niebler's talk at CppCon 2019.
Stars: ✭ 93 (+10.71%)
Mutual labels:  parallel-computing, thread-pool
Java Concurrency Examples
Java Concurrency/Multithreading Tutorial with Examples for Dummies
Stars: ✭ 173 (+105.95%)
Mutual labels:  multithreading, thread-pool
java-multithread
Códigos feitos para o curso de Multithreading com Java, no canal RinaldoDev do YouTube.
Stars: ✭ 24 (-71.43%)
Mutual labels:  parallel-computing, multithreading
Threads.js
🧵 Make web workers & worker threads as simple as a function call.
Stars: ✭ 1,328 (+1480.95%)
Mutual labels:  multithreading, thread-pool
bitpit
Open source library for scientific HPC
Stars: ✭ 80 (-4.76%)
Mutual labels:  parallel-computing, meshes
thread-pool
BS::thread_pool: a fast, lightweight, and easy-to-use C++17 thread pool library
Stars: ✭ 1,043 (+1141.67%)
Mutual labels:  multithreading, thread-pool
Work Stealing Queue
A fast work-stealing queue template in C++
Stars: ✭ 124 (+47.62%)
Mutual labels:  parallel-computing, multithreading
Pelagia
Automatic parallelization (lock-free multithreading thread) tool developed by Surparallel Open Source.Pelagia is embedded key value database that implements a small, fast, high-reliability on ANSI C.
Stars: ✭ 1,132 (+1247.62%)
Mutual labels:  parallel-computing, multithreading
super-workers
🐴 Distribute load on front-end via parallelism
Stars: ✭ 93 (+10.71%)
Mutual labels:  parallel-computing, thread-pool

ParallelQSlim

Shape aware parallel mesh simplification algorithm

This work elaborates a parallel algorithm based on quadric error metric and adaptive thresholding to simplify a triangle mesh. The approach emphasizes planar surfaces as a target to simplify. The main goal was to create a framework able to produce high quality progressive meshes based on reconstructed ones from environment. Those meshes are characterized by constant resoulution of reconstruction, therefore storing vertices for planar surfaces evenly accros the shape, which is not necessary.

output_1

The project implements QSlim algorithm and extends it with parallel approach and global planar surfaces simplification. There are 3 available quadric metrics:

Geometry
Color + Geometry
Normals + Color + Geoemtry

The project needs two libraries:

Installation:
    sudo apt-get install libboost-all-dev libeigen3-dev

Check out discord #general for more info or help. discord

Here you can read the report which summarizes the whole work.
Default reader accepts as an input mesh only those with binary encoding.

Usage:
mkdir build
cd build
cmake ../
make -j 4
./main --in ../resources/armadillo.ply --out ../output/simply.ply -f -a 7.5 -c 2 -t 4 -r 8
Allowed options:
  -h [ --help ]                    Produce help message
  --in arg                         Path fine input mesh
  --out arg                        Output path of simplified mesh
  -v [ --verbose ]                 Show debug output
  -f [ --force ]                   Enable file overwrite
  -s [ --smooth ]                  Smooth the mesh using Taubin
  -w [ --weight ] arg (=0)         Quadric error weighting strategy
                                    0 = none
                                    1 = area
                                   
  -r [ --reduction ] arg (=75)      The percentage reduction which we want to 
                                   achieve; e.g. 10 of the input mesh
  -i [ --max-iter ] arg (=10)       Max iterations to perform
  -t [ --threads ] arg (=1)        Number of threads
  -q [ --quadric ] arg (=3)        Type of quadric metric
                                    3 = [geometry]
                                    6 = [geometry, color]
                                    9 = [geometry, color, normal]
                                   
  -c [ --clusters ] arg (=2)       Number of clusters e.g.
                                    2 will be 2x2x2=8, 3x3x3=27 clusters
  -m [ --attributes ] arg (=1)     Input mesh attributes
                                    1 = [geometry]
                                    2 = [geometry, color, normal]
  -a [ --aggressiveness ] arg (=3) Aggressiveness (directly relates to the 
                                   maximum permissive error) [1.0-10.0]
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].