你好,欢迎来到川北在线
微信
腾讯微博
新浪微博
哪吒票房破20亿 他的声音竟来自这位小姐姐
时间:2019-08-04 18:28   来源:凤凰网   责任编辑:毛青青

    原标题:哪吒票房破20亿 他的声音竟来自这位小姐姐

    哪吒票房破20亿!知否工作室在此祝贺哪吒的制作团队,只要有所付出,就一定会有回报,辛苦了,为你们点赞。

关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」
  哪吒之魔童降世
 
  本文将简单讲述中国特效为什么还有很长路要走。
 
  特效的底层是数学
 
  传统的特效技术,聪明的国人已经掌握了,但是涉及到低层核心的数学部分,核心技术依然被国外所垄断。我们可以看一个对比图:
关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

《阿唐奇遇》剧照

关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」
  《疯狂动物城》剧照
 
  上图分别是追光动画制作的《阿唐奇遇》和迪士尼制作的《疯狂动物城》中的剧照。当时迪士尼只卖给了技术的一部分给追光动画。
 
  下面我们将通过COMSOL仿真的形式让各位对算法,即数学有更好的理解。
 
  首先我们先提一下流体的概念
 
  我们每时每刻都在流体中运动,陆地上的一切都被空气包围着,而在海洋中则被液体包围着,最详细的流体流动模型是以“第一原理”为基础的,如质量守恒、动量守恒和能量守恒。体现这些基本原理的数学方程由来已久,但在数值方法和数字计算机发明之前一直显得毫无价值。20世纪下半叶出现了计算流体力学(CFD-Computational Fluid Dynamics),这是一门处理流体流动数值模拟的新的应用数学分支。目前,基于CFD模型的计算机程序经常被用来预测各种日益复杂的流动现象, 仿真结果的好坏取决于模型的选择。我们看到的许多动画和特效软件使用的算法就是基于CFD中提出的。
关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

    PDE

    上面这个偏微分方程(PDE)通常称为对流扩散方程,可以通过质量守恒推导得到,ρ代表数密度,c为质量密度,通常认为c为常量,代表分子的质量,用 u=ρ×c表示。v代表对流速度,D代表物质的附加扩散速度,所以第二项为对流项,第三项为扩散项,右边第一项s为源项,若s=0,如果没有物质流入流出,则在这个特定的空间中,物质总量∑u在任何时刻都不改变。若忽略扩散,源项为0,质量密度c=1,则上述方程改下为一种简单而难以求解的形式,通常称为平流方程。虽然形式上只有两项,但是由于这是一个纯对流占优的数学方程,所以一般的数值算法会产生很大的数值波动。

关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

 

  如果按照微分方程分类,平流方程属于双曲型微分方程,通常双曲型微分方程的有限差分数值解法采用迎风差分格式法,Lax-wendroff法。如果不了解微分方程数值解法的话,推荐看一下清华大学陆金甫的书,浅显易懂。
 
  这里我们先构造一个一维的有限差分,取长度为1m,等分100个点,取v=1,初始的ρ=2,宽度为0.2的方波,背景高度设置为0.5,这一方波检验最早由David L. Book于1970年提出,后来发展为流体检测的通用检测方法,由于这里忽略了对流项,属于对流扩散方程中最容易不稳定的情况,在上述初始条件设置下,理想解应该是这一方波平稳的通过长度为1的间隔,可以想象成一个平静的水面上一个水波,如果无源(即水波不会减少也不会降低),无扩散(水波不会慢慢的“融化”),这个水波会一直保持着初始速度向前稳定运行。我们可以很容易在COMSOL的一维仿真下设置好初始条件,注意这里应该包含一个0.5的Dirichlet边界条件和一个流出的边界条件。
 
  以下我给出采用欧拉向后差分格式得到的结果
关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

    欧拉向后差分

    采用Lax-wendroff格式得到的结果

关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

    Lax-wendroff格式

    四阶龙格库塔法

关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

    四阶龙格库塔法

    可以看到一阶向后差分格式具有很好的稳定性和收敛性,但是精度低,波形慢慢变平,Lax-wendroff格式虽然精度高一些,但是产生了很大的数值涟漪,而且在h值变高时会出现发散不收敛的情况,这里我们采用一种将低阶的稳定性与高阶的高精度结合在一起的FCT算法来解决。

关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

  FCT算法
 
  可以看到添加FCT算法得到的结果兼具两者的优势,当然你也可以使用许多其他算法。
 

  由于COMSOL提供的算法很少,对于瞬态问题只有BDF,龙格库塔,广义-α这几种算法, 在流体模型中自带了两个算法,流线和侧风算法,那这两种算法表现如何呢,我在二维平面下进行了方波检测。关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

方波检测

采用侧风和流线算法后流体的数值振荡明显减小但是存在着很大的阻尼,本来的方波在经过一段距离后很快衰减成了一个椭球,所以可以看出COMSOL的流体模块的精度并不高。而且为了达到这样的稳定性需要计算机耗费很长的运行时间,而COMSOL又相对封闭,虽然有COMSOL LiveLink with matlab ,但是也只能在matlab 中调用解析形式的函数,无法在求解过程中实时传递变量的解。换句话说,COMSOL就像是一个黑箱,你把模型参数设置好以后告诉你只能用我自己自带的算法,如果你感觉不行你就别用我。

为了克服COMSOL无法添加算法,而课题要求我必须用COMSOL做仿真的矛盾,我花了很长时间在国外论坛查阅,发现早在2013年就有人问过和我一样的问题。

经过多次尝试后我采用其他方法实现了传参,并重新加入了FCT算法计算得到二维方波检验的图

关于哪吒票房破20亿背后的思考:中国特效还有很长的路「知否说」

二维方波检测

添加入算法之后的运行结果非常接近理论值。 这样我就可以做其他流体的仿真啦!

虽然COMSOL现在不支持用户搭建算法,而且在有限元的计算过程这块,特别是瞬态算法的计算,多物理场耦合问题,手册提供的例子非常少。不过数学模块中提供了一个事件(event)模块可以对他现有算法进行修饰,也基本上可以满足大部分的计算需求。毕竟绝大部分数理方程计算相对容易,比如热方程,泊松方程,都是无条件稳定的。所以COMSOL仍然是科研有力的生产工具,我也希望COMSOL公司未来可以对外开放更多的接口。

通过上面的仿真,类似的我们也可以实现对火、水、风、头发等任何流体或者类流体行为的物理仿真,简言之,就是让模型更接近真实。

希望通过这篇文章可以让大家对特效有更多元的理解。相信随着时间的推移,中国特效一定会越来越好。

再一次祝贺参与哪吒制作的团队成员,你们的付出是值得的。加油,所有正在奋斗的人!加油,知否工作室!

   投稿邮箱:chuanbeiol@163.com   详情请访问川北在线:http://www.guangyuanol.cn/

川北在线-川北全搜索版权与免责声明
①凡注明"来源:XXX(非在线)"的作品,均转载自其它媒体,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责,本网不承担此类稿件侵权行为的连带责任。
②本站所载之信息仅为网民提供参考之用,不构成任何投资建议,文章观点不代表本站立场,其真实性由作者或稿源方负责,本站信息接受广大网民的监督、投诉、批评。
③本站转载纯粹出于为网民传递更多信息之目的,本站不原创、不存储视频,所有视频均分享自其他视频分享网站,如涉及到您的版权问题,请与本网联系,我站将及时进行删除处理。



图库
合作媒体
IT袋 绿植迷 金宠物 领啦网
法律顾问:ITLAW-庄毅雄律师