1.2 布料仿真模拟.doc

上传人:scccc 文档编号:11178045 上传时间:2021-07-09 格式:DOC 页数:21 大小:1,019KB
返回 下载 相关 举报
1.2 布料仿真模拟.doc_第1页
第1页 / 共21页
1.2 布料仿真模拟.doc_第2页
第2页 / 共21页
1.2 布料仿真模拟.doc_第3页
第3页 / 共21页
1.2 布料仿真模拟.doc_第4页
第4页 / 共21页
1.2 布料仿真模拟.doc_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《1.2 布料仿真模拟.doc》由会员分享,可在线阅读,更多相关《1.2 布料仿真模拟.doc(21页珍藏版)》请在三一文库上搜索。

1、第1章 动力学 21第1章 动 力 学Houdini的动力学系统使用可插式解算器仿真模拟显示世界中的事件,例如:两个刚体动力学(RBD)对象发生碰撞,布料渗透,弹簧和绳子等。Houdini动力学系统灵活性很大,它将一些本该是被初学者所回避的东西展示出来,并且应用到复杂的后期合成当中去。1.1 关于Houdini动力学1.1.1 概述用户可以使用工具架上的工具来创建复杂的仿真模拟,而不需要进入仿真模拟网络。但是,如果用户想要根据自己的习惯改变所仿真模拟的行为,加快仿真模拟速度或创建新的行为就必须明白Houdini的动力学系统是如何工作的。1.1.2 对象数据和解算器仿真模拟包括对象和数据。对象只

2、是数据的存放处,当用户在场景中看到对象时,例如RBD球,是因为Houdini根据惯例在浏览器和渲染器中绘制的对象的几何图形数据已经连接到了场景上。在某种意义上,连接到对象上的数据是任意的。数据名称和数据内容都没有限制,但是只有某些名称和类型的数据对于解算器来说是有意义的。解算器计算被仿真的对象(如RBD对象、线、布曲面和液体等)如何运动。解算器查看连接到对象上的数据(也可能会将一些数据连接到它们自己身上),然后使用这些数据来实现仿真,更多信息见解算部分。当用户在工具架上创建了一个仿真对象时,Houdini会创建一个更高级别的对象,如RBD对象,用户可以进入RBD对象节点查看它是一个真正的空对象

3、,并且连接有RBD解算器在仿真时所需要的正确数据,如图1-1所示。(许多动力学节点都是这样执行的,如数字资源中,封装末端网络的高级别节点只是将数据连接到对象上供解算器解算。)解算器将使用它所知道的数据,忽略它不知道的数据。所以,用户可以将有用的数据(如标量数据)或者任何任意命名的数据,连接到另一个RBD对象的解算器上,RBD解算器会将它们忽略。 高级别RBD对象 里边是一个带有RBD 在RBD设定对象节点内部是 设定对象节点的空对象 一个数据附属分支图1-11.1.3 detail view(细节浏览)detail view是用户查看下层对象和仿真数据的窗口。用户可以在标签上创建一个detai

4、ls view窗口。左边的树状图展示了场景中的对象和分类(如关系),分支代表连接到每个对象上的数据等级;右边显示在左边窗口中选中的数据区域和它们各自的值(如图1-2所示)。图1-2该窗口可以用于检查仿真效果的结构,用户可以看到当前播放节点的帧上哪个数据被连接到了什么地方,数据包的名称和独特ID,还可以看到组成数据的数值。提醒:当用户在进行仿真模拟时,细节浏览会进行动态更新。用户可以用它查看数据是如何随着时间变化的,但是它会减慢仿真模拟的速度。当用户不需要再使用仿真模拟从而使播放更流畅时,可以用窗口分区上的箭头将细节浏览折叠起来。动力学网络的细节浏览还包含将关系可视化的 affector mat

5、rix(效应器矩阵)。1.1.4 数据名称和数据共享1数据名称每个对象和数据片段都有名称,解算器在对象上根据名称来寻找数据。例如:RBD解算器会在对象上寻找一个名为Forces的数据,然后使用在对象中所寻找到的Forces数据来改变对象的位置。因为节点是使用名称来连接数据的,所以如果用户试图使用同种类型的多个节点(如:两个Fan Forces)连接数据,其中一个节点会覆盖另一个节点数据;因此,Houdini使用了Unique Data Name操作,给数据名称添加一比特的文本使数据名成为唯一的名字(如图1-3所示)例如,在下面网络中(如图1-4所示),只要两个Fan Forces节点打开了,R

