共有回帖数 0 个
-
Jos Stam在机场候机时,谈了一些关于Maya8.5,nCloth以及Nucleus方面的问题。
美国Autodesk的常驻首席科学家Jos Stam由于飞机延误,要在巴黎机场滞留了三个小时。因此,他决定用这三个小时来解决一个已经困扰他许多次的问题。于是,他坐下来,用他的笔记本电脑,一个记事本还有一些脑细胞,创造出来了Maya的另一个新技术——nCloth。当我问Jos,是什么让他得到灵感而创造出这个新的标准模拟计算构架。
他说:“布料的建模和运动时一个非常难以解决的问题。我在巴黎之行以前就一直在思考这个问题。让我困扰的问题是巨大部分真是存在的布料都有弹性(运动模式机遇弹性),这种弹性有利于制作有延展性和轻巧富有弹性的材料,但是对于衣服来说,他们基本上是没有什么弹性的。
有两种标准的数学方法可以解决Stam面对的问题。第一种是用一种叫做“显积分”(explicit integration)的东西。其结果是缓慢的模拟过程和布料模型的微小抖动。
另外一种方法就是强制性的抑制弹性。这就相当于一种“隐积分”(implicit integration)策略。“无论如何,那样做一般都会导致模型不够生动。”Stam 解释到。“我的办法就是反其道而行之。用刚性链接(rigid links)来代替弹性,之后软化任何一个想要被软化的拉伸部分。当我被滞留在巴黎机场时,我最终决定来实现这个想法。
我通常先将物体在二维空间里编码,在那布料以线的方式存在。这样,用类推的方法,一条一元的线相当于一块布料在一个二元空间里。在二维空间里创造原型是更为有利的,因为物体更容易形成视觉表现,更容易进行有效的建模。
Jos Stam说作为Maya Nucleus的关键之一,无论你是想解决线、布料、液体还是固体的问题,其实都并不重要。“基本上,你要解决的是存在于质点集之间存在的约束。在拉伸的情况下,我们想要保持质点系统中某些点之间的距离。至于是一条线还是一块布料,这都无关紧要。在hood下面,你所要做的事情就是确定你需要的每对质点和质点之间所要达到的距离。
核心思路Key Concept
Maya Nucleus标准模拟计算构架的核心思路是那些相互作用的不同元素可以用一种基于粒子相互作用的简洁计算模式表现出来。结构的核心就是将所有相互作用的元素看作一个相互碰撞,相互施压的粒子体系。许多复杂的动态元素表现,例如布料、头发、水,都是基于这些简单的原理。
碰撞Collisions
布料为什么难解决的另外一个原因是物体间的碰撞与自撞。事实上,碰撞可以看作为像拉伸一样的约束器。例如,一块布的点绝不应该在一个碰撞物体表面的内部,这就是对粒子体系的一种制约。当Alias正要鼓励Stam去写关于如何解决布料问题的时候,Stam已经解决了这个问题。
另一个挑战是如何处理快速运动中的物体碰撞。早期的许多技术只是简单地将一个碰撞固体的布料至高点推出去。但是在Maya 里,这种方法经常不起作用。
例如,设想一颗高速飞驰的子弹穿过一块布料,在模拟的第一步和最后一步,子弹将处于一种有效状态。正确的方法是应该考虑这种情景在四维时空里,会发生什么状况。Jos Stam就是将这种方法运用在Maya Nucleus里。
他解释道:“然而,这种方法不会限制于布料。在Maya Nucleus里,我们解决时空里点、边、角之间的碰撞问题。更棒的是,我们在这些原始的形状上增加了厚度。这样我们最终就可以解决球体、方柱体,三角柱体的碰撞。
这样流动的粒子就可以与布料的角和边线碰撞了。核心碰撞编码可以控制各种这样的原始形状,而无须去注意它是否是液体,线条还是布料。
稳定Stable
Maya nCloth 很酷的一点是它非常的稳定。Nucleus 通过一个反复的过程创造了这种模拟计算方法。在模拟过程中先前计算失败的点会反复地重新开始计算,在Nucleus里是允许这种模拟计算失败后,被新的模拟计算覆盖的。这里隐藏的核心概念是我们常常保持粒子的先前阵形,并且直到所有的伸展、弯曲、碰撞等约束器满足后,才开始解决新的速度。
当然,这并不是经常发生。在这种时候,Maya Nucleus会回到最佳的速度。一旦完成,新的阵形在加速旧的阵形的基础上开始计算。
布料的运动方向也是一个重要的问题。在Maya nCloth的动画制作可以通过使用一个引力网(attracting mesh)来引导布料的运动方向。
布料模拟计算的每个时段不仅重视例如拉伸、碰撞之类的所有要素,也同样设法与引力网格保持靠近。动画制作可以控制网格网格所吸引的数量。另一种控制布料运动及触感的方法是通过混合存储器。动画制作可以储存不同版本的布料模拟计算方式,之后将它们混合起来。
气压Air Pressure
气压、风、空气密度和空气速度都属于Jos Stam的研究部分。这项工作是由Maya Nucleus工作组里的Duncan Brinsmead开发的。之后Jos Stam将他用数学方法计算出来并为其进行编码。“我们开发了一种解决风中布料如何反应的提拉模式。” Jos Stam说。
“很棒的是,我们可以表现例如产生波纹这样有趣的动作,而无须有精确的空气模型。即使一个简单的风向区域模型也可以产生有趣的飘动。因为提拉约束器在和伸展约束器进行对抗。我们也可以给布料加一个简单的恒量模型。反向参考气体的规律,我们知道压力与the volume of the mesh是成反比的。通过这个模型我们可以模拟气囊,气球甚至是简易的降落伞。” Maya Nucleus是一个完全由Stam实现的独立资料库,它与任何产品都无关。“这是一个主要针对Maya,带API(应用程序接口)的核心资料库。”Stam解释道,“但是原则上它也有可能运用在其他产品上。”
Autodesk鼓励并且追求这些例如Maya Nucleus 和 Maya nCloth的新想法。 Stam说:“事实上,整个Maya Nucleus方案的产生是一个非常有挑战性和危险性的计划。不过说真的,我非常享受我的工作。即使这个工作刚开始的时候,我仍然是Alias的一员。Autodesk真正继承了Alias的精神,并且在创新方面始终保持着锐利的眼光。
楼主 2015-06-12 18:35 回复
Copyright © 2010~2015 直线网 版权所有,All Rights Reserved.沪ICP备10039589号
意见反馈 |
关于直线 |
版权声明 |
会员须知