隐藏在电影背后的神秘力量,竟然是 ta!!!

拿好你的爆米花,挑个好座位,舒舒服服地坐好,好戏要开始了……

有请数学闪亮登场

我们都惊叹于电影中计算机生成的难以置信的逼真图像。但是大多数人没有意识到的是:《侏罗纪公园》的恐龙和《指环王》(尤其是其中古鲁姆的出场)的神奇画面,如果没有数学,就不可能出现。但是这些惊人的图像是如何制作的?计算机图形学和计算机视觉是一门庞大的学科,在这篇文章中,我们将简单地看一下得到电影成品所需要的一些数学知识。首先,我们将创造电影中所看到的世界,然后把它变成现实。

设定场景

隐藏在电影背后的神秘力量,竟然是 ta!!!_第1张图片

以猴子模型为例,其表面的建模是由简单多边形(如三角形)组成的线骨架。

用电脑制作电影的第一步是创造故事中的人物和他们生活的世界。这里的每一个对象都需要建模,模型的曲面是由连接的多边形(通常是三角形)组成的,三角形的顶点存储在计算机中。根据三角形判断曲面的内外面是很重要的模型的这些信息按照顶点存储的顺序进行编码,可以根据右手螺旋法则判断其顺序:右手的手指按照顶点给定的顺序绕三角形卷曲,你的大拇指会落在三角形的一边——那一边就是外面。如果你用下面这个例子来尝试,你会发现三角形(A,B,C)的向外方向(称为向外法线)与(A,C,B)的方向相反。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第2张图片

用右手螺旋法则可以发现:(A,B,C)的外法线与(A,C,B)的方向相反

现在,物体表面是一个由三角形组成的丝网,之后可以准备给它的每个部件上色了。这部分需要真实地捕捉模型所在场景的灯光,这是通过一个称为光线追踪的过程来完成的。从我们的视角出发,将光线反向传播到物体上,再经由物体反射,如果光线与一个光源相交的话,此部分就用明亮的颜色来涂染,使这部分看起来明亮。如果反射的光线没有与光源相交,则用较暗的颜色来刻画这部分曲面。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第3张图片

从你的视点追踪光线到一个面,它是否反射并与光源相交?

要将光线追溯到一个特定的面,我们需要用数学来描述曲面,并求解包含光线和由该面描述的平面的几何方程,这一步可以通过向量来完成。将场景放到三维坐标系中,我们的视角在原点 ( ) 上,向量 表示从原点开始到坐标为 位置结束的箭头。我们可以把 乘以一个数字,比方说数字2,根据规则:

所以 代表向量方向不变,但长度拉长两倍的效果。

现在看表达式 ,其中 是一个变量,换句话说就是任何实数。由于代表长度的 是变量,因此这个向量长度不定,但是方向一定。换句话说,这个表达式表示的是包含向量 的直线,这条直线(或者说光线)从原点(即我们的视角)沿着向量 给定的方向发出。

三角形定义的平面可以用三条信息表示:其中一个顶点(不妨称之为顶点 )的位置,以及从 到顶点 向量、从 到顶点 向量

下面的方框给出了从我们的眼睛开始的光线方程和由一个三角面给出的平面方程。为了找出光线与平面是否相交、在哪里相交,以及计算反射光线的方程,我们需要求解包含这两个表达式的方程。

光线方程,其中 是实数, 是向量:

由顶点 , , 定义的平面方程:

(具体的求解过程这里不再详细展开,感兴趣的可以戳→这。)

光线追踪可以生成逼真的场景,但速度非常慢。当然,这对于计算机来说是可以接受的,但是当你需要实时改变灯光时,比如在电脑游戏光的改变,这个问题就变得复杂起来了。复杂一点的现象,如阴影焦散多次反射很难动态建模,这里要用到更复杂的数学方法,例如预计算辐射传输( precomputed radiance transfer,PRT)和辐射度算法(Radiosity)。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第4张图片

像《毁灭战士3》和《无冬之夜》这样的电脑游戏就需要动态光线

只需要一点简单的想象力

一旦场景设置好,灯光打好,我们只需要等导演大喊“Action!”,角色就可以动起来了。现在我们来看看数学是怎么让这些图像活灵活现的。

一个物体能做的最基本的运动之一就是绕着一个给定的轴,旋转一定的角度。坐标几何为我们提供了许多求解物体旋转后每个点的位置的工具,但重要的是这些方法的效率和速度。

为了了解这些方法,让我们从基础开始讲起。我们知道 有两个平方根: 。但是 的平方根是多少?为了求解负数的平方根,数学家引入了新的数字,叫做 ,其中 因此 ( ) ,我们发现

的引入意味着类似 这样的方程现在可以求解了。而被称为复数有着 这样形式的数字,也成为数学中的一个重要工具。虽然仍然有很多人对这个奇怪的假想数字 并不满意。(更多关于复数的介绍可以看隐藏在电影背后的神秘力量,竟然是 ta!!!_第5张图片这和隐藏在电影背后的神秘力量,竟然是 ta!!!_第6张图片这)

1806年,业余数学家让·罗贝尔·阿尔冈给出了复数和 的几何解释。阿尔冈将复数与平面上的点关联起来,实数 位于一个轴上,虚数 位于另一个轴上。例如,数字 对应于点(1,1)。一般来说,复数 对应于点(a,b)。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第7张图片

复数乘法有一个几何描述——旋转。

阿尔冈意识到复数的乘法有一个几何描述:旋转。让我们看看如果我们用 (由点(1,1)表示)乘以 发生什么:

它代表点(-1,1),即(1,1)(逆时针)旋转90度。

再将(   )再乘以

代表 ,即再次(逆时针)旋转了 90 度。

