本文内容概要:
1、VEX语言简介及案例应用
2、VOP系统案例应用
3、VOP噪波效果
4、一次性设置噪波与多次叠加设置噪波的效果区别
例1:把Tours移动0.1个位置的两种方式
第一种方法:使用VEX语言
VEX语言是一种高性能的表达语言,在Houdini中很多地方都用到了,比如写shader。
VEX语言是Houdini中VOP系统从编程角度的表达方式。
VEX语法规则和C语言接近,和Python有很大区别,下面列出一些和Python语法上的不同点,以便区分是VEX脚本还是Python脚本。
VEX行结尾使用分号;
VEX代码块使用花括号{}
VEX声明变量定义变量类型
VEX声明函数定义函数返回值类型
VEX注释使用正斜杠,单行//,多行/multi-code/
Houdini中可以在Attribute Wrangle节点(节点网络中TAB键输入aw,后面简称aw节点)来编写VEX代码,这个节点很神奇,官网文档有说明它有一种内建的上下文处理机制,参数Run Over切换五种模式会得到不同的结果。
Detail(only once)
Primitives
Points
Vertices
Numbers
默认参数Points意味代码将在每个点循环执行,虽然你代码并没有写循环,只要有任何处理点的操作即会循环。
设置:Torus-----attribute wrangle-----在VEXpression窗口中输入@p = @p {0,0.1,0};
第二种方法:VOP系统(是VEX的可视化编程节点操作方式,不愿意用代码的可以看这里)
设置:Torus---pointvop---设置const顶点参数为 0,0.1,0----add (进行连接)
如上所诉,使用这两种方法都可以让圆环移动0.1个位置,这个VOP里的面板挺重要的,我们来单独介绍一下这个面板。
P=Position 位置
V=Velocity 速率
Force 力
Age 将连入粒子的年龄
Life 粒子生命
id 粒子ID
Cd=color deffuse 颜色着色环境
Uv
N=normal 法线
Time 全局时间
Timeinc 时间增量
Frame 当前帧
Ptnum 当前进程下的点索引数值(点序列那些数值)
primnum primitive的索引
Vtxnum 顶点序列数值
Mumpt 点的数量
Mumprim primitive的数量
Mumvtx 顶点数量
Oplnput1、2、3、4 四个端口
注意:它们自身的颜色分别代表不同意义,绿色代表的意思是它们是矢量值、蓝色是整数、蓝绿色是浮点值、浅棕色则是与几何体相关。
VOPS可以理解成VEX的简化版,可以通过节点的连接来实现VEX的编码功能。
噪波VOP效果
设置:Grid-----attribvop-----ptnum-----random(pos)-----Cd
当两个端口数据不匹配时就会显示虚线状态,random随机的数值为浮点值,而Dd颜色的数值则是矢量的,因为它只有三个元素,红、绿和蓝(RGB), 两个端口数据不匹配所以显示为绿色虚线。Houdini会自动把浮点值改为矢量值,就直接使用浮点值填充了三个颜色,这就是为什么随机噪波都是黑白颜色显示。RGB数值大于1时是白色,小于1时是黑色。
连接完后,网格显示如下效果
以上的浮点值自动转换为矢量值,我们也可以进行手动切换,创建一个浮点转矢量节点floattovec=floattovector
Floattovec三个fval1、2、3分别代表RGB三个通道,不同的连接方式产生不同颜色的噪波效果,如下图所示:
以上的噪波效果并不太实用,一般用噪波是为了产生比较自然的效果。
通常会用turbniose=turbulentnoise湍流噪波效果
噪波一次性生成与多次生成细节上有区别,如下对比:
设置:Grid-----pointvop-----turbnoise1、2、3、4
Turbnoise1设置
Turbnoise2设置
Turbnoise3设置
Turbnoise4设置
连接turbnoise1、2、3的效果如下图(多次参数设置,叠加效果)
连接turbnoise4的效果如下图(一次性参数设置)
通过以上的对比,明显能看出多次参数设置产生的效果比单纯一次性设置产生的效果细节更多一些。
通过噪波效果的设置过程,让我们认识到电脑屏幕所呈现出来的视觉效果,其实就是我们通过程序(函数)控制RGB在屏幕上的显示颜色,从虚拟的三维空间中让其显示出我们想要达成的视觉效果,这应该是电脑视觉呈现背后的本质原理。
Tips:
如何把参数面板窗口镶嵌到Objects视图窗口里
创建一个ego 然后在编辑窗口按P键,会得到一个缩小版的参数面板而且和整个Objects视图在一个区域里(前提是关闭了上方常规的参数面板窗口的情况下),这是后期执行时非常方便的视图方式之一。
快捷键
shift+w
在Geometry面板中是显示图层分支列表
在View窗口中是隐藏或显示物体网格
End.
发现日常的美好