走过半个多世纪,计算机图形学的发展告诉你5毛钱电影特效有多难

      最后更新:2020-04-02 11:31:15 手机定位技术交流文章

      机器分析网络的核心

      作者:李媛媛

      编辑:H4O

      随着2019年ACM图灵奖颁给计算机图形学领域的两位学者帕特里克·汉拉汉和埃德温·卡特莫尔,人们也开始重新关注CGI及其在印刷媒体、视频游戏、商业广告、交互式多媒体等领域的应用。本文以时间为轴,以皮克斯电影为重点,讲述了20世纪50年代以来电脑图像的发展。

      2019年ACM图灵奖授予了计算机图形专家帕特里克·汉拉汉和埃德温·卡特莫尔,以表彰他们对概念创新、软件和硬件的贡献以及对计算机图形的根本影响。最后一个图灵奖授予了计算机图形学领域的科学家。那是32年前的1988年,计算机图形学之父伊凡·苏泽兰因为他的发明画板获得了图灵奖。这种图形用户界面的早期版本直接影响了计算机与用户交互的方式,现在它已经在个人计算机中无处不在。它发明了一系列在当今用户界面中被视为“基本操作”的功能:绘制水平线和垂直线,将绘制的线组合成不同的形状,调整图形大小,旋转图形,缩放窗口等。

      帕特里克·汉拉汉和埃德温·卡特莫尔获得了这个奖项,他们从另一个角度深刻地改变了我们的生活。作为皮克斯的创始人,埃德温·卡特莫尔也是华特·迪士尼动画工作室的总裁——他们的贡献主要集中在从计算机图形学发展而来的计算机生成图像(CGI)技术上。他们的研究结果表明,由电脑绘制的故事片可以给电影制作带来新的灵感。

      正如帕特里克·汉拉汉和埃德温·卡特莫尔对电影制作感兴趣一样,电脑动画因在电影和电视作品中塑造人物而广为人知,也被称为“电脑动画”。例如,迪士尼动画电影中的所有角色都是通过电脑合成技术创造的。然而,CGI也广泛用于印刷媒体、视频游戏、商业广告、交互式多媒体等。例如,宜家70%以上的场景地图是在电脑中建模和渲染的,而CGI的商业应用仍在逐年增加。如果我们跳出计算机图形学的定义,进入它的母领域——计算机图形学,那么应用该技术的研究几乎涉及到我们生活中与计算机相关的所有方面,如用户界面设计、渲染、光线跟踪、计算机动画、三维建模、着色器、图形处理器设计等。

      为什么CGI被如此广泛地使用?直观地说,CGI的主要目的是提供足够逼真的视觉效果。这种视觉效果最直接的效果是提供更好的感官体验——例如,电脑图像处理技术被用来给计算机生成的图像添加一些“瑕疵”,使它们更接近我们在现实生活中观察到的图像。或者渲染一些纹理——头发、皮肤、布料等等。,计算机直接生成的图像通常太清晰,没有纹理。在一些现代医学治疗中,CGI已经成为精确模拟患者器官的手术计划的一部分,因为一些植入产品需要根据患者的情况进行高度定制。类似地,由CGI生成的3D建筑模型比传统的绘图更精确,并且可以提供交互体验,从而为客户提供更好的概览,并且能够检测细节和特殊的应用环境。因为交互式可视化可以动态呈现数据,所以CGI还允许用户从多个角度查看数据,例如复杂机械结构的可视化。

      在过去的半个世纪里,CGI从电影行业起步,并悄悄地将其影响力扩展到视频游戏行业、虚拟现实、现实和其他行业,包括数据中心管理和人工智能。在本文的以下内容中,以皮克斯为中心,通过半个世纪的电脑图像处理的发展,我们将看到电脑图像处理是如何从一些非常基本的应用发展到今天的规模。

      20世纪50-70年代

      这一阶段是CGI的创建和发展时期,一个“从无到有”的时期。

      1958年,希区柯克(siralfred hitchcock)发布了第一部基于CGI的电影《眩晕》(DISTYLOR),在这部电影中,一个绿色的螺旋动画从眼睛里慢慢升起。这个“简单”特效是世界上第一个电脑动画。

      电影《眩晕》的截图。来源:youtube

      这一时期最重要的技术之一是由康斯坦蒂诺夫领导的一群苏联数学家和物理学家开发的猫运动的物理和数学计算模型。该算法在BESM-4计算机上编程实现。当它被使用时,数百帧需要由计算机打印,然后转换成电影。他们使用的模型和他们的理论构成了当今动画电影和电脑游戏的基本技术之一。

      然而,总的来说,在过去的十年里,直到下一个十年的到来,对计算机生成技术的研究还很少。

      70-80年代

      20世纪70年代,埃德温·e·卡特莫尔和其他领导人逐渐开始了他们的工作。当时还是犹他大学学生的埃德温·卡特莫尔与弗雷德·帕克合作制作了世界上第一部3D多边形动画:1972年的电脑动画手。这个动画模仿了他自己的左手,被认为是CGI历史上的里程碑之一。

      动画电脑动画手截图。来源:youtube

      1974年,弗雷德·帕克在一篇发表的论文中将他们的工作扩展到了人脸建模领域,这是世界上最早的高保真人脸三维绘制作品之一。这两份工作最终在1976年的电影《未来世界》中结合在一起。由于埃德温·卡特莫尔和弗雷德·帕克的杰出工作,犹他州立大学的计算机图形实验室吸引了来自世界各地的人们。这些人当时分散在各行各业,并创造了许多意想不到的联系——例如,约翰·沃诺克,他在他之后创建了Adobe Systems。

      电影未来世界海报来源:https://en.wikipedia.org/w/index.php?·居里=5819539

      在这一时期,计算机生成技术得到了突飞猛进的发展,在这一时期,产生了大量目前使用的算法的雏形。其中,最重要的可能是这一时期渲染技术的突破。在CGI技术中,图像通常在最初创建后进行渲染,渲染效果将直接决定模型和动画的最终显示效果。简而言之,渲染包括如何将三维物体投影到2D图像中,并尽可能符合我们用肉眼观察到的几何效果。

      下图给出了一个简单的例子——在图的左侧,您可以看到一组已经建模的3D对象。每个对象的位置和形状由几个顶点定义,其中顶点简单地由直线连接并形成多个平面以形成对象的表面。显然,在现实世界中,我们不能直接看到物体的遮挡部分。因此,渲染程序首先需要根据定义的视角确定哪些表面可以观察到,哪些不能观察到,如下图所示。随后,渲染程序可以对对象的表面进行着色,以进一步突出其表面纹理、对象位置和其他信息。在下图的右中间,对象只填充了不同程度的灰色,不涉及更多步骤。在实际应用中,为了不同的目的,渲染程序可以关注图像的不同特征——给图像添加更丰富的颜色和亮度,给物体表面添加纹理,给物体表面添加凹凸起伏,模拟光在不同环境(如雾)中的散射效果,添加阴影,增加反射,调整透明度,增加光的折射效果,模拟间接光源照明的效果,增加景深,运动模糊,以及增强图像的艺术质量而不追求真实感等。

      一个简单的渲染示例来源:http://www.graphics.cornell.edu/online/tutorial/objrender/

      更准确地说,渲染是通过计算机程序从三维模型生成2D图像。在这个定义中,模型是用语言或数据结构对严格定义的三维对象或虚拟场景的描述,包括几何、视点、纹理、光照、阴影和其他信息。如前所述,为了不同的目的,渲染程序可以关注不同的角度——纹理、纹理、透明度、真实性等。呈现对象本身的。使用计算机语言来模拟这些过程涉及大量的几何原理、光学原理和数学计算。皮克斯在今天的电影动画中有如此重要的地位,很大程度上是因为他们在渲染领域的杰出贡献。

      当时,早期使用的光栅化渲染方法主要通过考虑视角和渲染对象之间的光线来确定对象在2D图像上的投影,但是该方法没有考虑深度信息,因此不可能确定重叠对象的遮挡。换句话说,在上面的例子中,我们甚至不能完成从左边到图中的步骤。1974年,埃德温·卡特莫尔博士毕业。在他的毕业论文中,他描述了用于管理计算机图形学中图像深度坐标的Z缓冲方法。根据他的算法,当渲染对象时,程序需要同时生成一个缓冲区来存储生成的像素的深度。如果发现由另一个对象生成的像素与此一致,则根据存储在缓冲区中的深度来选择该像素,以实现更近的对象阻挡更远的对象的效果。下图显示了深度缓冲算法的图例。

      深度缓冲算法图(左):3D场景(右):深度缓冲指示源:HTTPS://en.wikipedia.org/wiki/z-buffering #/媒体/文件:z _ buffer.svg

      然而,具有深度的光栅化渲染方法仍然不能解决物体在照明下应该具有的反射、折射和阴影效果。经过几次发展,特纳惠特在1979年提出了光线跟踪算法,这极大地影响了渲染技术。在该算法中,当光从视点发射并击中物体时,它会产生多达三种类型的光:反射、折射和阴影。如下图所示,摄像机发出的(红色)光照射到球体上并被反射。如果反射光最终反射到光源,我们知道光源可以根据光可逆性原理照亮球体。在球体的另一侧,它处于阴影中,因为在它和光源之间还有球体的其他部分,挡住了光源。

      射线追踪图的来源:https://upload.wikimedia.org/wikipedia/commons/8/83/ray追踪图

      射线追踪算法也是当今非常活跃的研究领域。其中一个主要原因是光线跟踪具有很高的计算复杂度。一般来说,蒙特卡罗方法等都是用来寻找近似解的。直到几年前,实时光线跟踪在游戏和其他产品中的应用还是一个挑战。今年,在英伟达GTC图形处理器技术会议上,仍有几场关于如何加速光线追踪计算的会议。

      从20世纪80年代到21世纪初

      自20世纪80年代以来,越来越多的电影开始使用电脑图像处理技术。其中,有太多我们今天熟悉的经典电影。这种繁荣也在一定程度上推动了计算机生成技术的发展。1982年,在著名的电影《星际迷航2》中,《创世纪效应》大放异彩——在电影中,卡罗尔·马库斯博士解释说,《创世纪》项目是一个计算机模拟项目,旨在将一个不适宜居住的世界改造成一个郁郁葱葱的天堂。

      为了在电影中实现这种视觉效果,电影首次使用了皮克斯当时在卢卡斯影业旗下创建的32位RGBA绘画软件,并使用分形生成的景观和粒子效果进行渲染。事实上,当时除了科幻电影之外,还有许多恐怖电影敢于使用电脑图像处理技术——这是非常合理的。毕竟,他们都需要丰富的想象力,需要创造更多的“外星人”。然而,当时很少有使用电脑图像处理的恐怖电影在今天成为经典。

      《星际迷航2:https://www.youtube.com/watch?》中“起源效应”的截图

      所提出的光线跟踪算法极大地提高了CGI图像的真实感,因为它本质上是试图模拟光在自然界中的传播过程。在此基础上,为了进一步增强CGI生成的某些类型图像的真实感,汉拉汉在1988年提出了体绘制。其背后的思想主要是一些物质存在于自然界的某个体积中——例如云、火和雾——并且很难用上面提到的几何渲染方法获得逼真的效果。立体渲染技术仍然致力于如何将三维物体投影到2D图像中,但更多的关注点是如何在体素而不是像素级实现这种渲染,以及如何保证物体纹理的呈现。例如,为了生成伤口的图像,需要注意如何真实地表示肌肉的方向、纹理等。

      1993年,汉拉汉还开发了一种技术,利用地下散射来描绘皮肤和头发,用蒙特卡罗光线追踪来渲染复杂的灯光效果。次表面散射模拟了当光穿透半透明物体时,它在物体内部以不规则角度反射多次,然后从不同角度离开物体表面的效果。这种现象在大理石、皮肤、蜡和其他类型的材料中非常常见,所以为了逼真地渲染这种材料,我们必须首先模拟光的传播机制。下图左边给出了现实生活中的一个例子——当光线穿透手指时,会产生半透明、明亮、毛茸茸的纹理。右图显示了计算机根据地下散射算法渲染的图像。

      人力的地下散射现象。资料来源:戴维·普201ownwork,ccby-sa4.0,https://commons.wikimedia.org/w/index.php?·库里德=39205630

      计算机再现的地下散射现象的来源

      也是在这个时期,三维建模技术开始出现。3D建模可用于通过使用特殊软件在三维中执行数学表示来对建模对象的任何表面建模。具体来说,3D模型使用3D 空之间的一组点来表示实体,并且这些点通过三角形、线性建模、曲线建模等来连接。该点集可以由用户根据现有算法手动创建,或者由扫描实体创建。初步建模完成后,利用纹理映射技术对建模对象的表面进行优化。纹理映射是埃德温·卡特莫尔在他的博士论文中首次提出的对计算机图形学领域的另一个重要贡献,它主要是一种给物体表面着色的方法。

      现实世界中的物体通常都有非常丰富的颜色。即使是黑色的物体也不能有相同的黑色。为了使计算机生成的图像足够逼真,有必要给图像上的对象添加这些不同的颜色。下图显示了有纹理和没有纹理的对象的对比。然而,如果程序为图像中的每个像素设置颜色,效率太低。纹理映射需要做的只是找到并选择一个纹理/图像,然后将其“粘贴”到图像中指定的对象上。

      图(1)纹理3D模型(2)纹理3D模型来源:Byany无人拥有的作品,CC Bysa 4.0,https://commons.wikimedia.org/w/index.php?库里德=3441137

      立体渲染技术+三维建模+纹理映射给电影行业带来了一场新的革命。1995年,皮克斯与迪士尼工作室合作制作了《玩具总动员》,这无疑是电脑合成技术领域最具影响力的电影。这是第一部完全由电脑动画制作的全长电影,也是全三维动画。在当时计算机的计算能力下,每一帧需要4到13个小时才能完成。在这部电影发行之前,计算机图形学通常被用来补充短片或具有特殊效果的真实电影。直到20世纪90年代中期,人们认为用电脑制作整个数字电影有些不切实际。

      这部电影上映后,CGI展现了它的巨大潜力。电脑动画电影或多或少已经成为新的标准,取代了传统的手绘动画电影。皮克斯自己的软件RenderMan用于电影制作,负责3D建模以及动画应用和渲染引擎之间的通信。直到今天,RenderMan无疑已经成为好莱坞行业的标准工具。据统计,奥斯卡提名的47部最佳艺术效果电影中有44部使用了这一工具。

      电影玩具总动员来源:https://zh.wikipedia.org/wiki/玩具总动员#/媒体/文件:电影_海报_玩具_ Story.jpg

      除了电影行业,电脑图像处理技术的影响也逐渐扩展到了电子游戏。1992年,运行在世嘉模型1街机系统板上的Virtua Racing为全3D赛车游戏和在更广泛的观众中普及实时3D多边形图形奠定了基础。

      电影玩具总动员来源:https://zh.wikipedia.org/wiki/玩具总动员https://en.wikipedia.org/w/index.php?库里德=60308343

      渲染一直是一种需要高计算资源的算法。很难不认为渲染技术的发展没有起到促进计算机计算资源发展的作用。至少两者已经紧密结合。同样在20世纪90年代,GPU,深度学习中最重要的计算资源,变得流行起来,并一直延续到今天。20世纪90年代末,汉拉汉和他的学生扩展了Renderman的着色语言,使其能够在当时刚刚进入市场的GPU上实时运行。汉拉汉和他的学生为GPU开发的编程语言导致了商业着色语言(包括OpenGL)的发展,从而彻底改变了电子游戏的编程。

      1999年,Avida发布了突破性的GeForce 256,第一个家庭视频卡称为图形处理单元或图形处理器。也是在那个时候,建立了计算机使用通用图形处理框架(如DirectX和OpenGL)的惯例。正是由于更强大的图形硬件和三维建模软件,计算机图形变得更加详细和逼真。在过去的十年里,AMD的市场份额也一直在增加,最终形成了我们今天所熟悉的“双头垄断”市场。

      自2000年代以来

      进入新千年后,CGI技术的发展仍然很快,图形处理单元的不断成长和成熟也带来了不可缺少的动力——到这个时候,3D图形图形处理器和3D渲染功能已经成为台式计算机的标准配置。电脑动画变得无处不在——电脑动画电影激增,传统动画电影如冰河世纪和马达加斯加,以及众多皮克斯产品如海底总动员在该领域占据了票房优势。在视频游戏方面,索尼PlayStation 2和3、微软Xbox系列游戏机、任天堂产品(如GameCube)和Windows PC吸引了大量追随者,如超级侠盗车手、刺客信条、最终幻想、生物休克、王国之心和镜子的边缘。计算机图形学在这两个领域的成功发展,将计算机图形学的影响扩展到了主流领域,并逐渐将其引入到其他领域,如电视广告。

      在软件方面,OpenGL也变得更加成熟。它在DirectX上做了很大的改进。在这十年中,第二代着色器语言HLSL和GLSL开始流行。

      电影《冰河世纪》。资料来源:合理使用,https://zh.wikipedia.org/w/index.php?库里德=294080

      游戏的最终幻想。资料来源:合理使用,https://zh.wikipedia.org/w/index.php?库里德=3621086

      在此期间,另一项非常重要的技术被广泛用于电影制作:动作捕捉。动作捕捉,也称为动作捕捉或动作捕捉,是记录物体或人的动作的过程。早在1978年,电影《指环王》就被实际使用了,但是由于当时的技术限制,不可能捕捉到演员的表情和其他细节。2009年,《阿凡达》因使用动作捕捉技术来制作角色动画而闻名,而不是使用软件来手工绘制/创建角色。此外,《阿凡达》是最早使用“模拟摄像机”的电影之一。这种特殊的相机可以将电脑动画图像叠加在实时拍摄的实时图像上。

      电影《阿凡达》。资料来源:按来源,合理使用,https://en.wikipedia.org/w/index.php?库里德=23732044

      2010年后,视频中几乎无处不在CGI,而科学中的预渲染图形几乎是真正的照片级。在此期间,工作主要集中在更复杂的多阶段图像生成的集成。纹理映射也发展成一个复杂的多阶段过程。使用着色器将纹理渲染、反射技术和其他算法集成到渲染引擎中并不罕见。

      阻碍CGI技术,尤其是渲染技术发展的瓶颈之一仍然是计算。在深度学习和人工智能蓬勃发展的今天,人工智能也帮助CGI在这一领域取得了突破。据官方宣传,Avida日前发布的DLSS 2.0(深度学习超级采样)可以确保渲染程序能够以较低的分辨率跟踪游戏画面的实时光线,而DLSS 2.0将对渲染后的画面进行4次过采样,从而确保细节和帧率之间的平衡。换句话说,要在DLSS 2.0下运行实时4k游戏,渲染程序只需要以1080k的分辨率进行计算。“在游戏的每一帧上运行一个神经网络”,仍然有许多这样的疯狂想法。很难想象人工智能和渲染的结合会把计算机生成的图像带到哪里。

      到目前为止,CGI技术从一开始只能模拟一些简单的形状,并逐渐发展成为一门子研究极其丰富的复合学科。它对计算机科学的其他领域的影响是多方面的,涉及计算机图形学的跨学科领域也很常见。正如美国计算机学会主席切里·m·派肯所说,“汉拉汉和卡特莫尔的贡献表明,计算机科学特定领域的进步可以对该领域的其他学科产生深远的影响。”

      帕特里克·汉拉汉和埃德温·卡特莫尔总是参与这种幼苗成长为参天大树的过程,他们还获得了ACM奖。帕特里克·汉拉汉和埃德温·卡特莫尔的成功是对所有从事他们热爱的工作的人的极大鼓励,因为他们证明了个人在自己的研究领域的坚持和贡献,这不仅可以促进这一领域的进步,而且可以改变世界。我们生活的世界实际上是由我们的双手创造的。颁奖仪式预计将于6月在旧金山举行。帕特里克·汉拉汉和埃德温·卡特莫尔将分享100万美元的奖金。显然,50美分的特效随处可见,但是好的特效不仅费时费力,而且很有价值。

      作者介绍:李媛媛,多次转行,本科国际贸易,研究生转向统计学,毕业后留在比利时,选择从事农业机械的研发,主要负责图像处理,实现了计算机视觉算法的登陆。欣赏所有简单、优雅但有效的算法,并尝试在集群和对深入学习持怀疑态度的人之间找到平衡。我追求生活的宽度,这就是为什么我也是工作之外机器核心的技术分析师。我希望在这里与你们分享我对技术的理解,并通过思想的碰撞拓宽我的思想和视野。

      本文由 在线网速测试 整理编辑,转载请注明出处,原文链接:https://www.wangsu123.cn/news/3421.html

          热门文章

          文章分类