All Projects → jiangzhongshi → Scaffold-Map

jiangzhongshi / Scaffold-Map

Licence: other
Robust, efficient and low distortion bijective mapping in 2D and 3D

Programming Languages

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

Projects that are alternatives of or similar to Scaffold-Map

Directional
A library for Directional Field Synthesis, Design, and Processing.
Stars: ✭ 73 (+43.14%)
Mutual labels:  geometry-processing
Optcuts
OptCuts, a new parameterization algorithm, jointly optimizes arbitrary embeddings for seam quality and distortion. OptCuts requires no parameter tuning; automatically generating mappings that minimize seam-lengths while satisfying user-requested distortion bounds.
Stars: ✭ 145 (+184.31%)
Mutual labels:  geometry-processing
Cgal
The public CGAL repository, see the README below
Stars: ✭ 2,825 (+5439.22%)
Mutual labels:  geometry-processing
Delfem2
Research prototyping framework for physics simulation written in C++
Stars: ✭ 92 (+80.39%)
Mutual labels:  geometry-processing
Geometrize Haxe Web
🌐 Web demo using the Geometrize Haxe library to recreate images with geometric primitives
Stars: ✭ 122 (+139.22%)
Mutual labels:  geometry-processing
Dss
Differentiable Surface Splatting
Stars: ✭ 175 (+243.14%)
Mutual labels:  geometry-processing
Gogeom
This is a Geometrical library for Go Language. Which includes multiple Geometrical calculations like Circle, Lines etc in different forms
Stars: ✭ 47 (-7.84%)
Mutual labels:  geometry-processing
bichon
Robust Coarse Curved TetMesh Generation
Stars: ✭ 29 (-43.14%)
Mutual labels:  geometry-processing
Triwild
TriWild: Robust Triangulation with Curve Constraints
Stars: ✭ 139 (+172.55%)
Mutual labels:  geometry-processing
Samplenet
Differentiable Point Cloud Sampling (CVPR 2020 Oral)
Stars: ✭ 212 (+315.69%)
Mutual labels:  geometry-processing
Libigl Python Bindings
IGL python bindings
Stars: ✭ 95 (+86.27%)
Mutual labels:  geometry-processing
Learning to sample
A learned sampling approach for point clouds (CVPR 2019)
Stars: ✭ 120 (+135.29%)
Mutual labels:  geometry-processing
Manifoldplus
ManifoldPlus: A Robust and Scalable Watertight Manifold Surface Generation Method for Triangle Soups
Stars: ✭ 175 (+243.14%)
Mutual labels:  geometry-processing
Lagrange
A Robust Geometry Processing Library
Stars: ✭ 87 (+70.59%)
Mutual labels:  geometry-processing
IrradianceMap
Authors' implementation of my SIGGRAPH Asia 2019 Technical Briefs (The Power of Box Filters: Real-time Approximation to Large Convolution Kernel by Box-filtered Image Pyramid) demo II. Real-time dynamic irradiance mapping.
Stars: ✭ 48 (-5.88%)
Mutual labels:  siggraph-asia
Pymesh
Geometry Processing Library for Python
Stars: ✭ 1,135 (+2125.49%)
Mutual labels:  geometry-processing
Matgeom
Matlab geometry toolbox for 2D/3D geometric computing
Stars: ✭ 168 (+229.41%)
Mutual labels:  geometry-processing
Mono3D
Source code for "Mononizing Binocular Videos" (SIGGRAPH Asia 2020)
Stars: ✭ 33 (-35.29%)
Mutual labels:  siggraph-asia
deepcassi
[SIGGRAPH Asia 2017] High-Quality Hyperspectral Reconstruction Using a Spectral Prior
Stars: ✭ 50 (-1.96%)
Mutual labels:  siggraph-asia
Geometry Processing
Course material for a grad-level course in Geometry Processing.
Stars: ✭ 176 (+245.1%)
Mutual labels:  geometry-processing

Simplicial Complex Augmentation Framework for Bijective Maps

Zhongshi Jiang, Scott Schaefer, Daniele Panozzo
ACM Transaction on Graphics (Proceedings of SIGGRAPH Asia 2017)
DOI: 10.1145/3130800.3130895

Abstract

Bijective maps are commonly used in many computer graphics and scientific computing applications, including texture, displacement, and bump mapping. However, their computation is numerically challenging due to the global nature of the problem, which makes standard smooth optimization techniques prohibitively expensive. We propose to use a scaffold structure to reduce this challenging and global problem to a local injectivity condition. This construction allows us to benefit from the recent advancements in locally injective maps optimization to efficiently compute large scale bijective maps (both in 2D and 3D), sidestepping the need to explicitly detect and avoid collisions. Our algorithm is guaranteed to robustly compute a globally bijective map, both in 2D and 3D. To demonstrate the practical applicability, we use it to compute globally bijective single patch parametrizations, to pack multiple charts into a single UV domain, to remove self-intersections from existing models, and to deform 3D objects while preventing self-intersections. Our approach is simple to implement, efficient (two orders of magnitude faster than competing methods), and robust, as we demonstrate in a stress test on a parametrization dataset with over a hundred meshes.

Source Code

Source code is hosted on this GitHub repository. The program is built and tested on MacOS system with AppleClang.

Downloading

git clone https://github.com/jiangzhongshi/scaffold-map.git

Building Build Status

To build the program, you can make use of CMakeLists.txt in the root folder:

mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release ../
make

Running

We provide three examples in this repo, parameterization of a camel, inflation of bunny, and self-intersection recovery of a leg.

./scaf_param_bin -m ../camel_b.obj
./scaf_flow_bin -m ../bunny.obj -t ../bunnyx30.obj
./scaf_flow_bin -m ../leg-flow6.off -t ../models/leg-intersect.off

Press [space] to perform one iteration.

libigl version

A simplified 2D version is integrated into libigl (MPL v2 license) https://github.com/libigl/libigl/tree/master/tutorial/710_SCAF

License

This repository is an expolration groud for research purposes, therefore it contains files from multiple sources and copyright licenses. However, the author is in general happy to provide most of the code under MIT or MPL license. If you are interested in the commercial use of the algorithm, please contact the author.

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].