Houdini JoyOfVex 教程04

04

Chramp(样条映射控制面板/斜坡控制/梯度控制)

chramp应该是channel ramp的缩写,不知道该怎么翻译好- -,这里就译为样条控制了,或许叫斜坡控制好点?(PB_zz says)

样条控制是一个在视觉上更直观的操纵数据方式。相信你在PS等软件中都见过类似的UI面板。
或者类似于Blender的颜色渐变,在我看来,不如教程多句柄曲线控制,qwq。

使用Chramp函数创建UI面板,你可以得到一个样条控制方框,方框的x轴y轴的数值范围都是0~1(超过范围的值会被裁剪,下面会继续说这个裁剪)。你可以点击图像用点来编辑它。

在你的代码中,你提供x轴的值给chramp函数,chramp函数根据你调的样条形态,返回当x值为某某时对应的y值。例如默认样条图像是y=x的一条直线,你输入啥值,就得到啥值。
如果你要让数值反过来对应,也就是y=-x+1。则把样条如图反向倾斜即可。
你还可以手动加点,做个简单的sin函数波纹样条。
或者把样条调的支离破碎丑不拉几,有一种随机的效果。
Chramp and waves(chramp和波纹)

首先写出下面的代码:

float d = length(@P);
d *= ch('scale');
@P.y = chramp('myramp',d); //d作为x轴变量传入

类似ch函数创建UI一样,chramp函数也是类似写法,后边的括号里多了个变量x需要传入,这里我们传入d。调整scale的大小,观察grid模型的变化,你会发现,当传入的d值超出01时,它会将d值自动一段一段地重新映射到01再进行计算,所以你会看到重复的一段一段相同的形状。(译者注:这是chramp的一个隐性特征,所以它并不是clamp函数那样的一刀切,超出范围统一最大最小值。而是超出范围后再用你的样条图像重复映射。)

接下来就是为师(PB_zz)的showtime了!反转样条,并多添加几个点,改变样条形状。手动拉出一个简易不精确的sin波纹形状。现在调整scale滑竿,看看效果。

添加time时间属性到代码里,做一点令人窒息的操作,波纹就能随时间变化而产生动画了:

float d = length(@P);
d *= ch('scale');
d -= @Time;
@P.y = chramp('myramp',d);
@P.y *= ch('height');

我们把grid先切成一半(在最下方添加个clip节点),改变scale和height滑竿的数值,你就可以调整ramp重复的频率。你可以任意改变样条,让它变为三角锯齿波纹等等形状。

请注意!我相信你用了这种样条控制一段时间后,会感到挺不爽的,它不像其他软件里的UI一样好用。它不让你看到01范围之外的东西,只有01的映射;没有样条预设;并且你不能轻松复制黏贴样条;将曲线上的点改为线性(Linear)以外的类型(Interpolation)可能会使映射数值产生莫名颤动;还有其他一百万个恼人的问题,但是它仍然很cooooooooool~…

(PB_zz:Cool个屁,就不能改的更好用点吗- -)

因为样条图像调成线性的效果比较好,所以你就调成线性吧…把传入变量改成sin等生成的数值,这样效果好:

float d = length(@P);
d *= ch('scale');
d += @Time;
d = sin(d);
d = fit(d,-1,1,0,1);//建议使用fit将变量值映射为0~1再传入
@P.y = chramp('myramp',d);
@P.y *= ch('height');

是哒,没错!既然你只吃0-1,那我们就用fit或其他函数把变量值映射为0-1再喂给你吃咯,这样效果就自适应到整个平面上了!实际上,vex的很多函数都是最好用这种方式传入0~1范围的值,这叫做数值归一化或规范化(normalized values)。特别是对于vectors向量数据来说这是很重要的。
而有些时候数值归一化到0-1,你可以理解成是映射为0%~100%,以百分比形式进行比例计算更方便,大家统一一下,就没什么单位问题。

好了,到目前为止,本节基本都是PB_zz的文档,至于我怎么不加入我的思考呢?其实是因为这个chramp虽然很强,但是用法也简单,大家自己调调就能熟悉啦,过多的介绍不过无益,对于学习者来说,自己试才是最好的学习方法。
(好了,我为我的懒做出的理由就是上面这段。我的天哪,摘抄多方面,干嘛带脑子?手动滑稽)
不过我也要提醒一点,除了我们用vex添加chramp,很多节点也是有chramp的,比如PolyExtrude 的p面板下,点击spineControl就能看到曲线控制的ramp了。
我用blender的ramp(颜色渐变或者曲线RBG)比较多,所以在下面贴一张ramp的小应用以供参考

在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值