【同名公众号“致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:
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)染色线点的平流