一篇文章解释houdini的框架与结构

2018-10-13 20:41

houdini是全球顶尖的视效软件之一,群里有同学想了解一下houdini的整体结构与框架,也有很多同学搞不清houdini模块分类,觉得和其他三维软件很不一样,对sop,vop,shop,dop等无法与传统的模块流程一一对应,所以这 ...

houdini是全球顶尖的视效软件之一, 群里有同学想了解一下houdini的整体结构与框架,也有很多同学搞不清houdini模块分类,觉得和其他三维软件很不一样,对sop,vop,shop,dop等无法与传统的模块流程一一对应,所以这里小编按自己的理解和大家聊一下,希望对不太熟悉houdini的同学有所帮助。 
背景知识
    其他常用的三维软件maya/max/cinema 4D 等的基本模块分为模型,材质灯光渲染,绑定,动画,特效,编程开发等。所以对应的行业职业为分为 模型师,材质与贴图绘制,灯光师,渲染师,绑定师,动画师,特效师,编程和后期合成师。
 
    这种构架的好处就是相对地把整个流程进行拆分,每人只需要管自己的那块,各司其职,那么对于工业流水线的标准来说应该是最高效率的流程。同时也在各个模块中涌现出大量的大神,比如建模大神,全部精力都在造型,调点,不断追求极致。其他模块也同理,也容易出现各种各样的大神。
 
    但是问题是,CG是可以等价于工程的流水线生产吗?设计师真的是等价于流水线上的民工吗?我们知道对于工业流程来说很核心的一点就是标准化,这种标准化甚至要求某员工某个时刻的动作都保持一致(效率最大化),产品就是要保持一致性(雷同),而CG作品,影视作品等的目标是追求一致性吗?CG的标准化流程和工厂的标准化流程的概念是一样的吗?
 
如果你的答案是否定的,那么上述的模块分类就有其必然的缺陷:
 
    其一:各模块之间相互断裂,各职位之间会相互扯皮。我们知道一个作品的好坏其实是要求每个环节都不能有问题,但是在实际工作中经常会遇到模型的问题贴图来补,贴图的问题灯光来补,前面问题靠渲染来救,渲染救不了就丢给后期,后期说这锅我不背,依次又推回去。当然,这里有制作水平,人员能力和态度问题。但是不能否认的也有模块的衔接的问题,我是模型师我只管我的模型部分好看,哪管你贴图好不好弄,绑定能不能做,反正模型师也不懂,这种本来环环相扣的流程最后被打散成孤立的模块,每个人都可以在各自模块中做精,但是跨模块就变得很困难。
 
    其二 之前模块分类无法涵盖所有领域。比如cinema4D中很强的MG模块,你说是归入动画呢?还是归入特效呢?但是好像用于建模造型也挺方便的。模型师是否一定只会用多边形调点呢,衣服布料要不要算一下?毛发到底是归入特效还是归入模型呢?贴图中的程序化纹理是算编程还是算贴图?特效一定是要动力学解算吗?用程序批量创建模型不行吗?后期要不要学习打灯和渲染呢?
 
    从上面两点总结至少可以得出下面结论:
第一,模块的分类并不是必然的,因为都是人定的,既然是人定的,那么也会随着时间点变化而发展,当某些制度和构架不符合现在的生产力和生产需求,那么会有新的东西把它取代。
 
第二:对CG从业人员的要求越来越高,以前只是单一模块的技能,现在需要多个模块的结合。比如把材质灯光渲染合并成look development,也就是说之前分开的材质贴图,灯光和渲染人员又重新变成了一个模块。很多招聘要求特效师必须掌握渲染和合成,而模型师又需要会材质贴图和渲染等。更高级别的比如TA,也就是所谓的技术美术,既要对CG流程美术部分有所涉猎,对技术编程方面也要掌握。这种要求非常高,但是也是目前最稀缺和最抢手赚钱的职位。
 
