Houdini | 程序化建模之路(二)
Houdini技术Thepoly 16053 0
实名

通过了实名认证的内容创造者

发布于 2022-3-23 20:40:21

您需要 登录 才可以下载或查看,没有账号?注册

x
             QQ截图20220323200234.png

5fd96ebb287692385d08d3a57e63a5fa.jpg

Hello . 大家好
本文为Houdini程序化建模的分享
我是王掌柜
在上一章节中,对Houdini的程序化流程、structure以及程序化建模进行了初步的介绍,今天首先继续制作一个较为复杂的程序化模型,来加深读者对Houdini节点式操作的理解

一 复杂程序化模型制作
1.首先,在Obj面板中右键新建Geo节点,回车进入geo层级,右键呼出Grid(网格节点),注意图元类型为“Polygon”。这时我们便在视图界面之中新建出一个平面网格几何体


2.这里我想做一个简易的桥梁。查看上方属性栏,在size中我将桥梁适当拉长。我们发现,拉长过程中,houdini会以grid的几何中心为中心向四方形变。为了以后“点”操作方便,我希望将物体的左下方点对齐到世界坐标的原点,所以调整center(中心位置)属性,x正方向平移60个单位、z正方向平移5个单位,则将该点移动到世界中心位置(为显示方便,快捷键W:只显示物体网格)

3.这时,如果再度调节grid size参数进行网格缩放,我们会发现该点也会因整体缩放而发生位移。我们希望几何体以当前左下点为中心进行缩放,这时便要进行一个常规操作,参数关联。

  • a.在size x参数下右键 选择“Copy Parameter”
  • b.在center x参数下右键 选择“Paste Relative Reference”
  • c.手动键入“/2”(除以2)
这时我们发现center x参数栏中参数自动变为60,并且呈现绿色底色(表示关联成功)。同理,关联center 在参数。
这时我们看到,即便对grid进行size缩放操作,center x z数值关联变化、该几何体的左下点始终在世界坐标原点未发生移动。

实际上abc三步骤操作是在模拟在笛卡尔坐标系下,将“物体缩放——再将左下点对齐世界坐标原点”的过程(初中数学几何的知识)。

之后,再适当调整网格横纵分布

4.当前状态下,如果选中一个面向上移动,我们发现这个面和几何体是连在一起的(相邻两个面会跟着一起斜变)。我想把面都分割开来,就需要facet节点。

右键呼出Facet节点,并勾选unique,再移动平面就不关联相邻面了


5.我想以这一片片为模板,木板之间是有间隙的,需要每个木条进行x方向上的缩放,这时,我们呼出Primitive图元节点,激活“Do Transformation”选项,在Scale一栏中进行参数设置,来实现缝隙效果


6.利用Polyextrude做出木板厚度,勾选output back封底


7.我们做支撑木板底部的横梁。新建transform节点,连接grid节点。将scale z缩小至0.1,制作出一个基本单位。
呼出Copy节点,复制4个,移动3步进分布。

再度利用polyextrude制作横梁厚度

呼出merge节点,将两个物体合并在一起


8.我们继续制作与横梁交叉的举架。先呼出group by range节点,并与grid连接,此处我用该节点的目的是隔一定步长并选中一块木板整合在一起做举架的基础模型,并命名组为“bottom”

呼出blast节点,删除未选中部分

利用extrude挤出厚度并整合在一起

9.接下来我们只做扶手。这里有个核心问题就是扶手定位的实现,目前我想把扶手定位在横板的中央位置

每个横板中央位置加上一个点,之后以这个点为位置坐标生成圆柱作为扶手,那么这个定位点的确定之思路核心在于Fuse这个节点

a.primitive节点引出2级节点,调整scale x 使得木板变得特别窄:即连个点特别的近
b.拉出fuse节点,将snap distance滑动,直到相邻点合一。这里有两点必须要注意!第一,点ID一定要开启!稍微懂一点图形学的就知道mesh实际是以点数据进行存储的,开启ID方便观察点排布,这对动画粒子等等影响很大;猴子16版到17版有改动,在和点的时候一定要把fuse属性栏中的remove repeat vertices关掉,不然点ID排布会出现问题,后面的圆柱扶手读取位置就会错乱!!

之后我们就有了全部定位点

c.赋予定位点属性。呼出transform节点,注意此时打开pivot属性栏,分别输入“$CEX”“$CEY”“$CEZ”将这些定位点的缩放中心再度定位到几何中心上,调整Scale z 把点向里面收一收
d.呼出tube节点,新建一个圆柱在中心位置(这就是为什么一开始要把桥的左下点放在世界中心上)并调整基本大小数据

e.新建copy节点,将输入数据primitive copy与tube相连,将transform确定的定位点数据与template copy相连,再merge,这样扶手立柱全部生成


10. 扶手立柱生成之后 ,我们需要将扶手相连。

a.首先利用transform将点上移三个单位

b.利用add节点,将其相连。这里就要注意了,如果你点ID排布是正确的,就不会连出对角线,而是正正好好两个组,这里N数值与grid的横栏数关联(不管多少段数始终相连),键入-1,因为N是从0开始,最后一个点ID134但是是第135个点

c.polywire节点呼出,并merge,桥大型完成,数据可以灵活控制

甚至可以随随便便掰弯他

今天就分享到这里 下次会分享一些Houdini中的基本数学知识


- End -


喜欢Thepoly的可以通过三种方式与我们建立联系。分别是公众号、微信群以及QQ群。公众号是我们最为官方的窗口,更多内容都必须关注公众号后才能获取。另外现以开通微博:手机版http://weibo.cn/thepoly网页版http://weibo.com/thepoly

本帖被以下画板推荐:

还没有设置签名!您可以在此展示你的链接,或者个人主页!
使用道具 <
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表