第078封“情书”:心坎VOPs Quick Tip- Abstract Displacement Using Modulo & Noise<Entagma>Houdini 2018

▉本来人生路就起起伏伏,还多了这一道道的坎。— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】 

█ “离为日,坎为月,日月之道,阴阳之经,所以始终万物,故以《坎》《离》为上篇之终也。”

未济(wèi jì)卦是《易经》六十四卦最后一卦,以未能渡过河为喻,阐明“物不可穷”的道理。

前言不搭后语

21算入行,什么软件都不会,会画点画。当然感谢那个不专业的时代,但是那个时代,机会也少,学习的资源更少。世道也很艰难,也是撞得头破血流,跌跌撞撞,沟沟坎坎硬生生的进入这一行,然后各种辛酸苦辣各种摩擦之后,才慢慢进入正轨。

本节内容

由起伏的noise置换之上再产生有规律锯齿状起伏的山脊

本节要实现效果

.....

今天是42岁

051周六

78

这是写给Houdini的第078封“情书”

我是geo流程图

我是pointvop流程图

首先

制作步骤

            ○

小节提要

本节将学习: 

01)noise置换起伏

    1 基础的置换效果搭建 

    2 使用噪声驱动置换

02)随着noise起伏层层山脊

    1 产生锯齿效果

    2 锯齿恢复0~1范围

    3 使用 noise线性形状控制山脊的高低

首先

原理部分


○ 如何产生随线性函数的锯齿效果 ○

01)噪声发生器(通常)接收三个值,并使用它们生成单个输出值 ,用更高级的术语来说,你可以说它将R3映射到R1。这个例子AANoise在-0.5~0.5之间;大部分情况在0~1之间。

02)噪声发生器假设输出像这个样子,我们通常把这些值想象成黑白色。

03)为了了解创建这些锯齿时发生了什么,让我们来看一个更简单的线性函数,我们想要的是将0到1之间的函数转换成一个锯齿形状的函数,用原始函数作为信封。

○ 如何产生随线性函数的锯齿效果 ○

01)首先,让我们把这个东西变成锯齿形,让我们用MODULA操作。Modulo将返回所谓的欧几里德除法的剩余部分;

例如如果一个值=0.15 ,这个值被0.1划分剩下0.05;就不能再继续划分了。

它问我们除以多少次的值,与我们想要除以的值吻合,剩下的是什么? 那剩余值的操作是什么。

当我们将值0.15除以0.1时,0.1正好与该值匹配一次,剩余值就是0.05。然后这个剩余值继续增加,直到我们除以0.2,剩余值是0.1; 现在正好是这个值的两倍。没有余数;接下来函数再次下降,然后上升;0.2余数回到0;0.3余数再次回到零;这样就产生了锯齿状;

02)我们的结果将在0.00-009999之间,所以让我们乘以10将它们再修正为0到(几乎)1倍,我们想把我们的MODS结果乘以1/0.1(即10)。使用modula函数,要注意是*1/0.1;

03)最后,我们要做的就是把整个结果带回来,只是简单地把锯齿形状函数与原来的函数相乘。

如果还有其他的内容,就是线性函数;由噪声产生;最终产生错综复杂的地形。

接下来

正式制作

          使用软件:houdini17.5

01 noise置换起伏

1 基础的置换效果搭建

○ 节点 ○

○ 具体操作 ○

01)sphere:多边形polygon。Frequency=256,为了置换要足够多的网格。

02)normal:为了基本的置换,point还需要法线。

03)pointvop:最终所有效果在此产生。

    03-1)displace Along Normal:

a)输入连接P和N,输出P。

b)调节Amount数值,即可产生整体置换效果。

○ 一个简单的置换搭建完成 ○

2 使用噪声驱动置换

○ pointvop内部节点 ○

○ 具体操作 ○

 03-2)使用annoise:

a)输入P,输出连接置换的amount;

b)降低粗糙度Roughness=0;

    c)提高频率=2*2*2;

小目标1)

我们需要只有向外的置换效果

解决方案)

noise输出-.5~.5,使用fit映射范围0~1之间。

    03-3)fit节点:源min=-0.5;max=0.5;输出min=0,max=1;

02 随着noise起伏层层山脊

○ 节点 ○

----------○ 参考步骤1 ○----------

小目标)锯齿效果

执行) 

03-4)modular节点:

a)Divisor=0.1

小问题1)显示问题

原因)法线问题  

解决方案)在上一层级加normal

Divisor=0.1

Divisor=0.05

--------○ 参考步骤2 ○-------

小目标)锯齿恢复0~1范围

分析)

使用模块观察除法运算,现在输出范围不在0~1之间

 分析)

    a)使用模块观察除法运算,现在输出范围不在0~1之间

    b)改变divisor=0.05

解决方案)通过乘法恢复0~1的范围

a)Divisor改回0.1

    b)增加<03-5>multiply constant节点:乘=10

小目标)使用multiplier山脊的数量 

解决方案)表达式控制multiplier

执行)

    a)首先把multiply constant的首先multiplier参数移到vop的面板上

    b)使用表达式关联multiplier与modular节点Divisor数值

//-- multiplier越大,divisor越小,山脊越多

1.0 / ch("../mulconst1/mulcost")

multiplier=10

multiplier=5

multiplier=20

----------○ 参考步骤3 ○-----------

小目标)使用 noise线性形状控制山脊的高低

解决方案)  处理完的山脊乘noise线性值

    03-6)multiply2:

    a)连接<03-5>multiply1

    a)连接 :0~1范围的fit输出

锦上添花)增加两个ramp进行细节控制

教程翻译自entagma的网络教程

下一节:20181210 Implementing A Position Based Cloth Solver From Scratch

电子邮箱:[email protected]

公众号:

微信号

你可能感兴趣的:(第078封“情书”:心坎VOPs Quick Tip- Abstract Displacement Using Modulo & Noise<Entagma>Houdini 2018)