这篇文章发表于以下期刊(计算机图形学顶刊):
ACM Transactions on Graphics (TOG), Volume 40, Issuefa
主要是描述了在使用八叉树进行纯六面体网格生成过程中的平衡与配对算法,提出了一种基于整数线性规划的的广义自适应细化,因为在原有强平衡的规则下在许多不必要的地方会进行细化从而导致了性能瓶颈,但该篇文章所提出的细化规则在最优情况下可以减少一半的六面体生成数量,如下图所示:
本篇博客主要是对它的源码进行编译,以便于后续的学习:
代码CLONE
①首先使用git clone url = https://github.com/cg3hci/Gen-Adapt-Ref-for-Hexmeshing.git
②检查以下external目录下的Cinolib有没有成功拉取,若没有成功拉取使用git clone进行拉取 url=https://github.com/mlivesu/cinolib.git
Gurobi下载与激活
③由于使用到了整数线性规划,因此我们必须获取gurobi的编译库,这里额外说明一下,Gurobi是由美国 Gurobi Optimization 公司开发新一代大规模优化器。The Leader in Decision Intelligence Technology - Gurobi Optimization
因此可以购买该软件的商业许可或者你如果是在校的学生那么你可以申请一个教育许可证(1年),每年都可以进行申请,申请步骤请参考gurobi中国官网的说明,申请速度很快(大大给一个赞)我是周六下午五点申请,晚上八点就拿到了许可证,获取许可证之前记得先下载一下软件;
Cmkae程序编译
④开始使用cmake进行编译
这里要注意会使用到CGAL GMP MPFR 等三方库,我这边是使用的vspkg进行编译的(使用vspkg对CGAL install 时GMP MPFR 会帮你安装好,所以怕麻烦的话可以去CGAL官网看一下如何使用vspkg进行CGAL 的安装),但是你如果使用默认编译器的话需要自己手动去链接库(难度不高,百度一下CGAL 的三方库依赖安装即可)
⑤Gurobi的路径如下图所示
这里需要特殊说明一下,lib我只链接了gurobi_c++md2017.lib
(动态运行库)以及gurobi120.lib(主库),如果全链接的话可能会出错
主要是
⑥Configure之后没报错就Generate就行
项目属性修改
⑦打开bulid目录下的make_grid.sln
生成一下项目make_grid会发现vs提示以下报错,说明项目属性没有修改
⑧修改make_grid项目属性后在进行生成就可以成功
右键属性>>C/C++>>代码生成>>运行库修改为多线程DLL(/MD)