【微总结】houdini世界第一伟大定律(CG猎人终极定律)

——  微资讯 · 微课程  ——

利用零碎时间,走上超神之路!


昨天在这个文章中提到了这个定律,今天就给大家介绍一下。这也是小编用了一年半houdini前几天突然感悟到的一个事情。由于小编目前经验有限,目前这个定律就是小编能够概括的关于houdini最核心和本质的定律,可以称为houdini的终极定律,夸张的表达就是houdini宇宙第一定律!

但凡是一些终极定律都是极简的,比如质能方程式E=MC² 还有熵定律,及简的表达,但是却有强大的作用。而小编目前认为houdini终极定律如下

IPO定律(不是原始股发行)

Input(输入)→Process(处理)→output(输出)

看到这里大家应该会是一脸懵逼,或者有两种反应: 反应一就是这个怎么会是houdini的终极定律呢,就是很正常的流程啊?反应二:这个我早就知道了,在houdini中很常见,有什么强大作用吗?

其实,要说知道,刚学CG的时候(还不是houdini)的时候就知道,只是真正领悟出来的感受是完全不一样的,是在积累了一定量的使用和思考后才的出来的顿悟。

所以感悟出来的那一刻很兴奋,有点像是走了那么久的路,原来我的目的地就是出发地。然而,我再也不是出发时候的自己。

这种感觉说出来很玄乎,下面我会具体为大家解释说明:

下面情况不知道大家是否会遇到

1版本不同了,教程里面某些节点参数变了,我就不知道怎么做了?

2明明按照教程里面步骤去做,为什么我的结果就不一样?

3我用教程的方法去做我自己的案例为什么行不通?

4我特效怎么调整都不好看,即使把解算精度提高得很高?

.........

我可以这样说,上面这些问题(还有很多问题)就是没有理解和应用好IPO第一定律的问题。或者说,自以为懂了了这个规律,只停留在表面。

一houdini中的IPO定律

对于小编来说,houdini就是一个数据流软件,输入输入,处理,输出,就是那么简单的东西。只不过houdini是有数组,数十组,数百组(甚至成千上万)组IPO组合而成,中间还会涉及到循环和嵌套,但是无论如何,本质就是IPO流程。

下面就是houdini中各个模块的展示

1obj层级下的

粒子模块,动力学模块和刚体模块(刚体模块直接导回到输入的obj进行渲染,如果你想,也可以和其他动力学一样单独导出渲染)。

2在 sop模块下

sphere输入 →transform进行位移处理→输出位移后的sphere→作为输入到group→在group中进行分组处理→输出带有组数据的shpere→输入到mountain→基于sphere和组数据进行形变处理→输出最终的形变结果。

3vop模块(包括材质模块)

4chop模块

5动力学内部模块(刚体和pyro烟火为案)

6cop合成模块

7vex表达式 wrangle节点

8 渲染模块

输入模型+属性(材质),输入灯光和相机→mantra 渲染器继续拧处理→输出定义内容

总结

IPO模式在贯穿了houdini的整个软件和各个模块,从上面各个模块的举例中可以如下特点:

1input整个输入可以是人为创建或者是已经存在的数据:比如sphere1就是人为创建的数据,我们给houdini敲入指令,创建一个sphere(其实内部也是一个IPO模式)。包括分组,我们可以手动框选,只是houdini不太推荐这种非程序话的做法。

2input不限制为一个,可以为任意多个。比如sop和cop中的merge可以合并多个数据,vex和vop中可以引入多个属性等。

3IPO可以作为一个很长的链条,上一个的ouput可以作为下一个的input,但是这个IPO流程是很清晰的,也就是肯定有input,process和output(当然,硬是没有process或者output这样没意义的操作也可以有,但是没有任何意义)。

4由于houdini中涉及了多个模块间的IPO,这里就涉及了不同模块间的IPO传输问题,这个是需要好好研究学习的。

回来说一下很多同学的问题

1分不清楚input,process和ouput的部分,所以出了问题都知道在哪里找?

2把houdini各个模块孤立学习,没有看到他们的本质是一样的,把每个知识点单独记忆,更不要说灵活运用了。

二 IPO定律的强大应用

