本 Wiki 开启了 HTTPS。但由于同 IP 的 Blog 也开启了 HTTPS,因此本站必须要支持 SNI 的浏览器才能浏览。为了兼容一部分浏览器,本站保留了 HTTP 作为兼容。如果您的浏览器支持 SNI,请尽量通过 HTTPS 访问本站,谢谢!
这是本文档旧的修订版!
Houdini 中的几何属性相关知识点。
Houdini 中的属性(Attribute)是存取在点、线、面、对象等等中的值,比如点的颜色,点的位置,UV 坐标、Normal 等等就是作为 Point Attribute 来存储的。Houdini 中属性有几个特点:
老版的 Houdini 中,属性名一般由小写字母组成。如果没有进行特殊命名,系统会自动将其转化为变量,变量名为同名的大写字母。这个过程称为 variable Mapping。在新版本的 Houdini 中,可以直接使用 @ + varible name + . + channel 的格式直接调用属性。
几何体的属性主要由 Point、Vertex、Primitive 和 Detail 属性组成:
需要注意的是,以上几种属性是有优先级的;也就是说,高等级的属性会覆盖掉低等级的属性。Houdini 默认的优先级是:Vertex > Point > Primitive > Detail。
除开 Detail 的其他三个属性,都会在该几何体内部进行遍历(按点、顶点、面等等)。
大部分的 SOP 节点都提供了使用属性进行 Group 的功能,比如 @P.y > 5
这样的表达式可以直接对组内的点进行筛选。我们可以使用 Houdini 提供的打组语法来进行分组Group syntax。
我们同时还可以使用 Attribute Cast
节点对属性进行精度的控制(参考 Attribute Cast)。
在 geometrysheet
的列表中,如果点开 primitive
或者 detail
选项,会发现有上有一个 Intrinsics
的选项。
该列表下列出来的属性都被称为 Intrinsic attributes,也就是几何体固有存在的属性。这些属性是通过计算几何体得来的属性,比如下面的这些常见的属性:
Detail | intrinsic:pointcount | Number of points in the geometry |
Detail/primitive | intrinsic:bounds | Bounding box of the geometry |
Primitive | intrinsic:measuredarea | Surface area of the geometry |
Primitive | intrinsic:memoryusage | Amount of memory used by the primitive |
ginfo -I
Tools | Usage |
---|---|
VEX | 以 intrinsic:xxxx 的形式直接读取,no @ ,use primintrinsic() 、detailintrinisc() |
Python | hou.Geometry.intrinsicNames()、intrinsicValue() 、.intrinsicValueDict() |
Group | @ + intrinsic:xxx + condition ,E.g.: @intrinsic:indexorder<100 |
存储属性有高精度 / 低精度 两种方式存储。
Attribute Create
里指定存储的精度Attribute Cast
控制存储的精度注:
Name | Type | What | Where | Tips |
---|---|---|---|---|
P | vector | Point Position | Points | PTA, 不唯一 |
N | vector | Normal direction | ||
v | vector | Velocity | Motion blur, particle Dop | 可用 Trail 计算 |
id | int | unique element ID | particle Dop | 唯一, 和 P 这类的 element number 不同 |
name | string | primitive name | packed primitives, volumes | 可通过寻找 name 来选中几何体 |
piece | int | broken pieces | Dop | 独立碎块的编号,碎片的面共享该编号 |
Name | Type | What | Where | Tips |
---|---|---|---|---|
pscale | float | Uniform scaling factor | Rendering | 控制点和粒子的大小、instancing 的几何体大小 |
scale | vector | Axis scaling factor | Rendering | 在坐标轴方向上分别缩放 |
width | float | Open curve width | Rendering | PTA,调整渲染时曲线的宽度(世界坐标系下) |
lod | float | Level of detail | Instanting | PRA, DA |
spritescale | vector | sprint scaling factor | sprint image | PTA, Default(1,1,1) |
spriterot | float | sprite rotation factor | sprint image | PTA, Default 0 |