这篇文章上次修改于 600 天前,可能其部分内容已经发生变化。

c4d的域功能非常强大,常用于创建复杂的动态效果。houdini中没有内置这个功能,但可以用节点实现这些功能。

线性域比较典型,它在c4d的效果如图。
屏幕截图 2023-04-29 175021.png

随着线段的进度方向,球体越来越大,大小就是一条线和这些点之间的投影距离关系,可以用向量法计算。
主要使用wrangle的节点,vex代码如下:

vector AB = point(1,'P',0)- point(1,'P',1); //创建AB向量
vector AC = @P-point(1,'P',1); //创建AC向量
float nl = dot(AB,AC)/pow(length(AB),2); //计算投影距离与AB向量长度的比例
@pscale = 0.5+chramp("ramp",nl)*ch('value'); //映射pscale

houdini节点和实现效果如图。
屏幕截图 2023-04-29 233239.png

实现这个效果有很多种方式,下面介绍另一种方式
利用minpos函数进行投射直线,标准化直线两点和投射点,如图

01

两种方法的hip文件
附hip1
附hip2