锁子甲 bulid+sim
链接: youtube
分析:洒一堆点——copy 模型——点和模型符合一定规律
点和点的距离符合上述图中的关系 (横纵)
横向
但是我们要横向10个点够了: 用modulo 除余
纵向
这里用除法+向上取整 /10 eg : 0-9 得0 10-19 得1 以此类推
错开
我们要纵向奇数得点错开 h(size个单位)
每隔一个rot一下
sim
思路是解算一个差不多得面片 通过uv映射过去
解算略过了注意面片要带uv
vector uvpos = set(@P.x, @P.z, 0);
vector pos = uvsample(1, "P", "uv", uvpos);
vector normal = uvsample(1, "N", "uv", uvpos);
@P = pos+(normal*@P.y);
uvsample VEX 函数
使用 UV 属性在特定 UV 坐标处插入属性值。
此函数使用 UV 属性中的 UV 指定位置。要使用固有原始 UV,请改用primuv。
uvsample(geometry, string attr_name, string uv_attr_name, vector uvw)
[] uvsample(geometry, string attr_name, string uv_attr_name, vector uvw)
uvsample(geometry, string primgroup, string attr_name, string uv_attr_name, vector uvw)
[] uvsample(geometry, string primgroup, string attr_name, string uv_attr_name, vector uvw)
显示/隐藏参数
当在节点上下文中运行时(例如 wrangle SOP),此参数可以是一个整数,表示要从中读取几何图形的输入编号(从 0 开始)。
.bgeo或者,参数可以是指定要从中读取的几何文件(例如,a)的字符串。在Houdini里面跑的时候,这个可以参考一下op:/path/to/sop。
primgroup
原始组的名称或生成原始组的模式。使用与 SOP 组相同的语义,因此空字符串将匹配所有原语。@Cd.x>0也可以使用像这样的属性组,但请注意,可能需要在Snippet VOP@中使用反斜杠进行转义。
attr_name
要采样的点或顶点属性的名称。对于图元属性,值取自给定 UV 下的图元。对于点和顶点属性,给定 UV 坐标处的值将从周围的点/顶点进行插值。这些值取自具有此名称的属性存在的“最低”级别。
这必须是一个 3-float 属性。
uv_attr_name
包含 UV 的点或顶点属性的名称。Houdini 创建的默认 UV 位于名为uv. 命名属性可以是任何矢量类型中的 2D (UV) 或 3D (UVW)。
uvw
对属性进行采样的 UV(W) 空间中的位置。