6、BD对象就会有两段不同的力数据片段连接到这两个节点上:Forces/Fan_fan1 和 Forces/Fan_fan2。因为解算器会使用它在Forces文件夹下找到的任何力,所以如上步骤很容易实现。 图1-3 图1-4如果用户想让一个节点覆盖另一个节点,可以关闭Unique Data Name复选框,该节点将会被从左到右、从头到尾进行评估。用户还可以在set弹出的菜单中(如图1-3)用数据名称设置控制一个节点如何覆盖另一个节点。在连接数据的动力学节点上,每个文件夹都有一个弹出菜单控制右边的数值什么时候被设置在输入对象上(如图1-5所示)。图1-5Set initial在仿真模拟的第一个帧上设

7、置该数值,从该点开始,让仿真模拟控制数值Set always在每个帧上都更新该数值。如果用户想要使用该数值控制每个帧,或者如果数值被动画了不能被仿真模拟控制,就可以使用该数值Set never不要改变或设置该值,哪怕是第一帧也不可以Use default使用该节点上的Default operation 弹出菜单上的设置,这种方法可以一次改变或设置很多参数策略。默认状态的设置是Set initial2数据共享对于每个数据片段,Houdini都会给每个对象连接一段新的数据备份,或者在对象之间共享某个数据片段。在每个时间段内,Houdini都会给仿真模拟中的每个对象创建一个新的备份。对于每个数据片段

8、,Houdini都会为每个时间段的数据创建一个新备份,或者跨越时间段分享相同数据。Data sharing操作控制能够跨越时间段在两个对象之间分享数据(如图1-6所示)。图1-6No sharingHoudini不在对象间共享数据,它会为每个时间段创建新备份Share data across timestep在每个时间段内,数据名相同的数据可以被所有对象共享,但是每个时间段内都会创建几个新的数据备份,该选项可以用于用户所了解的、不依赖它所连接的对象的任何信息的数据上Share data across all time数据被所有使用相同数据名称的对象所共享,跨越所有的时间段。该选项可以用于用户所

9、了解的、不依赖它所连接的对象或者时间的,任何信息的数据上(即:对于所有对象来说时间都是相同的,对于整个仿真模拟过程来说时间都是恒定不变的)例如,重力可以跨越所有时间段被共享Share data across all time默认状态是no sharing,因为在该设置下才会产生和预期最相符的效果,但是如果用户知道该数据可以在对象之间或者跨越所有时间段安全共享,那么他可以使用共享操作来减少仿真模拟的记忆量;如果用户不使用共享功能,有些数据可能就要在每个时间段内都复制成千上万次,这些空间如果可以用于共享数据,实际上就是通过显著仿真模拟减少了记忆量。1.1.5 Unique ID、对象ID和对象名称

10、每个对象和数据都有一个绝对唯一的ID,这个128位的数字在所有时间内、所有机器上的所有仿真模拟中都是唯一的。用户可以使用该数值来表明在每个时间段内数据包何时被分享或者何时被重建。这个唯一的ID在细节浏览中是以对象上的一个区域和数据项来显示的。每个对象都有一个对象ID,这个ID就是在仿真模拟中标示出来的一个整数。与绝对唯一的ID不同,这个ID在超越了仿真模拟网络、计算机或者仿真模拟运行界限之后就不再是唯一的了。每个对象都有一个对象名称,对象名称是为了方便操作,与对象的ID数字相比,对象名称更便于记忆和识别。对象名称不是唯一的,即便是在同一个仿真模拟中,也可以有多个对象使用同一个名称(在很多情况下

11、,该功能还是很有用的)。在对象创建节点中(例如:RBD Object或者Empty Object),Object name参数控制被创建对象的名称。如果用户使用Number of Objects参数同时创建多个对象,就可以使用本地变量$OBJ将被创建物体数目连接到名称上。例如:如果Object name是brick$OBJ,Number of Objects是3,Houdini就会创建名为brick0, brick1, brick2的对象。细节浏览通常会通过名称来显示物体,但是用户可以将它切换到用对象ID的方式来显示。1.1.6 单位度 量 方 式单 位Mass(质量)kgDistance(距

12、离)m (1 Houdini unit = 1 m)Velocity(速度)m/s续表度 量 方 式单 位Angular velocity(角速度)degrees per secondDensity(密度)kg/m3Force(力)N (newtons)注:动力学引擎使用标准SI单位。因为Houdini使用米和千克作为基本单位,所以默认状态下都是描述巨大而沉重的对象。说明:见关系章节和动力学节点网络章节。1.2 布料仿真模拟1.2.1 概述布料解算器模拟可变形曲面,包括布料、橡胶和金属。任何一个SOP几何图形不需要进行几何测量就可以转变成布料对象。见关系章节中如何将布料与其他对象渗透。1.2.

