第023封“情书”: 草书 Houdini Point Advection点的平流染色线

【同名公众号“致houdini的情书”】

这一节要实现的效果
▉又一波韭菜长好了,该收割了,各位庄辛苦了!

      像一棵 海草 海草随波飘摇,海草海草海草,随风飘摇!海草 海草浪花里舞蹈,海草 海草管它骇浪惊涛我有我乐逍遥,人海啊 茫茫啊随波逐流浮浮沉沉。

 庄:韭菜的10种做法!简直好吃到没话说!

    提到韭菜,我们都知道韭菜饺子、韭菜炒蛋,其实,韭菜还有很多功效。

    韭菜:叶、花葶和花均作蔬菜食用;种子等可入药,具有补肾,健胃,提神,止汗固涩等功效。在中医里,有人把韭菜称为“洗肠草”。

    ​韭菜可谓浑身都是宝,韭菜适应性强,抗跌耐涨,全国各地的交易所均有栽培。

​这一节我们要看一下:

 是什么欲望能让这帮volume像韭菜们一样如此疯狂。

.....

▉今天是41岁第361天周一

这是写给houdini的

第023封“情书”

geo流程图

volumnvop流程图

本节需要注意的知识点:

1

如何让volume里包含矢量

//volume节点:Rank: vector  ;Name:vel 

2

如何用vector填满volume

//使用volume vop向volume里填充

3

如何使volume矢量产生形态

1)curlnoise节点产生像流动的液体的感觉。

2)volumetrail节点产生轨迹。

4

如何给volumetrail上色

1)Attribute frommap:贴图

2)attributepromote:从点传递给primitive,method选择:Minimum。

5

如何降低trail线条的粗细

attribcreate1 节点 

1)Name=width //宽度属性

2)Value=0.01;//线条宽度

6

如何让trail横截面渲染为圆形

1)右键材质节点classicshader1选择allow editing,允许可以编辑这个节点,进入内部

2)Hairnormal节点:连接给classicshadercore1节点下的baseN和coatN两个输入口。

接下来

是理论部分

关于通过矢量的点平流原理

这是一个体积的切片,可以把它想象是一个巨大的魔方立方体的切片,每一个单元,就像一个极小的立方体

每个单元可以存储一个向量把向量看作箭头,这个箭头有给定的方向&长度

本例中,我们将向量存储在这些单元中。考虑向量的方式是:指向某一方向的箭头,这些箭头的长度固定

 在这个区域的某个地方放置一点,我们看向量指向哪个方向,如果点位于某些向量之间,通常会发生一些插值。

       最接近的voxel储存一个矢量值,然后把它们平均一下,查看该向量的整个过程称为采样,因此我们所做的是从该点的位置对向量进行采样

  让我们将给定数量值的点在该方向上移动。

      到达新位置,再看看向量指向哪个方向。是从这个新的点位置做与以前相同的事情。再次采样,从矢量场的矢量位置,然后把这个点移动新采样方向。

(结论)

所以point advection就是移动point穿过有方向箭头的矢量区域。

接下来

开始正式制作

使用软件houdini16.5

1)grid1  这是被volume影响的所有point的出发点

Size=2*2;100*100

2)scatter1 // 撒点

3)volumn1 //  // 通过volume卷我们所需要的任何东西都是矢量的volume

    a) Size=4*4*4 //尺寸比点大

    b) Uniform sampling Divs=50 //增加分辨率50*50*50个体素.

    c) Rank: vector  //默认是标量数字

它现在包含一个向量值,它是定义“指向方向的箭头” 的三个数字。

    d) Name:vel //就是速度velocity。 

问题1:如何用vector填满volume

方案)因为现在所有的每个小单元里的值是0;使用volume vop向volume里填充点什么东西。

4)Volumevop

1) Pos口连接输入P

    2) 因为我们的volume名字叫vel,所以输出bind export

4-1)curlnoise

4-2)Bind Export

1) Name:vel;

    2) Type:vector(vector)

现在我们有了:1)point点  2)矢量volume卷 ;

接下来,让它们动起来。我们想让它头发运动类似的感觉

问题2:如何使volume矢量产生的形态

5)volumetrail  它需要velocity

    1) 槽1连接point

    2) 槽2连接volumevop

    3) 取消勾选visualize velocity //取消彩色显示

    4) CFL=0.082 //增加trail的采样密度

问题3:如何给volumetrail上色

6)Attribute frommap

    1)找张贴图

问题4:为何volumntrail没有继承颜色

分析)

1:

Point的通道下,彩色的点都是在grid平面上


所有trail创建的point都有Cd属性,我们只需要<1的值,也就是取小的Cd数值,传递给prim。


7)attributepromote

   1) Original Name=Cd//传递色彩属性

    2) New Class:Primitive//传递给prim

    3) PromotionMethod:Minimum//取cd属性里的最小值。

<渲染>

8)camera

9)arealight1//上方一盏面积光

    1) Arealight option/ size: 3*3 区域灯光尺寸

    2) Internsity=10

10)arealight2//下方一盏面积光

1) Arealight option/ size: 10*10

     2) Internsity=1

问题5:如何降低trail线条的粗细

方案)创建一个浮点类型点属性width

11)attribcreate1

1) Name=width //宽度属性

     2) Value=0.01

 测试)

1)Value=1 

分析 )值变大,线不是圆形,而更像扁的丝带,所以我们必须让它变圆。虽然可以用polywire,但成了几何体后,会花费更多渲染时间。

问题6:如何让trail横截面渲染为圆形

方案)使用材质节点,增加hairnormal节点

12)classicshader1 

    1)基础色改=白色

2)右键选择Allow Editing of Contents

    3)进入内部找到 classicshadercore1 /baseN和coatN//要注意:baseN和coatN决定渲染横截面形状

12-1)Hairnormal  // Hairnormal会让normal看起来象圆的截面/象挤压的圆柱体

    1)连接给baseN和coatN两个输入口, 

问题7:如何让volumetrail只朝上伸展

4-3)vecttofloat // 

4-4)vecttofloat // x,z通道连接

4-5)abs //连接y轴,取绝对值。

<最后提高渲染精度>

    1)Scatter   点数:10万

     2)  Attributecreate Width value=0.003

今天就到这儿了,收功


教程翻译自entagma的网络教程

下一节:20160926 Coloring Strands (Point Advection & Hair Shading)染色线点的平流

     本文图片全部原创,版权归原作者所有。
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。