本文经AI新媒体量子位(公众号ID:QbitAI)授权转载,转载请联系出处。
嘿!瞧这行云流水的飘移,还有这丝滑的运镜,很飒啊。
友友们,是不是好奇它是咋拍出来的,又是经哪位大导执手?
但真相往往令人不可思议。
它,并不是拍出来的,而是CG技术搞出来的!
别急,还有更意外的。
是连“高中生”都能hold得住的那种!
这就是来自国产特效开发系统ZENO的力作,也即将在SIGGRAPH ASIA 2021中亮相。
效果之惊艳,甚至被会议的reviewers评价道:
推动了视觉领域的新SOTA!
Push the new visual SOTA!
这项研究背后团队,更是不容小觑——计算机图形学大牛张心欣创办的泽森科技 (ZenusTech)。
一作则是来自KAUST,以及还有来自UCLA的科研人员。
北京大学陈宝权教授曾经这样评价道:
中国CG-物理模拟领域有两位新秀,一南一北,很是热闹。
改变视觉SOTA的效果
现在先来仔细回忆一个事儿:
是不是在我们看大片的时候,船只在海上的镜头,经常是处于近景状态?
例如这样的:
△《加勒比海盗3》截选片段
而且在特效电影中,很少会有镜头给到中景或是远景。
就更不要提从近景到远景一气呵成的那种了。
这其中非常重要的原因就是,视觉特效的仿真模拟计算,只能在有限的区域内进行计算:
例如上图所示的那样,现在仿真技术只能是在“有界”(bounded)内,处理三维水体运动形态解算。
换言之,镜头若是一旦超过了这个范围,那就会造成我们经常说的“穿帮”了。
而张心欣团队的工作,之所以能得到reviewers们如此高度的评价,就是解决了这一痛点:
构造出了目前已知能仿真最大体积大范围海水的方法。
而且采用的还是最高效的计算手段。
也正是通过这样的方法,研究者们成功将原本只能在近景产生的逼真效果,传递到了一个“无穷大”的海面上。
不仅如此,还真实地创造了一个比三维解算深得多的“深海”, 给近海面处水体的运动, 提供了正确的运动边界条件。
那么顶级影视公司采用的技术,不好用吗?
可以做一个对比来看下效果。
左右两侧的效果,与中间的参考解相比,可以说是有肉眼可见的差距了。
而与更多的其它方法做对比后,也明显可以发现,该项研究中的方法,既能得到准确的波形,也能得到更多的水流细节。
现在再来回头看下本文最初的那个特效,在基于这样的方法之下,可以看到前面的船产生的浪花,甚至会影响到后面船体产生的浪花形态。
对于这样的效果,用张心欣的话来说就是:
化有界为无界,便可以追求拟真的更高境界。
如何实现逼真动画?
要想回答这个问题,就需要先了解一下边界元技术。
这个技术通常对流体运动做有势无旋的假设,把大规模水体的NS方程 (纳维-斯托克斯方程),简化成了伯努利方程。
这就使原本需要在三维网格求解方程的问题,转变成只需在水体表面上定义和求解拉普拉斯方程。
再简单来说,就是把原先复杂的三维问题,降到了二维层面来解决。
但流体相比于刚体等,自身就是属于最难的那种场景,加之理论上又存在于诸多局限性。
所以边界元方法即便是处理流体问题,也不会在复杂的情况下多见。
例如因为积分的奇点、控制方程的非线性,、拓扑变化难以处理等问题,就算是数学论文中的BEM,通常只能求解到波峰开始破碎的时刻。
怎么破?
理论不足,“工程来凑”:
该项研究提出的解决办法,将边界元方法发展成了一种具备稳定性,独立地就能模拟复杂水体动力学的技术。
具体而言,就是将边界元技术与传统的FLIP水体仿真方法,进行融会贯通。
例如在上面这个例子中,就不存在三维仿真解算的问题。
所有的计算未知量、计算的时间积分量,都仅仅存在于水体表面网格上。
这样一来,就大大减少了计算的内存或时间消耗。
也正是基于这样的计算优势,这种方法就非常适用于大面积、大范围、大体积水体运动的仿真。
△左侧为混合BEM-FLIP的案例, 右侧为纯三维仿真的参照。
除了技术理论上的研究,泽森的研究人员们为了让更多人能够实现诸如此类的特效,还特意打造了一个特效开发系统——ZENO。
这个系统不仅仅支持大量先进高级编程语言特性,更大的亮点就是低代码。
像文章开头的那张特效,甚至不需要敲任何代码就可以实现!
而操作方面也是极度舒适,是“连连看”的那种:
甚至连ZENO中的流体动力学、固体动力学、分子动力学解算器,都是ZENO团队自己用节点编辑器,而非C++代码开发出来的。
苦特效从业者久矣的另一个问题,就是开发高性能GPU代码。
这一点上,ZENO也提出了自己独特的尝试(此处特别赞扬@archibate, @littlemine)。
它内置的脚本语言是ZFX,结合ZENO的wrangler一起使用,可以在CPU和GPU上无差别运行!
此外,ZENO还提供了一系列好用的工具来帮助人们快速地构建场景。
对于几何形状的CSG操作:
对中间的开发步骤进行可视化:
从几何形状产生大量仿真运算的粒子:
并且,ZENO还具备完整的嵌入式计算开发工具链。
同样是在无需代码的情况下,就可以把ZENO编辑器开发的计算图,直接导入到C++交互式项目中使用,以此来处理物理计算部分:
不仅如此,在移动端(安卓)也可以进行高精度高性能计算!
而且ZENO团队还非常贴心地附上了案例和使用教程。
感兴趣的友友们,文末自提哦~
从皮克斯走出来的CG大神
能实现如此逼真效果,团队实力自然不容小觑。
那么最后,就再来说道说道背后的灵魂人物张心欣,以及他的初创公司——泽森科工。
与CG(计算机图形学)的缘起,得从张心欣的高中时期说起。
跟如今常提到的天才少年不同,他是个严重偏科的游戏小子。
美术和数学就是他最喜欢的课程。他沉迷于文艺复兴时期的艺术史,也陶醉于设计和思考数学问题。
至于其他课程emmm……论如何度过漫长的45分钟。嗯,想必在座各位或多或少研究过。(手动狗头)
至于玩游戏,他是认真的。
倒不是钦定几个游戏一个劲儿打,而是几百个单机游戏都有接触。
与其说是玩游戏,倒不如说是游戏测评。
那个时候当个“游戏博主”可不简单,他要从设计者的角度去考虑问题,比如精美画面、关卡设计、技术实现……
这也就驱动着他去翻技术论坛和互联网资源,也正是那时候才意识到原来国外精美的3D特效,背后需要如此高深技术才能达到。
张心欣告诉量子位,当时就萌生了个念头,有朝一日要开发这些顶尖技术,做出顶尖的游戏。
之后在大学自学CG以及皮克斯实习时光,真正引起了这个想法质变。
因为偏科,擦着二本线的他进到了浙江大学城市学院。
但是在接触到大学的数学物理教学后,他开始觉醒到原来这些就正是世界大战以来令人类世界发生巨变的力量。
在兴趣驱使下,张心欣自学图形学的相关知识和写代码。
最后熟练到什么程度呢?张心欣回忆道,当时相关领域的博士在一些科研项目上还会时不时向他请教。
从浙大毕业之后,他来到纽约大学读研究生,也是在那遇到了一生最难得的机会——
前往皮克斯实习。
AMP(美国电影艺术与科学学院),也就是颁发奥斯卡奖的那个组委会,在全美知名大学中选出5位计算机科学、数学的研究者,他们有机会前往好莱坞5家顶级工作室暑期实习。
当中就包括皮克斯、梦工厂、工业光魔这些知名团队。
经过层层面试筛选,他成为了这当中的五分之一,当时收到组委会的通过电话时,他直接激动得在大街上尖叫。
如今回忆起当年的实习岁月,他在皮克斯感受最深刻的就是科学要去服务于艺术。
不同于其他的工程师团队,皮克斯的技术人员除了要将paper转化为可用工具之外,还要这些工具转化成艺术家“看得懂、听得明白、理解的了、能够会用的一个个积木”。
利用本地的超算系统,艺术团队只需在软件界面动下鼠标,所有的画面效果经过背后不可见计算,直接实时回传到艺术家的手上。
基于这样的理念,在去年9月,他创办了泽森特工,担任创始人兼CTO。
我在公司当唐僧
取名泽森科工,也叫Zenus,张心欣这样向我们解释背后的含义:
Zenus拆解开来,分成Zen,禅宗、佛之意,Venus,则是维纳斯,所以中文也叫做佛系维纳斯。
除了佛系,禅在中文语境下也有道法自然、天然的意思在里面,也跟物理仿真追求真实与美相契合。
其实在创办之前,倒是有这样两个小插曲。
一个是实习期间,他看到了整个好莱坞影视产业化的全链条流程,感叹于国外顶尖特效技术,而国内类似团队都很少,与之匹敌更是寥寥。
他就由此萌生了要在国内打造类似团队的想法。
另一个则是在2018年,当时正好所在公司被谷歌收购,受北大陈宝权教授邀请来到北京电影学院未来影像高精尖创新中心就职,随后又加入腾讯游戏。
正是在这两个分别在电影、游戏的顶尖技术团队的工作经历,让他了解了当前国内的发展情况。
万事俱备之后,他创办了泽森科工,致力于打造ZENO物理模拟平台,目前团队10人左右。
他也借此勉励那些想出来创业的技术人员:想做就勇敢迈出第一步,比如先与妻子达成共识,得到她的支持和肯定。
如今,公司成立即将满一年,张心欣感叹,自己越来越像取经团队里的唐僧。
小伙伴们技艺都很高超,这我十分佩服。
我在团队中做的,更多是用技术服务于创新这一理念来影响和凝聚整个团队。
以至于让整个团队达到这个共同追求。
对于未来,他希望更多志同道合的小伙伴参与进来,投身进这一项事业上来。
正如曾在他一篇文章提到的那样:
我们一定要做一边看电影,一边推导数学公式和神经元网络的科学家。
ZENO 教程地址:
https://zenustech-documentation.readthedocs.io/zh/latest/index.html
ZENO Embed 使用教程::
https://zhuanlan.zhihu.com/p/397424868
ZENO Embed 案例:
https://github.com/zenustech/zeno_embed_demo