1当你真正理解了IPO,除了问题就能很快定位到问题所在,并且会解决最开始提到的几个问题

·版本不同了,教程里面某些节点参数变了,我就不知道怎么做了?

·明明按照教程里面步骤去做,为什么我的结果就不一样?

·我用教程的方法去做我自己的案例为什么行不通?

下面举一个很多人在学houdini的过程中都会遇到的一个问题

给一个物体添加紊乱颜色:在point中使用turbulencenoise节点输出给颜色

但是当这个小球发生位移的时候,你会发现紊乱的纹理会滑动,感觉不是贴在模型表面上的。

有经验的同学很快就会想到这个简单,加个rest节点就可以了。但是这是为什么呢?还有其他方法吗?

这里我们先分析一下原因

在vop的链接中我们可以看到,我们输入的是P→链接到turbulence→Cd中,一个很简单的IPO模式。但是不同的是现在P是每一帧都在变化(小球每一帧都在位移),input在不断变化,那么turbulence输出的值肯定也是不断变化的啊,所以这就是滑动的原因。

好了,找到了滑动的原因,那我们的解决办法就是这个input不变就行了,但是这不只是有rest的这个方法,而是有很多方法,但是本着就是让整个input不会随着时间变化就行。

方法一

如果是通过transform节点做的位移动画,那么可以改变动画与颜色是顺序,让静态小球先生成颜色,然后再用transform进行位移。

当然,这种进限制于你用transform之后再houdini添加动画的情况,如果导入来的模型已经是有动画的了参考下面办法。

方法二 添加不变的矢量

rest postion节点分别链接到transform和 sphere两个input端口,会生成一个rest vector属性,然后再vop中bind引入这个属性,取代P作为控制turbulence。

好了,我们来看看这个rest属性到底为何方神圣?

当你拖动时间线的时候,你会发现,只有在第一帧的时候 rest=P,而其他帧的时候P不断变化,而rest保持不变。所以远离其实就是冻结了动画在某一帧,用这个不动的rest属性(存储某一帧的P的位置值)。

那么如果你想冻结在其他帧的的位置属性呢,使用timesshift节点,删除表达式就可以,比如第5帧。

那么我再拓展一下,为什么要用rest postion节点呢,为什么要是rest属性,我自定义一个属性来存储某一帧位置不行吗?

就是那么任性,我定义一个myvar进行控制存储就行了。

再往深思考一下,为什么一定是存储P呢,我能找一个不会随着时间变化的矢量属性不行吗?

比如uv,如果这个模型上有uv属性,无论小球怎么平移运动,uv是不会变化的。

1要确保模型有uv

2uv是在point层级上的,默认导入obj模型uv是在vertex层级上的,所以需要通过attribute promote进行转化。

再再往深入思考一下,实际上我们只是需要一个不会随着时间变化的vector,不用P,也没有uv,那么我们还有一个每个多边形必备的属性 点序号!但是你会说点序号是整形,不是矢量。的确,不过我们会转化的嘛,三个整形不久可以组合成一个矢量了哦。

最核心的就是ptnum这个点序号不会随着时间变化就行。

上面看似方法很多,其实本质的思想就是因为input随着时间变化导致了滑动,那么我们就如何让整个input不变,这就是一个本质的解决问题的思路,而上面所谓的各种方法都是整个思路的具体实现方法而已。

2 对于特效模拟,大部分同学只停留在对dop中的参数进行调整,经常忽略了input和output的处理。

左边是用一个sphere右边是一个torus圆环做法发射器的模拟

·输入模型场景的比例问题,如果想获得真实的效果,把场景尽可能地还原为真实比例,这样才可以做出真实的特效。不要用1米的水盆去模拟大漩涡,也不要用2米的杯子去模拟倒水,这样出来的动力学效果都不真实。

·对于破碎刚体等问题,比如破碎一个墙,你用一个box进行模拟,和对墙进行真实的构架 砖块,钢筋,水泥,和表面的石灰等进行真实建模,你这样还会为为什么我的box墙破碎没有细节了吗?

·对于pyro和flip等ouput后的灯光和环境反射非常重要,即使你解算出很高精度细节,不会大灯和没有好的环境反射,流体和烟雾一样不好看。