houdini框架
好了,总结完这些背景知识,我们来看看houdini的框架结构:
 
    我们知道houdini是通过节点来实现的程序化全能三维软件。当然也包括上述的各种功能(甚至包括了合成功能),目前houdini一共有几千个节点,理论上不分类也可以,但是如果当你按tab一下弹出几千个节点选择估计会让你傻眼了。所以,houdini的分类是让我们更好的管理和调用节点,而不是像上面一样严格的模块划分。其实可以在各个层级和ops中调用不同的节点,几乎是无缝对接的流程。
 
    houdini的分类是类似于windows文件夹的方式,比如obj/box1类似于obj文件夹下面有一个box1的文件。但是也可以复合嵌套,比如obj/dop/obj/cop/imag1 在obj文件夹下创建一个dop文件夹,内部在创建一个obj文件夹,里面是一个cop文件夹,最后里面有一个imag1的图片。你会发现这种方式并不是严格的模块之前的划分,就是一堆节点/文件我把它分文件夹进行管理,文件夹可以并行,也可以嵌套。
 
houdini中的分类:
op是operator的缩写,前面的字母就是对应模块的编写




 
 
    我们看这些分类,感觉和其他软件有点像,但是又不太像,比如 shop/mat 可以对应的是材质模块,rop对应的是渲染模块,cop对应的合成模块,那么其他呢?sop对应的是建模吗?dop对应的是特效模块吗?其实上面的理解都是片面的。
 
我们先看一下下面的示意图:




 
    上图主要是反应常用关系(实际上关系会更加自由和复杂)从图标的颜色,大小,重叠,包含,和箭头数据流就可以反映出这几个分类的之间的关系。
 
首先,我们来统一几个概念
    1旧的流程各个模块是人为定义,但是实际操作中我们发现他们不是相互独立的,也不是相互平行的,而是你中由我,我中有你,包含,依存,并行的关系都存在。
 
    2我们使用一个三维软件,本质上就是处理的数据流,这种数据包含了模型,材质,灯光,绑定,动画等数据,最后输出,而这些数据不应该是相互割裂的。
 
    3一般来说最终我们通过三维软件输出无非两种形式,一种是通过渲染器输出视频/序列帧→后期合成。一种是输出数据资产,比如模型,材质,贴图,动画等到其他三维软件,或者是unity3D之类的引擎进行应用。
 
下面我们来基于上图逐一解释
    1obj层级是最基础的框架,你可以在这个框架上创建出上面的各个模块。
 
    2sop模块,他在图的中间,并且以最大面积红色表示,代表是核心基础并且是枢纽作用
    sop中可以完成的是建模,动画,特效,编程等内容。
    sop模块+shop材质+rop可以输出渲染序列,sop模块+rop模块可以输出数据资产。而其他模块都是围绕这sop模块这个核心进行数据交换和输出。动力学需要基于sop输入→处理→再输出给sop,最后才能完成上面两个方向的输出。
 
    3vop/vex:vex是houdini的一个内部编程语言,类似于maya的mel或者是max的maxscript,vop是vex语言的 节点形态,类似于unreal中蓝图和C++的关系。vop/vex是第二个核心基础的部分,你会发现在sop中有很大一部分是他,shop/mat本质都是它,chop中有它,dop中还有它。虽然它不能直接输出数据,但是它的用途和作用无处不在。
 
    4DOP动力学模块:注意动力学不等价于特效,特效>动力学,这个是需要搞清楚的,因为有很多特效制作直接通过动画,表达式或者sop中就可以完成,不需要动力学解算。动力学是houdini最著名的模块,比如粒子,破碎,流体,爆炸,布料,毛发等等都是在这个模块,这也是很多同学一头钻入无法自拔的地方。它与sop中是有很部分交集,也就是sop中可以实现动力学解算,dop中也会用到sop的内容(sop solver)。pop是粒子特效模块,从属于dop。
 
    5chop是通道控制,这个类似于程序化的一些控制,通道也就是节点的上的参数,可以添加紊乱,随机,三角函数之类的动画,有点类似与cinema4D中的MG动画等,但是它不能完全等价于动画模块,因为动画模块还包括关键帧,角色绑定,和动画等,这些可以在obj/sop模块中完成。
 
    6shop/mat  shop是旧版本的houdini的说法,现在统一为mat(material),但是本质上就是vop的内容,所以我们所谓的学习houdini的材质重点不是学习表面的参数,更核心的就是直接触碰到底部的编程内容。
 
    7rop是输出模块,可以输出渲染图片,也可以输出模型等三维数据(为了方便,把rop中的部分输出也整合到了sop中)
 
    8cop合成模块,其实也可以作为图片处理模块,既可以作为最后的工序,也可以处理素材。可以直接调用sop中三维数据,也可以作为合成软件处理rop输出的内容。
 