13、2 工具架Cloth shelf tab(布料工具标签)包含了用来创建布块的工具。用户可以使用Drive simulation shelf tab标签上的Forces工具来影响布料,还可以使用工具将布料对象上的一个点钉在某个空间或另一个对象上的一个点上。1.2.3 重要节点Cloth object引入几何图形,作为布块使用Cloth solverCloth constraint1.2.4 有用的布料对象参数Stretch stiffness抗伸展性。该参数数值越大说明布料越难被拉伸Shear抗剪切性(沿布料平面的一种力,将一个正方形拉成平行四边形的力就是剪切力。)。当布料被悬挂在一个角上时会增

14、加这种影响,例如桌子上的桌布Bend stiffness增加该参数值可以使布料更光滑、更抗皱1.3 碰撞1.3.1 RBD碰撞展示Houdini支持两种类型的碰撞展示:体积和薄板。使用基于体积的普通物体碰撞和薄板碰撞来碰撞那些没有体积的对象。1基于体积的碰撞跟踪基于体积的碰撞跟踪为每个对象创建一个体积展示。用户可以将对象的体积展示可视化,并控制如何使用对象参数Collision标签中的Volume标签上的操作来创建它。为了跟踪碰撞,Houdini将一个对象的曲面展示和另一个物体的体积展示进行交叉,反之亦然。几何图形的默认曲面展示只是对象的点。这对于密度大、笨重的几何体可以行得通,但是对于边缘锐

15、利、没有很多点的对象来说就不再起作用了。用户可以使用边来代表曲面,在对象的参数编辑器中,单击Collisions标签,选择Surface标签,将Surface representation设成Edges。边展示要比使用点展示浪费得多,对于许多复杂模型来说这是不必要的过度行为;但是对于某些图形,例如面上没有点的立方体,就需要使用边。2薄板碰撞跟踪如果对象没有体积(如一张纸或一个平面),关闭Collision标签上的Use volume based collision detection,Houdini将把该对象作为一个薄曲面来对待。如果薄板对象与基于体积的对象发生碰撞,则使用基于体积的碰撞,但是

16、如果两个薄板对象发生碰撞,Houdini会使用逐角碰撞跟踪。注:薄板对象不好堆积,如果用户需要将薄板对象进行堆积,就应该增加DOP网络包含节点上,次级步骤的最小数值。1.3.2 布料体积碰撞当布料和RBD体积对象碰撞时,Houdini只使用RBD对象的体积展示(忽略了对象的曲面展示)。所以在布料体积碰撞中,确保RBD对象的体积展示准确性是十分重要的,将对象的体积展示可视化,确保其准确性和高数量分区。用户可以控制Houdini如何使用对象参数的Collision标签下的Volume标签上的操作来创建对象的体积展示。Houdini使用的是布料对象的边和面内的一些碰撞跟踪,但是面内的碰撞跟踪并不是最

17、完美的,稍大一些的碰撞体积会产生更好的效果。默认状态下,布料对象用0.01的碰撞体积偏移量(Volume offset在Collisions标签上)来进行弥补。当对象上出现窄隙(例如角色的腋窝)时,Houdini的体积展示就会变得不准确。有两种解决方法:将分区值增大;使用更多的存储和时间,将对象分成多个独立的相对比较凸的对象(例如:躯干和手臂)。当布料被夹在两个体积对象中间时,就会产生箍缩效应,这种情况通常发生在角色的布料上(躯干和手臂之间、大腿和小腿之间、手和胸部之间的间隙)。要解决这种情况可以将布料对象的Model参数设置成Fine。注:Houdini不精确支持布料和薄板对象之间的碰撞。1

