对于码农出身的老王,找到VEX就如同在Houdini中找到了组织。

文章目录

  • 什么是VEX、VOP和Python
  • VEX的编写
  • VEX的变量、属性及通道
    • 局部变量声明和初始化(Local Variable)
    • 创建属性(Attribute)
    • 创建通道(Channel)
  • VEX的函数

什么是VEX、VOP和Python

Houdini有三种编程语言:

  • VEX 即 Vector Expression Language ,Houdini内置的脚本语言
  • VOP 即 Vector Operation Language,Houdini提供的可视化编程语言
  • Python 即 Python,通过Houdini提供的接口使用Python编程

VEX是Houdini原生的,因此它的契合度最好,底层也经过优化,所以是三种语言中速度最快的,应该作为Houdini开发的首选语言。

VEX的编写

VEX代码的编写一般在Attribute Wrangle节点(按Tab-A-W可以快速检索到该节点)中进行

  • Group Type : 指定处理对象所属的组名
  • Group Type : 指定处理对象所属的组类型
  • Run Over : 该脚本处理的属性所属类型

VEX的变量、属性及通道

VEX的形式很像C语言

局部变量声明和初始化(Local Variable)

int x = 10;
float y = 100.0;
vector z = set(1,0,1);

创建属性(Attribute)

int @box_id = 1;//创建Integer属性
vector @offset = (1,2,3);//创建Vector属性
string @p_name = "hello_vex";//创建String属性

或者

i@point_id = 1;//创建Integer属性
v@offset = (1,2,3);//创建Vector属性
s@p_name = "hello_vex";//创建String属性

创建通道(Channel)

int seed = chi("seed");//chi表示创建或引用integer类型通道
float vertical = chf("vertical");//chi表示创建或引用float类型通道,同理还有chv等

如果已经存在了名为"seed"的Channel则直接引用过来,如果没有则创建一个

VEX的函数

vector move_to(vector pos; float offset){pos.x += offset;pos.x += offset;pos.x += offset;return pos;
}v@P = move_to(v@P,1);

为了便于阅读,函数定义前面可以加上function关键字

function vector move_to(vector pos; float offset){pos.x += offset;pos.x += offset;pos.x += offset;return pos;
}v@P = move_to(v@P,1);

注意: 和C语言不同的是,参数之间需要用;隔开,如果是相同类型的参数可以简写为


vector move_to(vector pos; float offsetx,offsety,offsetz){pos.x += offsetx;pos.x += offsety;pos.x += offsetz;return pos;
}v@P = move_to(v@P,1,2,3);

Houdini图文笔记:VEX知识点小结(一)相关推荐

  1. Houdini图文笔记:用Houdini实现随机自然倒角

    效果图 随机自然倒角就是为方方正正的网格几何体增加一些自然的痕迹,如下图: 文章目录 效果图 模型准备 Houdini端 节点构成 attribnoise节点 polybevel节点 模型准备 本例中 ...

  2. Houdini图文笔记:VAT(3.0)导入UE4/5的设置向导[官方文档翻译]

    1. FBX的导入设置 首先,去掉导入设置中的所有勾选项 Vertex Color Import Option: Replace. Transform Vertex to Absolute: On. ...

  3. Houdini图文笔记:Your driver settings have been set to force 4x Antialiasing in OpenGL applications问题的解决

    问题 解决办法 在显卡的图形设置中找到平滑处理设置,将其设置为应用程序控制 然后重启Houdini即可.

  4. 读书笔记 --- [基础知识点] 小结3

    1. cookie与session的区别 参考 cookie机制 Cookie是服务器在本地机器上存储的小段文本,并随每一次发送至同一个服务器.网络服务器用HTTP头向客户端发送cookies,在客户 ...

  5. 读书笔记 --- [基础知识点] 小结2

    1. TCP和UDP的区别 \ TCP UDP 是否连接 面向连接 无连接 是否可靠 可靠 不可靠 连接对象个数 1对1 1对1 或1 对多 传输方式 面向字节 面向报文 首部开销 20字节 8字节 ...

  6. Houdini图文笔记:Could not create OpenCL device of type (HOUDINI_OCL_DEVICETYPE)问题的解决

    问题 Could not create OpenCL device of type (HOUDINI_OCL_DEVICETYPE): GPU on platform vendor (HOUDINI_ ...

  7. Houdini图文笔记:常用函数及表达式(现学现卖更新中)

    文章目录 引用通道值 引用当前节点通道值 引用父级节点的通道值 Transform节点 Group节点 引用通道值 引用当前节点通道值 函数ch(),使用范例如下,这样当我们改变Translate中X ...

  8. 虚幻引擎图文笔记:蒙太奇(Montage)+ 根运动(Root Motion),给我滚(Roll)!

    UE4.26 效果 按下自定义控制滚动的按键,角色滚动,并且可以穿过低矮的空间 文章目录 效果 前言 步骤 0. 准备Root Motion的角色滚动动画素材 1. 把这个动画序列转换为蒙太奇 2. ...

  9. 神经网络与机器学习 笔记—基本知识点(下)

                   神经网络与机器学习 笔记-基本知识点(下) 0.1 网络结构: 神经网络中神经元的构造方式与用于训练网络的学习算法有着密切的联系,有三种基本的网络结构: 0.7 知识表示 ...

最新文章

  1. FCN、Unet、Unet++:医学图像分割网络一览
  2. 用python写搜索引擎_用python做一个搜索引擎(Pylucene)的实例代码
  3. openCV滑动条TrackBar事件实例
  4. keras concatenate_Keras结合Keras后端搭建个性化神经网络模型
  5. 帷幕的帷是什么意思_“战斗民族”的鲜花礼品凭什么火遍全球?
  6. 第一次搭建阿里云服务器
  7. 【JDBC】各版本jar包下载网址及Tomcat下载
  8. python对角线图_python对角线图_python – 在Seaborn Jointplot上绘制对角线(相等的线)...
  9. 倒排索引、分词、同义词
  10. 算法总结之 打印二叉树的边界节点
  11. 阿里Java开发规约笔记
  12. 联想Y470 非虚拟机安装苹果Mac OS X Mavericks 10.9.1教程详解(文字+图片),通俗易懂亲自动手——序列四之重启系统,系统设置
  13. 超分辨率技术:Adobe Photoshop与深度神经网络对比
  14. Dell电脑如何设置Fn键和其它功能键的组合
  15. 重庆思庄-[Oracle] SYSAUX表空间WRH$表的清理
  16. 认认真真学习STL之string
  17. R语言时间序列分析之ARIMA模型预测
  18. SOLID 设计原则 (有点长但很透彻)
  19. 辟谣、催债、倒闭.....2018年后,将再无创业黄金期!
  20. 30万精英人才大迁徙:进军区块链,他们是赌徒还是信徒?

热门文章

  1. 6.1 matlab数值微分与数值积分
  2. update会锁表吗?
  3. Kaldi简介【开源语音识别工具】
  4. Linux配置自动获取ip方式和静态ip方
  5. Python爬虫:人人影视追剧脚本
  6. Android蓝牙系统框架和代码结构
  7. 蓝牙系统中的主机与控制器
  8. Verilog中task使用
  9. Vue实现markdown编辑器
  10. studio配置java环境,AndroidStudio安装及环境配置