乘以 是(逆时针)旋转90度的指令!事实上,任何旋转,不仅仅是90度旋转,都可以用复数相乘来实现。

延伸到 3D

数学家威廉·卢云·哈密顿爵士也许是都柏林三一学院最著名的毕业生。他一生的最后二十年致力于寻找一种表示三维旋转的方法,这种方法类似于复数可以表示二维的旋转。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第8张图片

布伦桥上的纪念牌匾,哈密顿爵士正是在这座桥下散步时发现了四元数

在他生命的最后,哈密顿发现了答案,一种他称之为四元数的形式。

其中 是实数。

类比复数的操作,我们可以用几何来描述四元数并用它们来表示旋转。但这次不是二维空间的旋转,而是三维空间的旋转。

为此, 表示三维空间中的基本平面:即 表示 平面, 表示 平面, 表示 平面,它们的向外法线分别在 x,-y  z 方向。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第9张图片

可以被几何解释为三维空间的基本平面。

假设我们希望将点 ( ) ,绕从原点开始的向量 ( ) 旋转角 ,我们利用这个向量和角构造两个四元数

然后我们可以用这两个四元数乘以 (表示为 方向上的单位向量的组合)得出:

结果证明,这个乘法得到的点 正是向量 绕着给定的轴旋转角度 得到的点!所以就像复数可以用来描述平面上的旋转,四元数也可以用来描述三维空间中的旋转。

哈密顿在都柏林的桥上想出来的才华横溢的想法,虽然被证明是旋转三维物体的最有效方法,并没有得到所有人的认可。

开尔文勋爵、物理学家威廉·汤姆森在谈到四元数时说:“……虽然这个方法精巧绝伦,但对那些真正用到他们的人来说,可以说是‘一种不折不扣的邪恶’!”

尤其让人担心的是,当你把两个四元数相乘时,相乘的顺序会影响到答案,它们具有“非交换性”的性质。例如,从哈密顿的乘法规则可以看出 。当我们把 当作元素平面时,汤姆森和同时代的人们担心他们的数学运算性质会出现问题。

使图像栩栩如生

现在许多的图形应用程序图像的移动都用到了哈密顿的发明。计算机图形学中最重要的两个工具是变形插值插值关键帧技术涉及到指定对象的初始和结束形状和位置,并让计算机计算出中间的阶段,如下图所示。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第10张图片

茶壶的形状在一系列框架下逐渐变化。

这是一个最基础的蛇的动画(由Richard Wareham创建),其中整条蛇是由计算机通过几个指定点的移动插值来创建的变形是从简单对象创建复杂对象的一种方法,可以通过数学处理普通球体的场景来得出下面这样的布料落在变形球体的场景。变形和插值都需要快速和稳定的数学技术,而四元数相关的方法正好提供了这些技术。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第11张图片

一块布落在圆球上可以用物理定律来模拟

隐藏在电影背后的神秘力量,竟然是 ta!!!_第12张图片

然后操纵一块布掉到一个变形的球体上。

让古鲁姆看起来更真实

以上所述的技术是经典动画必不可少的工具,其对于创建动画人物的效果也是很令人满意的。但是,当我们用它来制作涉及到人类的动画时,我们可以立刻发现它的不真实性。要创建逼真的运动,运动捕捉是必要的。

很多角色,比如电影版《指环王》中的古鲁姆,都是用动作捕捉来塑造的。这是通过在真实的人身上的关键点(头、肩、肘、膝等)安装传感器来实现的。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第13张图片

古鲁姆的动作捕捉  来源:youtube

多个镜头对个体进行拍摄,传感器将位置变化存储在计算机上。将骨架拟合到三维数据中,然后将以上所述的所有信息都被当做是细节放到骨架上,从而创造出一个活生生的、呼吸的、移动的角色。

隐藏在电影背后的神秘力量,竟然是 ta!!!_第14张图片

隐藏在电影背后的神秘力量,竟然是 ta!!!_第15张图片

从附在身体不同部位的传感器上获得数据,并在数学上对数据进行了骨架动作拟合。

如果你坚持看完过整个电影演职员表,你会发现,一部成功的电影需要各种各样的创造性才能:作家、导演、演员、服装设计师、道具设计师等等。但是有一个名字经常会被忽略掉——数学。如果没有光线追踪的几何学或者四元数在三维空间的旋转,今天的许多电影都是不可能实现的。所以下次当你坐在电影院的座位上欣赏CG(计算机图形学)产生的奇观的时候,可以为这个节目的隐藏明星——数学,鼓掌。

注:古鲁姆为《指环王》中的角色

作者:Joan Lasenby

翻译:Nuor

审校:Dannis

原文链接:

https://plus.maths.org/content/maths-goes-movies

编辑:aki

我们是谁:

MatheMagician,中文“数学魔术师”,原指用数学设计魔术的魔术师和数学家。既取其用数学来变魔术的本义,也取像魔术一样玩数学的意思。文章内容涵盖互联网,计算机,统计,算法,NLP等前沿的数学及应用领域;也包括魔术思想,流程鉴等魔术内容;以及结合二者的数学魔术分享,还有一些思辨性的谈天说地的随笔。希望你能和我一起,既能感性思考又保持理性思维,享受人生乐趣。欢迎扫码关注和在文末或公众号留言与我交流!

扫描二维码

关注更多精彩

每一个魔术,都应该是一场直播的微电影!

一次刨根问底的收获——从一道微积分题说开去

序列周期性与魔术(六)——魔术欣赏与解析续集

《猫和老鼠》里的魔术艺术(五)——一定要合理!

扔硬币中的思考——隐含变量建模点击阅读原文,往期精彩不错过!

你可能感兴趣的:(webgl,activiti,机器学习,游戏,数学建模)