18、.3.3 布料布料碰撞布料布料碰撞指的是两个独立的布料对象碰撞或者一个布料对象与它本身发生碰撞。布料布料碰撞跟踪很慢,用户应该随时重新构建仿真模拟,以防止速度减慢。注:布料对象的初始位置不能有碰撞,因为如果布料对象以碰撞开始的话,解算器将无法将它固定。1.4 动力学节点网络1.4.1 动力学网络容器动力学节点网络存在于一个DOP Network容器节点中(DOP代表动力学操作器)。该节点可以存在于场景级别中的任何位置。对于用在当前场景中的仿真模拟,用户可以在场景层面创建DOP网络;如果是用在数字资源中的仿真模拟,用户就可以在资源级别内部创建DOP网络。当使用工具架创建仿真模拟对象时,默认状态下

19、,用户会进入一个被称为AutoDopNetwork的动力学网络容器(如果该容器不存在,系统会自动创建一个该容器)。如果用户已经自己创建了一个动力学网络,并想让工具架使用这个网络,右击Resimulate按钮,选择“仿真模拟网络”(即工具架即将创建新节点的网络)。1.4.2 灰色和绿色接口动力学节点有两种输入点。(1)Gray(灰色)输入点是“对象加数据”。连接通过给对象添加数据,来通过或者修改对象。(2)Green (绿色)输入点是“数据”。它们代表了将要连接到对象上的数据或者使用Apply Data的节点。连接数据的节点通常既可以接受灰色输入(一个对象或者数据即将连接到的对象),也可以接受绿

20、色节点(即将连接到的数据包的积累)。节点将连接到的输入点的类型(灰色还是绿色)会改变同种类型的输出点。例如,一个简单的网络包括一个对象创建节点、力和解算器(如图1-7所示)。这种形式被称为“内联”或“以对象为中心”类型,RBD对象穿过重力节点,重力节点将Force数据添加到对象上,然后到达RBD解算器节点,RBD解算器节点将Solver数据添加到对象上,它与下面网络是等价的(如图1-8所示)。在这个“以数据为中心”的布局中,纯Force 和Solver数据从重力和RBD解算器节点中输出,适用数据节点连接到RBD对象上。 图1-7 图1-8注意连接数据的数据节点,适用于如上网络中这些节点,上的所

21、有节点(如图1-9所示)。在图1-9所示网络中,重力和RBD解算器节点会将Force 和Solver数据分别连接到3个RBD对象上,因为在该网络中对象接单位于重力和解算器节点上。使用混合节点和连接分支控制哪个数据应该连接到哪个对象上。确保一个对象只连接了一个解算器是十分重要的(见解算器,学习如何用多个解算器影响对象)。图1-91.4.3 显示、避开和激活与粒子和曲面节点网络类似,蓝色的显示标签标识着网络节点的output和endpoint,只有如上节点和带有显示标签的节点才是仿真模拟的一部分(如图1-10所示)。DOP上有个Bypass标签,用户可以查看有给定节点和没有给定节点的仿真模拟的状态

22、,通常用于在细节浏览中调试数据的创建。如果用户想动画对象或数据的外观,可以给给定节点的Activation参数设置关键帧。当Activation的参数值不是零时,节点是激活状态,可以影响网络;当Activation参数为零时,节点无效,就像打开了Bypass标签。图1-101.4.4 操作数据的节点(1)Empty Data node(空数据节点)创建新的数据(与几何网络中的属性创建节点 类似)。(2)Modify Data node (修改数据节点)编辑数据区域的值。(3)Copy Data node (复制数据节点)用选择性copy stamping复制对象内的数据。(4)Delete n

23、ode (删除节点)在模型基础上删除对象或数据。(5)Copy Objects node(复制对象节点)复制对象,与用选择性copy stamping复制曲面节点类似。1.4.5 用提取数据工具在节点之间移动数据Fetch Data node(提取数据节点)可以从网络中的一个对象的任何地方复制数据到另一个对象上,包括数字数据(如速度)或更复杂的数据(如对象的几何图形)。提取数据是唯一一个允许数据不在输入点上的节点。在使用仿真模拟上第一部分信息来驱动另一个仿真模拟时,该项技术通常是很有用的。例如:如果用户想要将一个漩涡形的力跟随在一个对象上(如用旋风来跟随小汽车),就可以提取对象上的positi

24、on数据,然后将它复制到漩涡形的力上。该节点在两步解算的数据连接步骤中产生效果。在解算步骤中复制数据时要使用Copy Data solver。1.5 流体密度和距离场1.5.1 概述Houdini也支持粒子流体,粒子流体是一种截然不同的方法,它使用粒子和波纹来模拟流体,模仿曲面上波的传播(见选择液体仿真模拟类型)。这种仿真模拟方式使用了一个称为场的假想的盒子,这个盒子又被三维网格分成更小的网格(有时被称为体素),这些网格中的每个点储存了一段数据整数,浮点数,矢量或其他数据类型。这种流体模拟总是被盒子所界定(流体无法溢出盒子外部,但是如果它到达了盒子的边缘,用户可以进行设置,让这些流体消失),模

25、拟的准确性会受场的分辨率(这个场被分成了多少个小盒)限制(如图1-11所示)。Houdini的动力学引擎可以用不同的方法对场内的点的数值进行分析。1密度场该类型的仿真模拟在动力学网络中使用带有Smoke Solver的Smoke Object。每个点上的数值都表明了该点上某物质的密度,这种方法可以用于模拟烟雾和气体。用户可以用volume primitive将被仿真模拟了的密度场引入到几何网络中。volume primitive是动力学密度场的等价几何代换(见流体场的输入和输出)。2标记距离字段该类型的仿真模拟在动力学网络中使用带有Fluid Solver的Fluid Object。每个点上的

26、数值代表与流体曲面上最近的点的距离,标记数字(正或负)代表该点是在流体内部还是外部。流体曲面连接场内的所有点,场内点与曲面的距离是零。这种方法可以用来模拟表面有张力的流体,例如水(如图1-12所示)。 图1-11 图1-12这和ISO曲面节点如何从3D公式为0的边界上创建曲面相类似。事实上用户可以使用ISO曲面节点引入标记距离字段作为曲面几何图形(见流体场的输入和输出)。1.5.2 工具架1创建场对象(1)Smoke container创建空密度场。(2)Fire container创建能够燃烧的空密度场。(3)Liquid container创建空标记距离字段。2添加密度流体(1)Sourc

27、e from objects将对象变为密度或流体生成源。(2)Smoke from object在密度场内某个对象的形状里创建烟雾。(3)Burst into flames在密度场内某个对象的形状里创建燃料燃烧。(4)Liquid from object在标记距离字段内的某个物体形状内创建流体曲面。3移动或移除密度流体(1)Sink from objects将一个对象变成被移除密度或流体的容器。(2)Pump from objects将一个对象变成气泵,给连接到该气泵上的密度或流体增加速度。(3)Seed vorticles创建大量的无形小桨轮,以推动密度或流体在盒子内流动。1.5.3 操纵流

28、体 (1)密度和流体都可以被动力学力影响,例如:重力、合力、风扇和风(见“外力”)。(2)当用户使用Source from objects或Smoke from object从一个对象上创建密度时,可以在动力学网络中选择对象,在参数编辑器中,在Physical标签下设置Temperature参数来控制生成烟雾的温度(增加烟雾的温度可以使烟雾上升)。(3)Source from objects工具架给源对象后添加一个叫set source velocity的运动节点。在创建时该节点是被避开的(黄色标签成打开状态,意味着该节点无效),但是用户可以进入动力学网络,关闭避开标签,使用该节点来设置烟雾生

29、成时的初始速度。(4)当Source from objects工具架创建了一个对象作为源时,它就使用混合节点在源对象和流体对象之间创建了源关系。用户可以使用混合节点上的Activation参数来打开(Activation = 1)或关闭(Activation = 0)源动画。(5)如果用户设置了流体场和刚体对象之间的碰撞关系,就可以用RBD对象来推动密度和流体。带有置换的RBD对象标记距离流体,推动并拉动烟雾密度。如果用户使用了工具架,它通常会为用户自动创建碰撞关系。使用工具架创建对象作为源、容器和气泵来添加、移除和移动密度和流体。使用Seed vorticles或者给混合添加嘈杂的风声,给烟

