Houdini内置的三种语言的区别(vex, expression, Python)

Houdini有三种内置语言:表达式expression、vex、python。这三种语言虽然有一定的功能重复,但大多数情况还是各司其职的,它们有各自应用的领域,无所谓孰好孰坏。然而每每看到很多初学者面对三种语言不知所措时,觉得还是有必要拿出来说说。*

表达式expression的作用:

节点的参数控制可以完全由表达式进行设置,这是使用表达式的主要场合。利用表达式,我们还可以实现跨模块控制。比如,可以根据sop中点颜色数据来控制刚体的主被动状态,可以直接读取chop中动画曲线来控制各种解算对象,可以根据物体的运动速度去控制渲染器的超采样精度…在某些模块或节点中,表达式也有着固定用法,比如pdg中的属性值通常是用表达式来设置,obj下的instance实例替换也是必须用表达式来获取点编号的,copy节点的变量值必须用表达式函数进行引用,foreach循环变量也必须用表达式函数来获取从而完成对节点参数的控制,Lsys系统也只允许表达式插入到文法中控制规则…表达式还可以简化我们的操作,因为他提供了非常方便且丰富的变量可供用户直接使用,例如我们可以非常方便的获得输入对象的中心($CEX…)或组中心($GCX…)或物体最低点($YMIN)…总之,表达式的使用非常普遍,一般应该作为初学者首要学习的内容,这个阶段应该以锻炼逻辑思维为中心,至于方法的性能问题可以暂不考虑。而且,表达式和vex的函数很多都是一致的,表达式学好了,vex不用学基本也能了解个大概了,有表达式的基础,vex的确可以事半功倍。

VEX/VOP的作用:

vex是Houdini的核心,它可以使用更加丰富且更加底层的方法对属性、组、模型、以及材质进行操控。属性和组是Houdini的两大精髓所在,而vex恰恰可以对二者进行灵活的控制,它比表达式提供的函数多得多,而且,vex的执行速度是最快的,比表达式和python要快一个数量级以上,非常适用于密集型计算环境,当一个效果有很多实现方案时,应该首选vex。如果Houdini某个模块没有我们想要的功能,只要能力够强,我们也可以使用vex进行扩展,比如,可以用vex在cop里写自定义调色节点、在chop里写自定义动画曲线,在mat里写自定义材质球,甚至可以在solver里写自定义解算器…可以毫不夸张的说,vex使用的好坏直接决定着Houdini的应用水平,从重要性来说,位于三大内置语言首位。

python的作用:

python的主要作用是编写脚本,来提高工作效率,来疏通流程,来控制pdg工作项,来实现Houdini以外功能的…虽然它能做大部分表达式与vex(除了材质)的事情,但是由于它是三大内置语言中最慢的,所以尽量不要用它来做表达式或vex的工作,尽管它有很多著名的加速库,即便如此,也只能确保它快于表达式,但离vex的速度还是相去甚远,所以我们还是应该乖乖的让python做好本职工作。总之,凡是碰到表达式或vex做不了的事情,比如:做个自定义窗口、导出个数据、写个加密、抓取些网络数据、做个任务分发、来个深度学习…那好,就把它们交给python吧,遇到任何稀奇古怪的想法都会有python为你兜底。

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Houdini中,VEX是一种用于编写自定义节点和操作的编程语言VEX层级书写可以根据需要在不同的节点中进行编写。例如,在Sublime Text中,可以通过以下步骤进行VEX层级书写: 1. 打开Sublime Text编辑器,并确保已安装最新版本的Sublime Text Package Control插件。 2. 在首选项菜单中,选择“程序包控制”。 3. 在“程序包控制”菜单中,选择“安装程序包”选项。 4. 在弹出的搜索框中,输入“VEX”并选择相应的VEX插件进行安装。 5. 安装完成后,您可以在Sublime Text中使用附加的VEX组件进行编辑和编写VEX代码[1]。 此外,在Houdini的wrangle节点中,也可以使用VEX进行编写。例如,使用以下代码可以在wrangle节点中进行条件判断: ``` if(hasattrib(0, "prim", "chimney")) { @group_delete = 1; // 其他操作 } else { @group_delete = 0; // 其他操作 } ``` 还可以在wrangle节点中使用VEX进行更高级的操作和计算。例如,使用以下代码可以生成随机数: ``` @a = rand(@ptnum) * 3 + 1; printf("%d \n", @a); ``` 通过VEX的语法和函数,可以对Houdini中的节点进行自定义操作和计算。 综上所述,Houdini中的VEX层级书写可以在Sublime Text等编辑器中进行,也可以在wrangle节点中使用。这样可以实现自定义操作和计算的需求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [VEX:Houdini Sublime Text附加组件](https://download.csdn.net/download/weixin_42123296/18966372)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [Houdini VEX笔记](https://blog.csdn.net/A13155283231/article/details/88418667)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值