曾经广受追捧的Naiad如何变成了Bifrost?

Bifrost怎么来的? 来自深夜小编 CG文章_CG资源

曾经广受追捧的Naiad如何变成了Bifrost?

*文章授权转自微信公众号「CG世界」

曾经广受追捧的Naiad如何变成了Bifrost?

专注研发软件的Exotic Matter公司为何甘心被收购?

这一切的背后到底是怎样的一个开发过程?

就让小一带大家走进其中,一起看看Bifrost的前世今生与这一切的前因后果吧。



提及Bifrost,如果你是每天使用Maya进行创作的话应该不陌生。可是你知道它是怎么一步步发展起来的么?今天我们从最早的起源开始说起···


时间退回到2011年,Exotic Matter公司正式对外推出流体模拟工具Naiad。在没有发布前其实它已经凭借参与《阿凡达》和《纳尼亚传奇:黎明踏浪号》而名声大噪,是由马库斯(Marcus Nordenstam)和罗伯特(Robert Bridson)共同开发出来的。



其实马库斯和罗伯特这两位大神最早是在DNEG工作的,也正是在DNEG的时候他们研发出了内部的流体系统FLIP(流体隐含粒子)求解器。FLIP求解器是基于粒子和基于体积的流体模拟之间的一种混合形式。所有流体数据都存储在粒子中,只有粒子需要逐帧保留,以确保不会发生不必要的混合或流体损失。


后来马库斯和罗伯特离开了DNEG,在瑞典南部的一个小镇创办了Exotic Matter此后他们对FLIP求解器进行了静水压力测试,把水放在玻璃杯里进行了验证,测试什么呢?他们要保证不会因为流体压力计算错误而造成水的体积减少、增长或膨胀的结论。证实 Navier-Stokes方程是可行的,这建立了团队开发软件的信心。


研发到这步的求解器已经能够以非常基本的方式启动运行了,但是还没来得及给页面上色,马库斯就接到了Weta Digital团队的电话。大致意思是维塔正在做《阿凡达》。在过去的几年里,他们尝试了许多商业软件和内部项目等东西,就是解决不了《阿凡达》电影中的一些水场景。