30、雾添加波动效果。1.5.4 将流体力可视化将流体力可视化见流体可视化1.5.5 速度和其他场流体对象实际上可以在场内的点上储存许多不同类型的信息。Houdini本身就会在每个点上储存所包含流体的速度,用于计算仿真模拟,同时它还会储存其他产生影响或者从所包含的流体上所计算出来的场。用户可以用流体对象上的可视控制来查看速度场(见可 视化)。当数据连接到流体对象上时,速度场和其他场都是可用的。速度场名为vel,因为像速度场这样的场都只是流体对象上的数据,用户可以将它们复制到仿真模拟的其他部分区(见如何在网络中移动数据)。如何使用一个流体模块中的速度场推动几何图形中的其他场或点(见Gas Advect

31、解 算器)。1.5.6 提醒(1)流体不会通过碰撞关系移动其他动力学对象,用户必须使用流体力节点。(2)一个场的适宜分辨率是每侧120分区,每侧分区多余250可能就显得有些过度。(3)流体仿真模拟的主要输出产物是不断改变的速度场。该速度场记录了所包含流体的运动。用户可以通过进行仿真模拟来bake out速度场,然后通过使用baked速度来使用被仿真模拟的烟雾,而不需要真正的运行仿真模拟。 设置流体的离线(或通宵)仿真模拟。 使用file或file数据节点写出流体对象的速度场(vel),作为离线仿真模拟的一 部分。 开始一个独立的流体对象仿真模拟,在通宵进程中写出的baked速度数据中读取 模拟

32、。1.6 力(1)重力:一个持续的、向下的拉力(沿Y轴负方向)。(2)合力:沿某方向的推力。(3)风扇:从一个点发出,向外呈椎体形状,随着距离增大风力不断减小。(4)拖拉:阻碍物体向前运动的抑制力。与空气阻力不同的是,拖拉力还要考虑对象的形状。(5)流体力:通过模拟流体运动来推动对象。(6)漩涡:像龙卷风一样呈漩涡状的力。1.7 粘合用户可以使用Houdini将分离的RBD对象粘连起来。这些对象会一直粘连在一起,直到外力大于它们之间粘连的力时,才能将它们分开。使用粘连功能主要有两个工作流。(1)将普通RBD对象粘连都另一个对象上。(2)创建一个chunked几何图形(即由多个独立的片段组成的几

33、何图形),然后将它作为已粘连好的整体引入。该功能可以用于将对象分块,然后将它们粘连起来与另一个对象碰撞,使粘连的对象破碎。提醒:创建破碎对象的简便方法是从一个完整的对象开始,然后用Cookie SOP先把一个模型切成小块和切割曲面(用以创建光滑切面),如球面或者参差不齐的多面体曲面。将每个cookie的结果都连接到Group SOP上,创建chunk组,再使用Merge SOP将生成的这些块混合起来。从大量的、分离的chunk中创建组的有效方法是先使用Connectivity SOP再用Partition SOP。连接性创建了一个属性(默认状态下通常为class),它给每个起连接作用的点或者基

34、本图形都分配了一个特殊值。用户可以用Partition来创建组。在Rule参数中,键入包含$CLASS变量的组名,例如:chunk$CLASS。目 标步 骤将一个RBD对象连接到另一个对象上(1)在RBD对象参数中,单击Glue标签。将Glue to object设成想要粘贴到其他对象上的RBD对象名称。更多信息见如何创建RBD对象(2)设置Glue strength和Glue impulse half life 来控制要将被粘连好的物体打碎的力的要求。关于操作器的更多信息见在线帮助上RBD Object operator建立分块几何 图形(1)在几何图形对象或SOP网络中创建模型(2)将每个

35、几何图形指定到一个group中使用某类型的有意义名称(如:chunk1, chunk2, chunk3, or chunk_leftarm, chunk_head, chunk_rightleg)。这样用户就可以在粘连对象中用类型参数将组识别出来(3)将它们混合起来创建最终的分块几何图形将分块几何图形作为已粘连RBD对象引入(1)使用tab菜单创建RBD Glue Object node节点(2)在粘连对象参数中,单击SOP path 参数旁边的“+”按钮,选择包含已粘连几何图形的SOP 节点或 SOP网络 (如上)(3)使用Group mask类型选择想要作为整体引入的组 (如chunk*)

