欢迎光临散文网 会员登陆 & 注册

Houdini学习笔记007

2022-07-25 13:06 作者:独孤嘌呤  | 我要投稿

今天我们来聊一聊对象的属性(Attribute)


属性是学习Houdini过程中绕不过去的一个概念,就像我们每个人都有名字、性别、年龄、身高、职业等一样,Houdini中的对象属性也赋予了对象独有的特征。当然,基本的属性是通用的,比如坐标、颜色等。这些常用属性在Houdini中有专门的符号名称来指代,例如P表示坐标、N表示法线、Cd表示颜色,等等。


在使用过程中,如果需要调用属性或者对属性进行重新设置,了解这些基本名称就非常有必要。例如我们创建一个“sphere”节点,在节点上点击“i”(Node information)就可以显示节点的信息(或者按鼠标中键可即时查看)。在节点信息中,节点所包含的属性都会列出,比如这里的“1 Point Attrs P 3flt (Pos)”就表示点的坐标信息,“3flt”的意思是属性的类型是浮点矢量(3阶)。


属性的查看一般习惯借助于“Geometry Spreadsheet”窗口,可以在任何一个窗口名称处单击鼠标右键,选择“Inspectors>Geometry Spreadsheet”选项。或者直接按快捷键【Alt+8】。按照学习笔记005的内容可以将该窗口保存为默认设置。


如果想知道Houdini中的几何对象都有哪些属性,可以单击【Help】菜单中的“Contents”选项,打开帮助窗口。搜索“attribute”可以找到Geometry attributes,即几何体属性。


每个属性的符号名称、数据类型以及详细的解释都可以找到。


属性可以添加给对象的点(point)、顶点(vertex)、面(primitive)或整体(detail)。这里需要注意的是点和顶点的区别,如下图所示。点即一般意义上的模型结构点,只要是连接在一起就属于同一个顶点。但顶点则是相对于每个面而言的,所以顶点的数量通常都多于点的数量。


一般节点默认的自带属性只有点的坐标,只在需要用到其他属性时我们才会添加相应的节点。比如用“normal”节点添加法线,在其Construct(构造)参数下,“Add Normals to”选择Points即表示将法线添加给点。于是在“Geometry Spreadsheet”窗口我们就可以看到点的属性中多出了N[x]、N[y]和N[z]的选项。


在“normal”节点的信息中,我们也可以看到Point Attrs中多出了“ N 3flt (Nml)”,即法线属性。点击“N”可以在视图中看到法线,再次点击则隐藏显示。法线除了添加给点之外,也可以添加给顶点或面,大家可以自己比较其区别。


更一般的,可以用“attribute create”节点来给对象创建任何可能的属性。比如原来的点只有位置、编号、法线等信息,现在我可以让它拥有奇偶性、随机值、配位数(可连接边的数量)等原本没有的属性。例如在下图的“attribute create”节点中,添加名为“pscale”(pscale是预设的属性名称,表示尺寸缩放值,软件可直接识别调用。如果是自己设置的其他名称,还需要告诉软件调用的方式)的属性名称,将其“Value”设置为“rand($PT)”,意为根据点的编号产生0~1之间的随机数。然后就可以在“Geometry Spreadsheet”窗口看到点属性中多出了pscale的选项,每个点的随机数值都不相同。


在此基础上,用“copy to points”节点在每个点的位置处拷贝一个球体,就可以自动继承点的pscale属性,得到随机大小的拷贝结果。


属性的创建是不受限制的,如果再用一个“attribute create”节点来设置点的颜色,属性名称为Cd。由于颜色是由R、G、B三个数值表示,所以类型“Type”应该为vector,“Value”中前三个数值均用随机数值表示。注意rand($PT+1.1)中在$PT后加上1.1是为了让随机种子数有差异,否则每次得到的随机数是相同的。


更高级的属性设置还会用到“attribute wrangle”节点, 属于VEX表达式内容,对初学者不做要求。今天就写这么多,感谢各位的阅读,下回见!

Houdini学习笔记007的评论 (共 条)

分享到微博请遵守国家法律