逐渐变方 houdini模型变方效果

最近搜问题搜到的一个有意思的主题

就是把要给模型变方

https://www.sidefx.com/forum/topic/71046/

就是效果如下图的一个开源项目,作者也是根据这个制作的hda

一开始发现可以直接玩玩,但是作者安装后发现还需要自己编译……

在下面记录下编译过程吧,毕竟好久不配库了(环境地狱,也给有兴趣的了解下什么是

不看简介一路莽着配环境方式,纯搜索解决问题,方法错误是肯定有的,毕竟不干程序好多年,给大家图个乐,欢迎吐槽)

作者也有详细步骤

一开始我电脑里有vs2019,githubdesktop

 

一开始本地下载

https://github.com/HTDerekLiu/CubicStylization_Cpp

注意一定要使用git方式,否则这个库下不来

目标编译的话选择Command line version

因为可以少一个libigl

开始以为很简单,原来是我想得多了

 

开始随便下了cmake3.1才发现找不到vs2019,需要后续版本才能支持

然后我下了cmake-3.20.0-rc2

Source指向D:\Github\houdini\CubicStylization_Cpp\cubicStylization_cmd文件夹

发现cmake报错

CMake Error at  cmake/DownloadProject.cmake:171 (message):

查了以后发现libigl需要vs2017,等等不是需要这个吗,先忽略吧(我觉得我大概率这步是多余的),照着解决就行……

参考https://github.com/libigl/libigl-example-project/issues/19

https://www.freesion.com/article/9239673162/

 

于是下载visual studio installer安装vs2017

然后发现cmake还是找不到17 以为是cmake版本过高,其实不是的

参考https://www.zhihu.com/question/387803564/answer/1155308185

需要把vs2017cmake组件装好……

中间有重复报错,后来发现是缓存问题,本来是clone again来删了重下的(暴力解决)

但是看起来只要删了build就可以了,或者在cmake的file里选择(事后……)

缓存清理了就好了

 

然后错误换了Error at  libigl/cmake/DownloadProject.cmake:171

很好可以继续了

参考https://github.com/libigl/libigl-example-project/issues/19

看来需要加入环境会自动下载,但貌似github desktop没有这功能

需要git shell

参考

https://www.cnblogs.com/esCharacter/p/7561287.html

于是下载了

Git-2.30.1-64-bit

安装后确实环境变量会自动加进去

注意安装时很多选择我都是选默认的

 

然后发现编译没问题

但是一直停留在CMake that the project does not need compatibility with older versions.

还以为是其他问题

后来发现是在下载库,但是网络问题,导致中断了

你会发现git-remote-https.exe进程会长时间运行着,下完就消失了

科学上网全局会比较快

 

然后又又报错Looking for pthread.h - not found

搜了发现貌似是linux头文件

赶紧又来了1G(事后发现这步骤大概率没用,应该是生成的目标问题)

 

中间还在D:\Github\houdini\CubicStylization_Cpp\cubicStylization_cmd\CMakeLists.txt文件里加了

option(CMAKE_USE_WIN32_THREADS_INIT "using WIN32 threads" ON)

option(gtest_disable_pthreads "Disable uses of pthreads in gtest." ON)

参考

https://stackoverflow.com/questions/13218646/cmake-pthread-h-not-found-in-windows

 

这步可以忽略的直接generate就可以了

会产生相应的vs工程

直接用vs2017打开使用release编译

然后配置好houdini的Cubify.hdalc,链接exe文件

尝试cook发现没有反应

我好像错过了什么?

明明就到这一步了

然后我本能生成一个obj拖入了生成的exe里闪过一段什么io错误

 

我突然有想到houdini论坛那个作者还提供了一个main.cpp(不看清简介一路莽的代价)

看来不是光带着发个源码这么简单,又仔细阅读说明后发现需要替换原本库的main文件

没啥好说的干就完事了,复制粘贴还不是常规操作

然后重新编译

 

完成后重新定位exe

点cook之后就有了下面的结果

开始结果如上,看起来模型需要合并到一起

简单转vdb再转回即可

 

Iterations是执行迭代次数,方块化的精度

Cache file就是缓存文件

App file就是编译出的执行文件

Lambda是方块化程度,越大越方,但是超过1太多会扭曲表面

Stopping criteria就是阈值,大了会提前结束迭代

Constraints约束启用后可以保留需要硬角的点,点集就是下面的

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值