36、,或者只用一个* ,则会引入所有组(4)单击Internal Glue 标签,设置Glue strength 和Glue impulse half life来控制要将被粘连好的物体打碎的力的要求。关于操作器的更多信息见在线帮助上RBD Object operator1.8 如何选择流体仿真模拟类型1.8.1 概述Houdini中有几种不同的方法来模拟流体。(1)粒子流体:模拟许多粒子的物理运动,然后用一个曲面将粒子包裹起来。(2)标记距离字段:在一个封闭的盒子里模拟点之间的运动。(3)波纹解算器:在一个曲面上模拟波纹的形成。每种方法都有其独特之处,可用于模拟不同的流体。1.8.2 对比1粒子流

37、(1)不只是局限于盒子内部,可以在场景中任何地方自由运动。(2)可以分离,形成凹陷,四处飞溅。(3)比标记距离字段更易于喷溅。(4)粒子之间形成的曲面看起来会像凹凸不平的糊状物的表面,除非使用大量的粒子。(5)离散粒子不易做成曲面,可能需要压制离散粒子。(6)需要将粒子从它们的最初安置点上放置到某特定形状中,可能需要预先设置模拟,以允许设置。2标记距离字段(1)模拟某空间内的流体(如水)。(2)可以分离,形成凹陷。(3)比粒子流体更有粘滞性,易于形成泥泞状物体。(4)比粒子流表面更光滑。(5)不需要安置粒子。3波纹解算器(1)模拟波纹,改变曲面高度。(2)波纹可以在边缘上反弹。用户可以通过渲染

38、属性来创建快速波纹、慢速波纹或者不生成波纹。(3)波纹无法形成凹陷,只能替换曲面上点的高度。(4)可用于模拟海洋曲面。1.9 输入输出和缓存1.9.1 概述本章节讲述以下内容(1)如何将信息引入到仿真模拟中,如从几何网络中抓取几何图形运用到RBD对象上。(2)如何存储仿真模拟信息,避免重复计算。(3)如何获取仿真模拟以外的信息,例如将模拟烟雾的体积数据放到几何网络中进行着色和渲染。1.9.2 关于动力学工具架当用户使用动力学工具,从已有几何图形容器对象上创建仿真模拟对象时,Houdini会在建立从几何图形容器到动力学节点(如RBD对象)的引入点,以及容器内部将动力学对象的转变引回到几何图形上相

39、应的DOP引入曲面节点上产生奇妙的效果。因此在RBD中,几何图形容器提供了需要仿真模拟的对象的形状和驱动结合图形转变的仿真模拟。这样,用户就可以迅速设定几何图形对象,将它作为被模拟对象,然后用仿真模拟驱动原始对象运动,不用再考虑引入和导出信息。本章节内容主要介绍引入和导出功能是如何实现的,如果有需要,用户可以自己手动设定。1.9.3 将几何图形引入到仿真模拟中用户可以使用如下节点从几何网络中抓取几何图形,然后将它作为Geometry数据连接到动力学对象上。引 入 对 象要使用的节点几何图形SOP Geometry纯量场(从体积基本图形上)SOP Scalar Field矢量场(从体积基本图形上

40、)SOP Vector Field对象位置和节点Object Position1.9.4 引入粒子引入粒子内容见粒子解算器。1.9.5 将仿真模拟存储归档到磁盘这些文件是独立于记忆存储的,Houdini自动维持整个仿真模拟,也会自动保持那些在用户改变参数时Houdini作废并再次创建的文件。与记忆存储不同的是,用户可以在Houdini不同的执行程序中间保存.sim文件,并在计算机之间移动这些文件(见如何优化仿真模拟)。1文件节点文件动力学节点可以在当前时段的输入点上从.sim格式文件中读取包含所有对象和数据的信息,或者将这些信息写到.sim格式的文件上,该节点有3种操作模式。(1)Write将