总结
    1在这7大模块中,sop和vex是houdini最基础核心的,sop是枢纽和基础(无论是最终输出渲染图片还是数据数据资产都必须通过它),vop和vex渗透在多个模块(直接构成了shop/mat模块)。
 
    2sop中你可以找到几乎houdini所有数据,比如多边形,nurbs,packed物体,还有volume,vdb等在其它软件中只有在动力学中才来找到数据和信息。sop中的点和动力学粒子中的点没有什么本质区别,sop中的volume和dop中的pyro也没有本质区别,包括流体最终也是要在sop中转化为可渲染的polygon或者polygonsoup类型。
 
    3houdini没有专门的动画绑定模块,因为它分散在 obj/sop/chop等模块中。
 
    4特效的实现同时涉及了sop,vop/vex,chop,dop等模块。如果只是考虑动力学的话那就是dop和sop模块。
 
    5模块之间的数据交换是很自由的,几乎没有任何限制。模块之间的分界线不会特别明显,很多时候是重叠,包含的关系。这就是houdini自由强大根基,让数据能够自由穿梭,不像其他三维软件很多模块是相互独立的,特别是那些收购合并的插件。
 
    6这也是为什么大家会觉得houdini难学,无从下手的原因。因为第一,它把高级的东西直接就平摊到整个学习流程中(比如代码,数学等)这些对于很多CGer来说是很头疼的事情。第二,无法像之前一样单模块突破,而是发现要学习的东西太多了,感觉拔出萝卜带出泥,学完一点又带出了另外一知识点。第三,无法获得即时反馈,也就是说感觉学了很多东西,但是做不了什么东西。这种从量变到质变的过程和周期比其他三维软件长很多(比如cinema4D)。

    7这也是houdini强大的地方:
    第一,由于把高级难度平摊下来,所以基本上只要入门了就是可以一路往下学习,直至成为大神(能够掌握houdini人在不同领域都是大神)不像maya和cinema4D等,虽然感觉开始简单上手,但是用了几年之后依旧是停留在点菜单和命令的层次,对于mel和xpresso还是不敢越雷池一步。
    第二个,你会把各个模块都关联起来,所谓的一通百通。你不在需要去记忆菜单,命令,而是掌握了规律之后自己就能推倒出他们结构的设置,学习起来越来越有逻辑,效率也越来越高。
    第三,当你有足够量的积累的时候,你会发现实现一种效果可以有多种方法,对于各种奇怪的要求,可以找到最适合和最快捷的方法,这时候的思维已经不局限于如何做,而是如何能够又快又好的做。这样不仅更加自由,自己的价值也会越高。当你摆脱软件的束缚的时候,才是设计师创意自由飞翔的时候~
 
benben
 
注:本文的作者是CG猎人,他们有关于houdini的付费教程,大家可以关注他们的公众号CG猎人了解更多

鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

粉丝0 阅读329 回复0
上一篇:
下一篇:
专注CG资源免费分享
全国免费热线电话

13077322288

周一至周日9:00-23:00

反馈建议

2018@cgkele.com 在线QQ咨询

扫描二维码关注我们

Powered by CG可乐网2018 © 2018 湘ICP备18017490号-1