白癜风症状 http://m.39.net/pf/a_4800901.html准备好爆米花和可乐了嘛?现在让我们开始观影吧~我们都会惊叹于现在各种电影中栩栩如生的计算机生成动画。实际上,如果没有数学,就不可能实现《狮子王(真人版)》中的各种动物,以及各路超级英雄电影中的大多数动作,比如《绿巨人》的浩克。但是电影工作人员是如何制作出这些的图像呢?计算机图形学和计算机视觉是一个大课题。但是,其中需要学习的一门关键学科——数学是实现这个魔术的关键。制作一部计算机生成的电影的第一步是创造故事中的人物和他们生活的世界。每一个对象都是被建模出来的,它们是由连接的多边形(通常是三角形)组成的曲面(如下图)。每个三角形的圆锥体作为一个点存储在计算机内存中的三维空间中。重要的是要知道三角形的哪一边在该对象或字符的外侧。根据右手螺旋规则,这些信息按照顶点存储的顺序进行编码:将右手的手指围绕三角形卷曲,按顶点给出的顺序。只有一种方法可以做到,你的拇指会在三角形的一侧,那一边是外侧。如果用一个例子来尝试,你会发现三角形(A,B,C)的向外方向(称为向外法线)与(A,C,B)的方向相反。现在,我们创造出的物体表面是一个由三角形组成的金属丝网,接下来要给它的每个部件上色了。在这里,重要的是要真实地捕捉我们正在建模的场景的灯光,这是通过一个称为光线跟踪(raytracing)的过程来完成的。从我们的视角出发,我们将光线向后追踪到物体上,让光线反射到物体上。如果来自我们眼睛的光线从平面(我们的一个三角形)反射并与一个光源相交,我们会用明亮的颜色来遮住该平面,使其看起来被光源照亮。如果反射的光线与光源不一致,我们用较暗的颜色来遮住这个面。要将光线追溯到一个特定的面,我们需要用数学的方法描述曲面,并求解包含光线和由该面描述的平面的方程。这是用向量来完成的,我们将三维坐标系应用到场景中,原点(0,0,0)——放置在我们的视点上。矢量
(
,
,
)表示从原点开始到坐标为
、
和
的一个箭头。我们可以把矢量
乘以一个数字,比如
,根据规则有:
所以矢量
就是与
方向相同,但长度为其
倍的箭头。现在我们再继续看表达式
,其中
是一个变量,它可以取任何实数。所以这里不再表示具有一定长度的箭头,因为长度变为可变的,而仅仅指示箭头的方向。换句话说,这个表达式描述了包含矢量
的直线。它描述了一条直线——一条光线,从原点——我们的视点,沿着矢量
给定的方向发出。我们的三角面定义的平面可以用三条信息表示:三个顶点各自的位置,分别称为顶点
,
和
,其中
和
表示从
到顶点
的矢量和从
到顶点
的矢量。下面方框中的内容给出了从我们的眼睛开始的光线方程和由一个平面确定的方程。为了找出光线是否与该平面相交,以及计算反射光线的方程,我们需要求解包含这两个表达式的方程。光线跟踪可以生成逼真的场景,这是一个非常消耗时间的工作,但对于制作计算机生成的电影来说是可以接受的。但是,当你需要实时改变灯光时,比如在电脑游戏中,这就成了一个问题。复杂的现象,如阴影,焦散和多次反射很难动态建模,这里使用了更复杂的数学方法,例如预计算的辐射传递(pre