维塔曾尝试过这种方法,但还是处于初学者的状态,不能很好的运用。还有一些更先进的研发方法,例如PLS(粒子水平设定方法)。在理论上来说是可以用,但是实际情况是还没有可以做到这一点的产品,它只真正存在于ILM使用的PhysBAM中。(PhysBAM是一个多物理模拟库,能够仿真刚性和可变形体,可压缩和不可压缩的流体,固体与流体的耦合,刚性与可变形的耦合的固体,关节与人,骨折,火灾,烟雾,头发,衣服,布料,肌肉等的关节以及许多其他自然现象。


在得知马库斯正在研究流体模拟工具后,就给马库斯去了个电话。其实Naiad当时还处在一个不是很完美的的状态,但马库斯决定试试。

Marcus Nordensta


那么维塔找到马库斯到底要做什么呢?大家还记得在电影《阿凡达》中,有一幕是杰克被一只豹子一样生物追着跑,然后跳进瀑布,在水里上下摆动,再从水中游出来的镜头么??对,就是在FLIP求解器的帮助下完成的。牛逼吧?在那个年代啊。



马库斯的团队接手之后,把河床的几何图形加载到Naide中,只用了两三天的时间,就模拟把水加满了整个河床,可以说困扰维塔的大麻烦一下子就解决了。


早期的Naiad图


现在的Bifrost图


电影上映后之后,全世界特效制作人都开始关注FLIP,可以说是《阿凡达》成就了FLIP。


当然了成名的关键因素还在于FLIP本身的硬实力。其实在FLIP出现之前经常使用的方法是SPH(平滑粒子流体力学)。但是SPH有两大缺点阻碍了它的发展:一个是它必须连接到所有相邻粒子,以便它能够解决粒子之间的压力,但这是个特别费钱的办法。另一个是对稳定性的限制,也就是对象移动得越快,需要将模拟方法分割时间的步骤就会增加越多。


在《阿凡达》播出后,人们的反响很热烈,一部分原因是Naiad这款新的FLIP求解器的诞生,另一部分是人们惊叹FLIP求解器创造出的艺术。FLIP解算器使维塔的很多优秀艺术家有了用武之地。他们可以借助Naiad创作出更多令人惊叹的视觉效果。后来Naiad也不负众望,参与了很多大片里的惊艳特效。


说到这里,不得不说一个小插曲。火了之后,马库斯的邮箱天天爆满,其中有一位叫Igor Zanic,就是大家所熟知的“水神”,他很早就用早期的Naiad制作了很多优秀的流体模拟测试。这次他主动给马库斯发了封邮件,表示很想尝试下Naiad的beta版。其实当时马库斯还不知道Igor Zanic是谁,也不知道他很厉害。然后就给了Igor一个Beta版本。


那个时候的Naiad页面还是黑白的,也没有文档之类的,可以说是十分粗糙简陋。但这也阻止不了大神创作Niubility的特效。Igor Zanic在收到马库斯给他的beta版之后,用了两天时间就搞出来好几个效果,像什么鲨鱼水中跳跃和城市洪水泛滥等等。



这里放上“水神”的网站链接,

还想看更多作品的小伙伴可以去欣赏一下。

http://www.igorfx.com/


我们再说回到Naiad发展线上。火了之后,他们的生意开始火了起来,开始与很多大制片厂签约,还有一些内部研发的工作室,作为一家小公司开始慢慢盈利。可是随着壮大负担也增加了,还有公司运营上的一些杂七杂八的事情。经营公司嘛,这是肯定了。为了盈利他们后来也开始尝试各种方式。后来再去跟很多公司去谈合作的时候,他们想把Naiad技术授权给对方,对方的反应是“不,我不想要技术授权,我想收购你们。”当时来讲,正是Naiad大火的时候,两位创始人从没考虑被收购的问题。


而且那时马库斯和罗伯也非常坚信Naiad的发展前景,也深知Naiad的技术远不止可处理流体。


直到2012年,Autodesk找到他们,他们的想法开始“动摇”了。Naiad它虽然有节点,但用户并不能进入节点内部。甚至没有真正的脚本节点,更不用说什么可视化编程了。虽然他们可以选择继续“单打独斗”,可是如果想以更加稳固的根基影响整个行业的话,只有站在“巨人”的肩膀上了,最终他们选择了Autodesk。


在被Autodesk收购后,他们开始着手开发Bifrost。大家希望创造一个可视化编程的开放图,用户可以在其中进入节点并进行更改。同时也要利用LLVM之类的东西进行编译。理论上,这种技术可以帮助脚本和基于节点的工作流以与编译代码相同的速度运行。因为Naiad75%到80%的代码都是马库斯写的,他深知Bifrost的开发难度。从一开始研发Bifrost的时候大家的一个想法就是:要建立一个比Naiad更开放的系统。


从那时开始Naiad慢慢成为了Maya中的Bifrost。


Bifrost中效果的最终像素预览


开发过程是艰难的。因为需要LLVM用作编译器体系结构。所以他们开始研究LLVM技术。希望脚本、可视化编程和节点都能简单上手。LLVM是什么呢?它的本质上是一种叫做IR的东西,它是一种中间表示,一种低级语言。无论实际编程语言的实际语法是什么,都可以运行。不论你是用C++编写还是用Python编写,LLVM都会把它变成IR。在Bifrost中,是把可视化编程图变成了IR。


在Bifrost中模拟线束


从技术讲,一开始他们多少也接受了这种用IR表示的系统,然后用JIT编译它且创建可执行代码。JIT编译是一种执行代码的方法,它涉及到在程序执行期间(在运行时)而不是在执行之前进行编译。


它的好处是它提供了脚本语言的一些易用性,不会牺牲太多或根本不会牺牲执行速度,同时还需要构建前端,将可视化编程图转化为消耗的LLVM/IR,当然了,想要实现这些还需要大量的研发工作。它需要成为一个对艺术家更加友好FLIP解算器,自Naiad以来已对其进行了更新和改进。最终将在Maya 2015中将其发布为Bifrost流体解算器。这个全新的流体模拟系统,基于Exteric Matter的Naiad背后的核心技术开发而来。虽然在结构上是一种独立的技术,但Bifrost已与Maya视口完全集成。


Bifrost构建的不仅仅是一个工具,而是一种新的编程语言(是基于节点的),一个编译该语言的编译器工具链,同时也是制作完善、面向客户的功能和工作流程。


这个工程量也是相当大的,所以花了很长时间。做工程和产品设计所付出的努力与写新的C++节点是不能相提并论的,这些新的C++节点在现有的基于节点的环境中将实现新功能。


Bifrost的最初打算开发成为一个3D图形的可视编程环境。它所有求解器所基于的数据模型都非常开放。举个例子,在Bifrost中使用了可视化编程来添加立方体的顶点,然后添加联结将所有的面连接起来,从而在Bifrost中创建了一个创建立方体的节点。



目前研发团队还在研究一种能产生闪电的东西。用户可以用一些球体来引导闪电的路径。当人们开始使用Bifrost并进行可视化编程,就会发现它几乎可以完成与3D图形内容创建有关的所有工作


现在可以使用Bifrost制作很自然的烟雾,火灾和爆炸效果。用户还可以根据自己的需求设置合适的流速、烟雾密度等细节。不仅如此,还可以从一系列的燃料(例如甲烷和丁烷)中进行选择,处理器会自动创建逼真的烟雾或水蒸气效果。



流体模拟并不仅限于流体,它还可以用来得到火焰、火苗和泥沙等。大家可以通过这些图直观的感受一下Bifrost的强大。





在去年Bifroest开放了测试版,一些用户就对软件进行了大量的测试。

艺术家Maxime Jeanmougin进行了许多吊装和变形测试,并使用Bifrost进行了此类测试。



一位网名叫做李小龙的艺术家,他做了模拟一只雪豹在雪中行走的测试。



Duncan Rudd为卷须创建了一个非常酷炫的贝塞尔曲线变形器,用作章鱼的触手再合适不过了。



目前官方已公开宣布会出3ds Max版本的Bifrost beta,使用3ds Max的小伙伴们可以期待一下哦~


Bifrost中的颗粒


Bifrost的发展经历基本叙说到这里了。再后来就是我们今天看到的版本了。据我了解最新版是今年的7月份Autodesk发布了Maya版的Bifrost2.1版,增加了新的场景几何查询和更好的Alembic支持,改善了Bifrost的节点图中的工作流程等等。
从目前用户角度来看,Bifrost也是最被大家给予厚望的。在今天这个各种软件争雄的年代,Maya是否能依靠Bifrost重振雄风,我们也拭目以待。
参考:https://beforesandafters.com/2019/11/18/a-bifrost-journeyhttp://www.cgchannel.com/2020/07/autodesk-ships-bifrost-for-maya-2-1




*文章授权转自微信公众号「CG世界」

加载中