41、数据写到磁盘上。可以用于实现仿真模拟状态,用户可以在计算机之间移动这些文件或者将它们放到仿真模拟平台上。(2)Read从磁盘上读取数据。可以用来从已做好的仿真模拟上复述模拟状态。(3)Automatic如果磁盘上没有数据则自动写出数据,如果磁盘上已有数据,则读出数据。这是一种典型缓存,当仿真模拟第一次运行时,会自动存储它的模拟状态,在以后的运行中将会使用这些数据。要清除缓存,用户需要删除已保存的.sim文件。注:许多高层动力学节点在它们的接口上都有内置的文件缓存。例如:在RBD对象节点中,Collsions/Volumes标签上有File mode和File参数,用户可以将对象储存到磁盘上避免

42、再次计算它的碰撞体积。2文件数据节点该节点和文件节点非常类似,但是文件节点会从它的输入点上写出所有对象和数据,文件数据节点只写出一段数据。当在时间段之间只有几段数据发生改变时可以使用该节点。3动力学渲染驱动器用户也可以使用Dynamics render driver在当前时间段上保存整个仿真模拟。用户可以用这种方法来生成仿真模拟数据,作为渲染依赖路径的一部分。因为渲染驱动器不是仿真模拟本身的一部分,所以改变它的参数不会造成模拟再次运行。4Sim和sim数据文件文件节点和文件数据节点为每次调用在每个时间段上写出各自的文件,给出包含$SF变量的普通文件名,该文件名将会被当前时段数代替。更多信息见在

43、文件名中如何使用 表达。用户也许会想要用$ST(模拟时间)来代替$SF(模拟时段数),$ST会受到偏移时间和缩放时间操作的影响,但是$SF不会。如果想要用已储存的.sim文件再次进行仿真模拟,文件节点处于automatic模式,用户必须将文件节点设成write或者删除文件,这些文件将会被重建。提醒:当在多个.sim文件中归档时,Houdini使用唯一ID跳过记忆中已有的对象和数据的载入过程。1.9.6 将仿真模拟数据导出到其他网络中1数据参考句法用户可以使用下列语句在下面讨论的各种节点中来参考动力学数据。network path:name/data name名称可以是对象名称,对象ID或组名,

44、也可以是通配符。例如:网 络对 象数 据 名/obj/AutoDopNetwork:object1/Geometry如果用户将DOP网络设成引入节点,就会将每个对象的几何图形引入到仿真模拟中去。如果包含了一个对象名或ID(或对象名通配符,如:rick*),则会引入该对象的Geometry数据。如果包含了一个数据名,则会引入该段数据。提醒:用户可以从仿真模拟中抽出任意类型的几何数据,不只是最终已模拟的几何图形,还包括碰撞场,可视化和引导几何图形。从细节浏览中查看在给定对象上哪些数据是可用的。2几何图形和转变目 标步 骤从仿真模拟中将几何图形引入到几何网络中(1)在几何网络中使用Object Me

45、rge曲面节点从仿真模拟中抽取Geometry数据。(2)DOP Import曲面节点也可以从仿真模拟中引入几何图形DOP引入包括打开世界转换的操作,便于在本地空间内对对象进行操作,而不是在它最终的世界空间内。用户可以在曲面节点的曲面末端将另一个DOP引入节点,和另一个转换倒置放在一起来将几何图形移回自然空间的位置上使用仿真模拟上的位置数据作为对象的转变Fetch object 是一个几何图形容器,从动力学对象的位置数据上获取它的转变使用仿真模拟上的位置数据作为几何图形的转变DOP Import 曲面节点可以接受输入的几何图形,然后使用所参考的仿真模拟对象上的位置数据来转变输入的几何图形1.9

46、.7 流体场使用Object Merge或DOP Import曲面节点从流体对象上引入标量或矢量字段数据(作为体积基本图形)或几何图形来进行着色或渲染。动力学流体对象包含了极有用的数据,包括surface和visualization字段还有速度(vel)等字段。用户可以使用细节浏览来查看在流体对象中哪些数据是可用的。例如:(1)曲面标记距离字段:/obj/AutoDopNetwork:fluid/surface。(2)可视化几何图形:/obj/AutoDopNetwork:fluid/surface/Visualization。(3)速度矢量字段:/obj/AutoDopNetwork:fluid/vel。与实际曲面字

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1