【UE4文档翻译】矢量场

2018-10-28  本文已影响144人  闪电的蓝熊猫

除了高效之外,GPU粒子最有意思的一项功能,就是矢量场。矢量场是一种统一的向量网格,它可以影响场内的粒子运动轨迹。矢量场可以作为一个Actor放到世界中(作为全局矢量场),这样,它就能像一个Actor一样被平移、旋转、缩放。他们是动态的,并且在任何时候都可能被移动。矢量场也可以被绑定到粒子系统(通过Cascade),这样的矢量场称为局部矢量场,它只能影响与之相关的发射器。当一个粒子闯入矢量场时,它的运动状态就被矢量场影响了。反之,当粒子离开矢量场时,矢量场的影响也就消失了。

默认情况下,矢量场会给在它内部的粒子一个作用力。矢量场有个名为“紧密度(tightness)”的参数,这参数控制着矢量场内作用力对粒子的影响程度。当紧密度(tightness)为1时,粒子就会直接读取矢量场中速度,完全根据矢量场来运动。

静态矢量场是内部向量永远不会发生的场。这些场可以从Maya等3方软件中导出,然后作为立方体贴图导入到UE4中。静态场的好处就是它不占什么资源,而且也能创造一些有意思的运动轨迹。最关键的是,静态场本身也是能动的!!!

除此之外,矢量场也能从2D图片中重建出来。在这种情况下,图片更像是一种法线贴图的样式,把这张图绕着相应空间挤压、旋转,然后形成一个立方体贴图。重建完成后,还能添加一个静态矢量场来增加一些噪声和随机性。更进一步,2D图片可以通过在图集中存储单独帧来添加动画。这么做就让你能在离线状态下生成流体模拟,然后用较少的代价完成实时重建。

全局矢量场

全局矢量场,如同前面描述的,能被当成一个Actor放到Level中。但是不能直接从内容浏览器中拖进去,需要先放一个矢量场空间Actor进去,然后把矢量场关联到这个Actor上。

矢量场空间Actor

矢量场空间Actor并不是传统意义上的空间。在类浏览器中搜索Vector Field Volume,把它拖进level中。然后在Actor的属性里把矢量场拖进去。一旦加入,这个场就能被放置、旋转、缩放了。

所有的GPU粒子系统都能包含一个全局矢量场模块,这样,粒子系统就会受到全局矢量场的影响。

上图就能明显地看出在矢量场中的粒子和其他不在矢量场中的粒子运动状态的差别。

局部矢量场

称之为局部矢量场是为了和全局矢量场区分开,局部矢量场是一种只对粒子系统本身产生影响的矢量场,它不是真的被放到世界中。这意味着局部矢量场只会影响粒子系统的发射器,这点与全局矢量场完全不同,全局矢量场可以影响任何拥有全局矢量场模块的粒子系统。

局部矢量场的添加是通过局部矢量场模块

LocalVectorField.png

原文链接:Vector Fields
中文文档链接:矢量场

上一篇下一篇

猜你喜欢

热点阅读