Houdini 学习笔记(二)
chramp(),ch()
通过自定义的参数和noise随机控制挤出的效果:通过RampChannel控制挤出的高度和挤出的顶部的缩放
步骤和细节:
(以下操作均在Geometry节点下)
- 创建一个grid平面,给定一定的细分(Row & Columns)。连一张AttribNoise,保持Cd的Vector属性,以便接下来用不同的颜色通道控制不同的PolyExtrude参数。同时,修改Noise Pattern 的 Offset Channel为
@Time
,每一帧改变一次Noise的offset。 - 创建一个AttribWrangle,
f@dist : @Cd.r; f@in : @Cd.g;
- 接着创建一个PolyExtrude节点,将其中的LocalControl中的Distance和Insert打开,并分别修改为上面写好的
dist
和in
变量。 - 此时发现随时间变化的Cd两个通道并不能影响挤出效果,原因是:由AttribNoise传给AttribWrangle的Cd此时的Attribute为“Point”(
),而要影响Extrude的结果需要其属性为“Primitive”
- 于是我们通过AttribPromote,将Cd由Point转换Primitive,同时将AttribWrangle的Run Over 改为 Primitive
-此时我们的挤出的distance和insert已经可以随时间由Noise控制进行变化了,但还是可以继续提高可控性,在AttribWrangle中,将代码修改如下:
其中chramp(“name”, return value)将生成一个名称为name的ramp调节器,他控制的值就是name之后的return value; ch(“name”)可以生成一个名为name的可拖动的调节器。当然,这需要我们点一下这个按钮:
然后拖动你的下拉条,boom!
ps:
- FINISH
resample
老熟人了,对Polygon, NURBS , Bezier类型的曲线重采样,给曲线重新细分,如果对非曲线的Geometry使用Resample,会在采样前,自动把几何体转为Polygon类型的曲线。
- 给一条line,同时bend一下,对y轴弯曲,capture direction一栏除了y给1,其余都为0。
- 连接 Resample ,调整两个参数Maximum Segment Length 和Maximum Segments
1.Maximum Segment Length,给定目标线段的最大长度
2.Maximum Segments,给定线段的细分
同时打开 - 连接AttribWrangle,输入
@pscale = chramp("s", @curveu) * ch("m");
,生成两个控制器 - 生成一个box,连接copytopoint左,右边attribWrangle连接orientationalongcurve(使几何体的朝向沿线段方向),再连入copytopoint右侧。
- 如果想要连续的几何体,AttribWrangle可以连接polywires,并将Wire Radius改为由
@pscale
控制 - Finish
rand(); fit01()
fit01()用于将primitive重新映射到输入的范围内(nmin,nmax)
rand()用于随机一个变量