• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

3rd/H03-May-2022-108,83265,573

patches/H03-May-2022-146135

src/H03-May-2022-9,2727,913

README.blenderH A D17-Feb-2020177 65

README.mdH A D17-Feb-20205.1 KiB135104

README.blender

1Project: QuadriFlow
2URL: https://github.com/hjwdzh/QuadriFlow
3License: MIT and Boost Software License
4Upstream version: 27a6867
5Local modifications: Apply patches/blender.patch
6

README.md

1# QuadriFlow: A Scalable and Robust Method for Quadrangulation
2
3Source code for the paper:
4
5Jingwei Huang, Yichao Zhou, Matthias Niessner, Jonathan Shewchuk and Leonidas Guibas. [**QuadriFlow: A Scalable and Robust Method for Quadrangulation**](http://stanford.edu/~jingweih/papers/quadriflow/quadriflow.pdf), The Eurographics Symposium on Geometry Processing (SGP) 2018.
6
7<!-- ## Processing Result -->
8![QuadriFlow Results](https://github.com/hjwdzh/quadriflow/raw/master/img/result.jpg)
9
10## WebGL Application
11Our 3D WebGL Apps for QuadriFlow are online!  Without any installation, you are able to
12*  [**Compare**](https://yichaozhou.com/publication/1805quadriflow/#demo) QuadriFlow with previous methods;
13*  [**Quadrangulate**](https://yichaozhou.com/publication/1805quadriflow/#tool) your own meshes and
14    download the result!
15
16## Desktop Software
17The software supports cmake build for Linux/Mac/Windows systems. For linux and mac users, run **`sh demo.sh`** to build and try the QuadriFlow example, which converts `examples/Gargoyle_input.obj` to `examples/Gargoyle_quadriflow.obj`.
18
19### Install
20
21```
22git clone git://github.com/hjwdzh/quadriflow
23cd quadriflow
24mkdir build
25cd build
26cmake .. -DCMAKE_BUILD_TYPE=release
27make -j
28```
29
30### QuadriFlow Software
31
32We take a manifold triangle mesh `input.obj` and generate a manifold quad mesh `output.obj`. The face number increases linearly with the resolution controled by the user.
33
34```
35./quadriflow -i input.obj -o output.obj -f [resolution]
36```
37
38Here, the resolution is the desired number of faces in the quad mesh.
39
40## Advanced Functions
41
42### Min-cost Flow
43By default, `quadriflow` uses the Boykov maximum flow solver from boost becuase it is faster.  To
44enable the adaptive network simplex minimum-cost flow solver, you can enable the `-mcf` option:
45
46```
47./quadriflow -mcf -i input.obj -o output.obj -f [resolution]
48```
49
50### Sharp Preserving
51By default, `quadriflow` does not explicitly detect and perserve the sharp edges in the model. To
52enable this feature, uses
53
54```
55./quadriflow -sharp -i input.obj -o output.obj -f [resolution]
56```
57
58### SAT Flip Removal (Unix Only)
59By default, `quadriflow` does not use the SAT solver to remove the flips in the integer offsets
60map.  To remove the flips and guarantee a watertight result mesh, you can enable the SAT solver.
61First, make sure that `minisat` and `timeout` is properly installed under your `${PATH}`.  The
62former can be done by building `3rd/MapleCOMSPS_LRB/CMakeLists.txt` and copying `minisat` to `/usr/bin`.
63In addition, `timeout` is included in coreutils. If you are using Mac, you can install it using
64homebrew:
65```
66brew install coreutils
67export PATH="/usr/local/opt/coreutils/libexec/gnubin:$PATH"
68```
69
70You can verify if those binaries are properly installed by executing
71```
72which minisat
73which timeout
74```
75
76After that, you can enable SAT flip removal procedure by executing
77```
78./quadriflow -sat -i input.obj -o output.obj -f [resolution]
79```
80
81When using the SAT flip removal, we also suggest you enabling the verbose logging to understand
82what is going on. You can build quadriflow with the following options:
83```
84cmake .. -DCMAKE_BUILD_TYPE=release -DBUILD_LOG=ON
85```
86
87### GUROBI Support (For Benchmark Purpose)
88
89To use the Gurobi integer programming to solve the integer offset problem, you can build QuadriFlow with
90```
91cmake .. -DCMAKE_BUILD_TYPE=release -DBUILD_GUROBI=ON -DBUILD_LOG=ON
92```
93This override other solvers and should only be used for benchmark purpose.
94
95## External Dependencies
96* Boost
97* Eigen
98* OpenMP (optional in CMake)
99* TBB (optional in CMake)
100* GUROBI (for benchmark purpose only)
101
102## Licenses
103
104QuadriFlow is released under [MIT License](LICENSE.txt).
105For 3rd dependencies,
106* Boost and Lemon are released under [Boost Software License](https://lemon.cs.elte.hu/trac/lemon/wiki/License)
107* Most part of Eigen is released under [MPL2](https://www.mozilla.org/en-US/MPL/2.0/FAQ/)
108    * Sparse Cholesky Decomposition algorithms are released under LGPL
109    * To replace it using Sparse LU decomposition with a more permissive MPL2 license (a little slower), enable `BUILD_FREE_LICENSE` in CMake (e.g., `-DBUILD_FREE_LICENSE=ON`).
110* `pcg32.h` is released under the Apache License, Version 2.0
111* `parallel_stable_sort.h` is released under the MIT License
112
113## Authors
114- [Jingwei Huang](mailto:jingweih@stanford.edu)
115- [Yichao Zhou](mailto:zyc@berkeley.edu)
116
117&copy; 2018 Jingwei Huang and Yichao Zhou All Rights Reserved
118
119**IMPORTANT**: If you use this software please cite the following in any resulting publication:
120```
121@article {10.1111:cgf.13498,
122    journal = {Computer Graphics Forum},
123    title = {{QuadriFlow: A Scalable and Robust Method for Quadrangulation}},
124    author = {Huang, Jingwei and Zhou, Yichao and Niessner, Matthias and Shewchuk, Jonathan Richard and Guibas, Leonidas J.},
125    year = {2018},
126    publisher = {The Eurographics Association and John Wiley & Sons Ltd.},
127    ISSN = {1467-8659},
128    DOI = {10.1111/cgf.13498}
129}
130```
131
132## Triangle Manifold
133
134In case you are dealing with a triangle mesh that is not a manifold, we implemented the software that converts any triangle mesh to watertight manifold. Please visit https://github.com/hjwdzh/Manifold for details.
135