热烈祝贺数学资料网建站十周年!
当前位置: 首页 > 数学资讯 >> 数学新闻 > 内容页

电影中的数学1

时间:2013年09月13日来源:shuxue2013.com作者:数学资源网点击:
我们都曾经对电影里呈现出来的一些电脑制作的精美画面惊叹不已,可很多人不知道的是,如果没有数学,我们就无法看到诸如《侏罗纪公园》里的恐龙和《指环王》里的奇景,尤其是Gollum超炫的旋转。 这些令人啧啧称奇的画

我们都曾经对电影里呈现出来的一些电脑制作的精美画面惊叹不已,可很多人不知道的是,如果没有数学,我们就无法看到诸如《侏罗纪公园》里的恐龙和《指环王》里的奇景,尤其是Gollum超炫的旋转。

这些令人啧啧称奇的画面是怎么做出来的呢?答案是计算机图形学和计算机视觉学。本文将简单讨论一下一部电影是如何在数学的帮助下制作完成的。我们首先讨论如何描述我们所看到的电影画面,然后我们将讨论如何鲜活地呈现这些电影画面。

场景设置

首先,目标都用诸如三角形等简单多胞形组成的网格来表示

使用电脑制作一部电影的第一步是创造电影故事的人物以及这些人物所处的环境。这些目标都是用一些相连的多边形(通常是三角形)组成的曲面来表示。电脑要将每一个三角形的顶点记录下来。而且非常重要的一点是,电脑需要知道用于表示一个人物或目标的三角形的外部。注意一个三角形的外部是可以由右手旋转法则唯一确定的。这里右手旋转法则的意思是指我们的右手只有唯一的一个方式可以顺着一个三角形的给定的顶点顺序握紧拳头。这时候大拇指将指向三角形的一面,而这一面我们就定义为三角形的外部。读者可以试一下下面这个简单的例子。你可以发现三角形(A,B,C)的外部(或者叫外部法向量)正好与三角形(A,C,B)的外部方向相反。

根据右手旋转法则,(A,B,C)的外法向与(A,C,B)的外法向方向相反

我们用三角形组成的网格来表示一个目标的表面。接下来我们就应该对每个三角形着色了。其中很重要的一点是我们需要准确地描述我们所关心的场景的光照。这一任务通常是由一种叫光线追踪的过程完成。从我们的视点出发,我们反向追踪那些一个目标发出的通过反射后会进入我们眼睛的光线。如果一个光源发出的光线经过一个小平面(也就是组成目标的表面的一个三角形)的反射后会进入我们的眼睛,那这个小平面就应该是亮色。这样看上去就像是这个小平面被该光源照亮。反之,这个小平面就着上更暗的颜色。

从我们的视角出发,反向光线追踪一个小平面。这个小平面会反射一个光源的光线吗?

为了通过光线反向追踪到一个特定的小平面,我们需要用数学知识来表示一个目标的表面,并且需要求解一些涉及到光线和这个小平面所确定的二维平面的几何方程。这时候向量的概念就很重要了。对我们关心的场景,我们可以建立一个以视点为原点(即(0,0,0)这一点)的三维坐标系统。一个向量v=(a,b,c)表示的是一个从原点出发的矢量,其中在各个坐标轴上的坐标值分别是a,b和c。我们可以将向量v乘以一个常数。比如说,v乘以2,我们得到的新向量定义为

2v=2(a,b,c)=(2a,2b,2c)

因此,2v是一个与v同方向的,但长度是v两倍的向量。

现在我们看一下v这个表达式,其中λ是一个变量。也就是说,λ可以是任意实数。由于此时长度是个变量了,这个表达式也就仅仅能表示一个确定的方向,而无法表示一个有确定长度的矢量。换句话说,这个表达式表示了包含向量v的整条线。它表示了一条与v同样方向的从原点出发的直线,或者说从我们视点出发的光线。

由三角形小平面确定的二维平面可以由三条信息来描述:一个顶点(记为a1)的位置,以及表示从a1到a2和a3这两条直线的向量。

下面的方框里,我们列出两类表达式:即从视点出发的光线方程以及三角形小平面确定的二维平面方程。为了确定一条光线是否通过一个三角形小平面和他们相交的位置,以及计算反射光线方程,这两类表达式在我们需要求解的方程里都会出现。

光线方程:r=λv,其中λ是一个实数,v是一个向量。

定点是a1a2a3的三角形确定的平面方程:

λ=a1+μ1(a1a1)+μ2(a3a1).
Doom 3和Neverwinter nights等电脑游戏需要动态光照

通过光线追踪技术,我们可以制作出很逼真的场景。但这个过程非常耗时。如果用电脑来制作电影,这或许不是什么大问题。但是对于电脑游戏制作等,我们需要不停地快速改变场景的光照。这时使用光线追踪技术的话,速度就显得不够了。对于诸如阴影、散焦、多重反射等更复杂的现象,动态地建立数学模型来刻画这些情节是不容易的。这时候,我们需要更复杂的数学模型,比如预计算辐射传输和光能传输。

分享到:
已有 人参与所有评论