总结:

看完上面的解释不知道你对这个第一定律如何看待呢?对于小编来说,现在看教程,做案例和解决问题时候都会想到这个IPO第一定律。可以让看似复杂困难的步骤里面,让你学会思考,归纳和整理。当你很清晰地告诉自己,哪些是input,哪些是process和哪些是output,当你知道了除了问题我应该去找哪些环节,当你把复杂的步骤拆分成一个个简单的IPO模式的时候,你还会担心看不懂教程?理解不了和应用不吗?

反过来说,不要被一些所谓的大案例,大效果所吓倒,其实无非就是这些东西。甚至很多大案例里面的技术点远不及一些小案例对你有用,小编发现有不少所谓炫酷的教程,兜兜转转了半天,就只是在讲一个简单的IPO而已。

这都是一家之言,相信有很多大神或者高手会有不同的意见。但是小编觉得对家会有所帮助就无偿发给大家了,希望对大家有抛砖迎玉的作用!

顺便提一下,很多人问小编书什么时候可以出,现在就是问题所在了,因为小编一直在不断学习和快速成长,对书不断添加新的知识和技术,一直都未能最终确定,让大家久等实在抱歉。至于什么时候能出版,我自己心里也没有底,这个大家就顺其自然吧。

下面是小编这个月的一些案例展示,如果想更新看到小编的练习作品,可以关注小编的站酷地址,欢迎加关注

http://www.zcool.com.cn/u/2346925

直接使用houdini的vop进行特斯拉电圈模拟

做设计的好处就是可以用多一种方式表达自己的情感 纪念林肯公园主唱 Chester Bennington。houdini的volume体积光测试效果

看了《悟空传》的天空龙卷风:用VDB在sop中直接制作,没有进入DOP中解算。测试效果,直射拍屏,有点闪。制作时间3小时,电脑太渣,增加多一倍的精度会好很多~

其实这个的方法和小编之前书里组的那个不滑动的 跳跃海豚的案例的技术点是一样的,这个技术还可以做很多好玩的东西,大家期待教程吧。

沙尘暴材质渲染部分,收获非常多:1mantra的AOV相当方便,对geometry和volume的区别设置加快渲染 2外部obj导入基于材质路径进行快速分组和命名→研究了vex中的字符处理 3对于180张贴图基于名字快速适配,使用同一个材质球进行材质override,几分钟就完成了,效率很高。对houdini是越用越爽,越学越兴奋~~

之前公众号也分享过一套沙尘暴模拟的案例教程,所实话,十几个小时的教程没有什么技术含量,我做这个案例时间是一天包括解算,不过渲染2s就用了一个星期的晚上。搜获最多的不是流体模拟技术,而是如何处理obj模型材质分组的问题!

小编后来会做多一些所谓的大案例,都是以真实特效电影镜头为标准。但是说实话,对于学习的性价比不高,比如我花费了一个星期渲染,其实知识点都是我之前掌握的了,没有太多新的东西。建议大家抓好每一个小案例,比如上面那种闪电和体积光的,制作就一两个小时,一天一个案例完全是没问题,最重要的是可以快速学习到1-2个知识点,那就很不错了。

提醒一下:

明天一早6点钟我就要坐飞机赶赴四川,为其5天左右,这5里面无法回复大家信息,如果需要资源的同学请在5天后再给我截图,给大家带来的不便,实在抱歉!


CG猎人(Hunter_CG)专注于CG微资讯与微课程的分享(10分钟以内)。让广大CG爱好者与从业人员能够利用零散时间了解最新最具前景的资讯,了解国际技术发展动向与前沿市场动向。提供精挑细选实用微课程,从入门到高级循序渐进。通过知识总结与分享,共同进步。

分享教程和学习笔记,同时设计maya,3dsmax,softimage,houdini,cinema4D blender,modo和lightwave等常用三维软件,也包含reallow,naaid专门制作特效的三维软件;包含fumefx,rayfire,karakato和thinkingparticles等插件教程和学习笔记。


—— CG猎人——

微信号:Hunter_CG

QQ-540710114

为您提供最具前景的资讯与最适合的分类技术与学习教程

(0)

相关推荐