VC2008+VTK+MATLAB实现保持细节的网格编辑

经过好几个月的实验,尝试了非常多的数学包,一个月前用硬解方法实现啦laplace,但是变形效果不是很好,硬约束点导致约束点变形过大,从而整个模型不连续,最近找了很多数学求解包,都没能很好的在window下面运行,最终还是采用vc联合matlab的方式求解大型稀疏矩阵的方式来实现软解的laplace编辑(具体用法可以参考前面的文章),laplace的变形的原理可以参考EuroGraph2004的paper和Sig04的paper(possion编辑,其实跟laplace是一个原理),下面给一些具体的变形结果(图中绿色模型为变形后的模型,蓝色为原始模型,红色点为固定点和编辑点):

blade model has 29268 points

 

blade model has 2906 points

 

 

findisk model has 6475 points

screw model has 29154 points

 

intersect model has 122724 points

 

实验结果证明,调用matlab里面的dll的求解稀疏矩阵效率也并非非常差,前面结果model都是几千到一万个点的模型,稀疏矩阵也是一万*一万左右的,大概在几秒-10几秒的时间内能够出结果。相对于taucs等专业矩阵求解包来说也不算慢,也就是几秒的差距吧。但是在最后一个模型12w*12w多的稀疏矩阵求解时,效率就慢了不少,估计需要一分多种,不过还可以接受吧,可以满足研究求解的要求,实际运用的话,估计还是可以利用相关的专业数学包求解测试一下,加速的话可以考虑并行化的openMP和cuda。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值