54

最高5000倍加速模拟物理世界,育碧在修复bug上又进一步

 4 years ago
source link: https://www.tuicool.com/articles/U3I7Vb6
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

晓查 发自 凹非寺
量子位 出品 公众号 QbitAI

“买 bug 送游戏”对育碧游戏的玩家来说简直是常态。即使是育碧的当家游戏《刺客信条》、《孤岛惊魂》系列也是 bug 也是多到令人发指。

比如《刺客信条:大革命》中,主角的脸部建模突然失控,变成一张“滑稽脸”。

20190804-34358-20190804124323756-661723925.jpg

又或者是人物总会卡死在奇怪的地方。

20190804-34358-20190804124323757-1330446196.jpg

最近, 育碧蒙特利尔工作室 ,也就是开发出上面几款游戏的知名工作室,他们的研究员最近提出了一种游戏世界中的物理模拟方法,能够包括模拟布料的飘动和和其他弹性物体的变形。

这种方法结合机器学习,能比之前的标准物理模拟方法快 300 到 5000 倍,每秒甚至能模拟 3000 多帧画面!

文章的第一作者 Daniel Holden 在 Twitter 上公布了这项研究后,不少育碧玩家表示非常期待。

效果

研究人员在不同场景中模拟了不同物体在外力作用下的变形。

球在撞击一只兔子:

20190804-34358-20190804124323931-415479747.gif

人物在跳动的时候,斗篷和裙子如何随风飘动:

20190804-34358-20190804124323875-1880065000.gif

然而在实际的游戏场景中,发生变化的物体可能不止一个,所以育碧还进行了压力测试。让几百只兔子在同一幅画面中被挤压撞击,还有 16 个人一起在画面中跳舞,观察斗篷的变化。

20190804-34358-20190804124323781-1040195433.jpg

每个测试都能在 120FPS 和 240FPS 的帧速率独立模拟运行。

原理

这种方法的核心思想是将神经网络与子空间模拟相结合,产生一个可以完全在模拟子空间中运行的模拟步骤,并且能同时与外部对象进行交互。

作者使用 Maya 软件的 nCloth 离线获取训练数据X和Y,执行 PCA 获得压缩的表征Z和W。然后将Z和W输入神经网络φ进行训练,预测z*的压缩状态、给定对象z的先前状态z t-1 ,以及外部对象的压缩状态w*,从模型输出直接计算模拟对象位置x*和法线ñ*,用于渲染。

20190804-34358-20190804124323803-1219358860.jpg

算法中还包括多种优化,比如高效的 GPU 解压缩算法和顶点法线逼近方法。

这种方法一个重要的优势是它的性能,运行速度更快,内存占用更少。下表列出了,它与其他方法的对比。结果证明,该方法相比标准模拟方法中实现了~300×到~5000 倍的加速。即使与其他最先进的方法(如 HRPD)相比,它也具有良好的性能。

20190804-34358-20190804124323790-981393681.jpg

以上所有性能测试均是在 Intel Xeon E5-1650 3.5 GHz CPU 和 GeForce GTX 1080 Titan GPU 上进行。

当然,育碧最后还是逃不过 bug 的命运。这套方法也并非没有局限性,如果某些参数过大,仍然会产生错误的模拟结果。

前面演示的小球碰撞布料的模拟,如果小球的速度足够快,就能直接穿过去,好像布料完全不存在一样。


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK