【Houdini】洞结构DetailMesh平铺造成的模型破碎问题的研究和解决

前言

  正在摸索学习Houdini中,在制作一个程序化门洞的案例时(思路是将Box1作为墙体,将Box2作为门/洞,两个几何体相减,对生成的新几何体进行DetailMesh的平铺),遇到了将Box2作为门时一切正常,但当Box2作为洞时,使用Labs Detail Mesh节点时会产生模型破碎的情况。如图1:
请添加图片描述

图1:Box2作为门(左) Box作为洞(右)

  研究了半天把问题解决了,因为不是学建模出身,研究过程也学到许多新的基础知识,故在此把解决方法和研究过程都记录一下。

1.边的分析

  问题产生了肯定是有原因的,首先我确定了造成破碎的直接原因是Labs Detail Mesh节点,然后寻找Box2作为门和洞两种情况的不同之处,从制作源头开始寻找,很快我发现,在进行boolean运算时,洞结构会产生门结构明显没有的两条接缝,如图2:

请添加图片描述

图2:洞结构的两条接缝/结构线(右)

  第一个想法自然是把它们弄掉后看看效果,但是发现好像找不到什么好方法删掉它们。然后经过大佬科普:这是建模软件在进行boolean计算时一定会产生的结构线,一定想要删掉的话可以vdb重拓扑,但模型大概率会出问题。

拓扑:建模中的拓扑可以理解为模型的建模布线。重拓扑即用某种方式重新对模型布线。
好的拓扑结构面片数量适量、大小较为平均、面片大部分为四边形,尽量避免超过四条边的多边形和超过5条边汇集的极点,这样有益于模型展uv、做平滑、动画产生形变和导入引擎产生三角面时减少歧义。

2.DetailMesh节点分析

  好吧,似乎是底层原因,从头找问题的方法有点走不通了,再从问题的直接原因Labs Detail Mesh节点逆向寻找一下。
  Houdini的Labs节点相当于是一个subnet或者HDA,通过工具栏->Assets->Unlock Assets解锁后,即可正常查看Labs节点内部流程。
  在Labs Detail Mesh节点中,会先对输入1(模板模型)进行细分预处理,对输入2(细节网格面)进行初始化,再通过foreach循环将模板模型按照其uv裁剪成“模型uv面”,并使用Ray节点将“模型uv面”,投影至由细节网格面平铺而成的更大的细节网格面上,进行了一次模型层面上的uv映射。再进行一系列的重组、平滑、清理后,得到了最终的细节网格模型。
请添加图片描述

图3:模型层面上的uv映射

  而模型破碎的问题就出在最开始对模型进行细分这一步上,Labs Detail Mesh节点采用divide节点切分,切分方式为勾选Bricker polygons取消Convex polygons,这会造成图4效果,模型的部分面产生翻折,自然后续的处理也不会正确。
请添加图片描述

图4:Labs Detail Mesh节点内的切分

3.解决方法

  采取的解决方法是在使用Labs Detail Mesh节点前先做一次模型的切分,使用divide节点选用Convex polygons(Bricker polygons可选可不选),注意切分后模型的uv对应关系不出错,即可解决。
请添加图片描述

图5:在Labs Detail Mesh节点前切分

请添加图片描述

图6:问题解决,洞结构也不出错啦

结语

  还是Houdini菜鸟,本篇博客仅为个人观点的记录和分享,若有错误希望各位大佬指教。
  加油呀达达,继续在程序化的道路上摔跤吧(๑•̀ㅂ•́)و✧

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值