houdini中不得不掌握的技术集锦(7)DOPs入门介绍
—— 微资讯 · 微课程 ——
利用零碎时间,走上超神之路!
原文地址http://www.tokeru.com/cgwiki/index.php?title=HoudiniDops
由CG猎人独家翻译,转载请注明
开始进入DOPs中的模块,之前sop没有学扎实的同学不要急着进入这个模块,因为这里只会更复杂,而且还会大量用到sop中的知识。下面这篇文字关于dop的介绍非常好(基本上切中重点)。而且后面的分享中会吧DOP当成一个完整的部分来介绍(虽然里面有各种特效 粒子,破碎,烟雾流体等等)但是大部分是很相似的,可以通过类比进行学习和记忆,如果做过DOP的同学对这篇文章也一定是感同身受的。
1介绍
2资源
3注意事项:
3.1为什么dops网络与sop网络不一样?
3.2help帮助很好/很烂,查找神秘的属性
3.3Dop的属性面板很不直观。
3.4节点连接同样不是按直觉去做的
3.5基本的dop节点
3.6在案例之前最后的提示
1 介绍
当你认为你已经掌握了SOPs模块,然后进入了DOPs模块。
突然之间你感觉天翻地覆的变化。参数面板看起来不一样了,数据流不再是线性的了,geometry spreadsheet变得奇怪,甚至连接最基本的节点布局连接方式都看来有点奇怪,没有什么节点可以直线连接,基本上像似故意打破平衡。
通过几个月的一点点分割,我觉得也没有那么糟糕。虽然还有一些事情我觉得是不太好的布局或者过于复杂,但是现在我可以设置particle/pyro/rbd sims模拟,并且让我的同事能够很好接手。
讽刺的是,在Dop网络中很多刚开始的疑惑是由所谓的用户友好的工具架工具造成的。他们对于创建很简单,但是对于才分不太好,并且对于最后面理解为什么不工作的带来很大困难。
这些案例主要是关于创建简单的设置,并且带有一些参考,一些尽可能简短的介绍。有些文字比较散漫,有一些非常简短,但是核心点就是他们显示了技术还有需要设置某些效果的最核心的节点,这个课程并不是类似于那种2小时的大师班课程。
2资源
略
3注意事项
3.1 为什么dops网络与sop网络不一样?
很明显Dops并不是sops,他们并不不是通过节点流程直接编辑模型上的点,他们实际上是设置行为和关系。需要记住的是动力学阶段是基于前一帧的效果,所有dopnetwork的主要功能就这样设置。一个设置初始化的方法,并且在整个过程中不断重复数据流,从头到尾,然后再返回到头部,每一帧都是这样子。
还需要记住的是模拟并不是sops中的几何体处理过程;它并不一定要从头到尾的数据流。一个粒子系统可以在每一帧生成5000个新的点,一个RBD动力系统可以生成新的形态或者删除旧的模型,一个pyro解算器可以对固定的voxel进行控制,但是对于输入的属性,比如速度,可以每一帧都不一样。那种直线数据流程的sop节点并不能在这里有效作用。
这么说吧,其实很多dop节点在后台来说他们实际上是sop和vop网络,当我发现这些的时候都会很惊叹。比如,如果你进入到ripple solver节点内部,你看到复杂的但是还是可以理解的vop网络,对于sand/grain
solver同样是这样,还要其他节点都是。
通常说来,他们不像他们看来那么复杂,但是不是它们不复杂。从简单的 事情比如pop粒子网络或者ripple sovler开始学习。
对了,还有那个奇怪的geometryspreadsheet?你需要是属性都在里面,只是还要继续点击进入。在左侧的geometry spreadsheet,展开 object选项(比如pop solver中的popobject)然后点击geometry,这里就有之前很习惯的参数列表。
3.2help帮助很好/很烂,查找神秘的属性
虽然在帮助文档中的案例还是非常不错的,但是帮助文档的信息还是良莠不齐。更糟糕的是dop节点还有大量相同的文字对于通用属性,你需要花点时间跳过他们来查看案例。问题是当你意识到很多dop节点是依赖特定地点属性来完成一些有意思的效果,但是并没有很清晰的标志,或者这里有太多属性而找到有需要的属性很困难。比如说道packed rbd 物体,如果输入的geom中带有@deforming=1 属性,这就会告诉刚体模拟的时候把他当做非刚体属性。我只有通过odforce的文章才发现这个属性。查看了帮助文档里这个属性,虽然是有这个属性的描述的,但是并不清晰它是做什么,比如说这是个很cool的属性,在50中属性中间。
学习动力学的关键点是从其他人场景中拆分节点,也许我还在很陡的学习曲线上,但是dop网络并不像你在sop中边玩边发现学习的感觉。你不可能仅仅通过断开,重新把连接,换个节点链接等操作来实时看到不同的结果。更多的时候是你很自信你连接方式没问题,但是结果是物体不动,对比着案例,重新构建,然后有效果了。最让人沮丧的是你在暗中摸索着前进,但是很容易迷失方向。
3.3Dop的属性面板很不直观
粒子节点不算太差,一些高层级的volume节点,比如pyrosovler还算ok,但是还有很多节点当你看参数面板的时候感觉在看核反应的控制面板一样。很多熟悉又陌生的通用名称,每个单一的值都有一个下拉列表来让他们在每一帧,或者其他东西不太一样。再一次,你越用会越习惯,但是感觉还有很多东西可以整理,或者至少在高级层级中解释了为什么他们是现在这样子的。下面这个页面解释了,但是只有当你已经熟悉了dop网络才可以更好理解
http://www.sidefx.com/docs/houdini15.0/dyno/top10_medium
3.4节点连接同样不是按直觉去做的
很有可能最让人沮丧的就是dops的连接。为什么我连接这个力可以有效果,但是连接其他力就报错呢?pyrosolver中的4个接口中我应该在哪个接口中连接resize container呢?我如何把一个multisolver节点连接到一个已经存在的动力学网络中呢?为什么这个节点没有输入端,但是其他节点有?为什么感觉所有东西都不讲道理?深呼吸,再次提一下,你用得越久就越容易理解,但是在头一次进入dop中都是这种感觉。
好了,抱怨得够多的了。
3.5基本的dop节点
基本上所有的dop系统中都有相同的基本构成部分
source dops 要么加载物体到dop网络,要么创建geo
object dops 是dop系统的容器。比如对于烟雾流体,他们代表一个voxel 立方体,对于其他比如粒子系统,没有物理容器,但是存储了粒子数据,下面有各种类型
popObject for particles
rbdObject for rigid bodies
wireObject for wire sims
groundplane for a static infinite ground plane
staticObject to bring in collision geo
solver dops 模拟计算的地方,同样,不同的类型有不同的解算器
merge dops 类似于sop的merge节点,但是用来设置碰撞关系。默认情况下左边影响右边。所以你把有一个static 物体连接到pop sovler的左边,粒子就会和物体发生碰撞。
Force dops 处理力。这个节点放在merge节点的位置来区别效果。比如有两个流进入merge节点,如果力节点是在merge前,那么仅仅影响一个输入,但是如果在merge之后,那么就会影响合并的所有输入。
3.6在案例之前最后的提示
dop的赵兴方向是从上到下,然后是从左到右。因为每一阶段都是要再上一帧的结果为基础,看起来顺序并不重要,但是真实情况是,顺序还是挺重要的。
maya模拟特效使用集成的节点形式,在后台做了大量的工作(比如ncloth,fluids solver等)houdini继续保持把每个功能细分,没有什么是隐藏的。这个在一开始看起来很沉重,工具架工具会默认帮你设置。因为这些节点节点必须存放在某些位置中,所以一个autoDopNetwork会被创建。
正如我之前提到过的,shelf工具有时候会让dop网格看起来更加复杂。因为这个shelf工具努力让你的输入的geo不受到影响,把dop放在另外一个独立的网络中。这样一位着需要很多objectmerge节点把sop中的物体移植到dop中,还需要其他节点把dop网络中的解算结果移植会sop中进行渲染,有时候有另外建立了三个层级来进行渲染,还有一个用来预览......这些来来回回的传递会让人困惑。因此,我的专注点在小的,自定义的dop网络来做一些案例。