分享

游戏特效为什么做不到像电影特效里的那样真实?

 pgl147258 2014-03-27

【MiloYip的回答(213票)】:

一句话:「计算成本不一样。」

在《Real-Time Rendering, Third Edition (豆瓣)》(2008)的第19.1节谈论到动画电影和游戏在渲染上的一些比较,例如《美食总动员 (豆瓣)》(2007)中:

  • 使用的机器群集大概有3100个核,每个可使用16GB内存
  • 平均每帧花费 6.5个CPU小时(更正前误写为小时),复杂的场景要花上数十小时

游戏特效为什么做不到像电影特效里的那样真实?

对于游戏来说,基本要求是30FPS,即约0.033秒渲染一帧。那么如果想达到2007年动画电影的水平,即从6.5小时加速至0.033秒,简单计算比例的话大约要该CPU(更正前误写为集群)的70万倍的计算能力。

在21世纪初因游戏而延生的GPU,其运算量比CPU要高,单以浮点计算量来说,这篇博文作了一张比较图:

游戏特效为什么做不到像电影特效里的那样真实?

2007年的Xeon大概是每核10 GFLOPS,现在的GTX Titan是4500 GFLOPS,假设现在的GPU计算能力是2007年CPU的450倍,而GPU继续类似2007年的Xeon大概是每核10 GFLOPS,现在的GTX Titan是4500 GFLOPS,假设现在的GPU计算能力是2007年CPU的450倍,而GPU继续类似摩尔定律,以每年翻倍的速度提升,大概在16年后,即2030年,实时游戏渲染的计算量能达到1997年动画电影渲染的计算量。

当然,这个问题还有许多因素,我尝试以乐观和悲观去分类。

乐观因素:

  • 实时渲染的算法与离线渲染的算法不同,同样的品质下可以用更少的计算量
  • 游戏中一些计算可以通过预计算减少每帧重复运算(其实离线渲染也有……)
  • 人们不单纯追求真实性,也需要抽象性及艺术表现
悲观因素

  • 除了计算量,其他方面可能追不上(内存频宽、总綫频宽)
  • 游戏需要低延迟(low latency)而不单纯是高吞吐量(high throughput),实时渲染的问题比上述的计算量问题更难
  • 游戏一般希望最坏的情况下达30 FPS而不是平均情况

但总终而言,根据以上分析,同年份的动画渲染及游戏渲染可能有相差数十万倍的性能。除非离线渲染在未来已达到人类视觉的极限(与现实无异)而不需要再提升,游戏渲染难以在同年到达动画渲染的水平

基于计算量的差异,目前动画和游戏在渲染上的区别:

  • 动画的模型非常精细,并且大多使用镶嵌(tessellation)技术提高曲面圆滑程度。游戏通常使用较小的模型。
  • 离线渲染通常采用光线追踪(ray tracing)、路径追踪(path tracing)等渲染方式。游戏通常使用基于光栅化(rasterization)方式。
  • 游戏渲染采取更大幅度的近似化(approximation)。

另外,游戏渲染含有一些和动画渲染不同的需求:

  • 摄像机可以有限度由玩家操控,场景要更完整。动画有时候只需要在镜头内的场境有足够细节便可以。
  • 玩家角色和非玩家角色(NPC)的动画都需要互动,并考虑不同动作之间的过度,制作方式更复杂。
  • 一些游戏支持日夜、天气等变化,光照不能简单地预计算。
  • 由於游戏的不确定性,许多参数需要自动生成(例如Tone Mapping),这需要额外的计算。

简单地讲,游戏渲染有较多动态部分,动画渲染有较多静态部分

作为游戏开发者,也仅是希望在有限的资源内做到最好。最后发两张截图比较游戏渲染的进展。

2000年的《American McGee's_Alice》

游戏特效为什么做不到像电影特效里的那样真实?

2011年的《Alice: Madness Returns

游戏特效为什么做不到像电影特效里的那样真实?

=================================

更正

2014/3/26: @余茂新 在评论中指出数字不合理,找到这篇NewsFlash: Render stats for Ratatouille,说6.5一帧是单个CPU的时间。所以43875天 / 3100 核 ~= 14天而已。不过由于该文不肯定 cpu-hour是指单个核还是四个核一起工作,如果是后者,则是14x4 = 56天。不过这不影响后面的计算。

【罗登的回答(48票)】:

赞同@kubisoft的回答,补充一点:

电影渲染使用的价格/时间比是游戏这种单PC机的数百倍。如果要让电影特技的渲染时间变得和游戏那样快,就是现在的超级计算机也做不到。可见电影特技用的离线渲染的成本是相当大的。

渲染的一切都可以折算成时间,一帧游戏画面渲染时间可能花掉1/60秒,而一帧电影特技的渲染时间可能要花掉一整天,并且还是用成千上万的CPU在运算。

故此,特技镜头比游戏真实是天经地义的。

【kubisoft的回答(113票)】:

游戏里面的画面必须实时渲染,和可以离线渲染的CG是完全不同的。

比如说,通常一个人物只能几百个面,必须仔细考虑如何布线,如何节省用面;主要依靠贴图表现,shader的运算量也不能太大,不能运用太复杂的渲染算法,比如光线跟踪等等;

但是在CG中就动不动几十万个面了

--------------------

补充一些后来想起来的东西:

所以,CG和游戏3D的制作方式是完全不同的,CG美工并不会做游戏,游戏美工也不会做CG, 就如同c++程序员和web程序员之间的区别一样。

CG制作的时候,可以完全不考虑面数,都是采用各种建模工具做出来的,然后利用vray等各种渲染工具渲染;

游戏3D制作的时候,模型尽量不采用任何建模工具,都得自己从长方体开始,一个面一个面、一根线一根线的拉出来。贴图不能依赖渲染,主要依靠美工手绘上去。

但是现在这两者开始融合,有了强大的工具,可以把CG模型简化变成游戏中需要的低模;可以把CG模型通过离线渲染烘焙出精致的贴图,用到游戏中。

【知乎用户的回答(41票)】:

除了模型精细程度之外,好像没有一个回答提到最关键的一点——电影场景的渲染和游戏场景的渲染用的根本不是同样的算法!

电影场景的渲染,需要那么强的计算能力,是因为用的光线追踪(ray-tracing)算法。简单来讲,就是把场景里的每一个发光物体分割成若干发光片,每个发光片引出无数条光线,这些光线或者直射,或者在环境的物体上经过反射、折射、透射等各种光学变换在虚拟摄影机上产生光斑、颜色、强度都会被一一记录下来。若干次光学变换后,才认为该光线产生的影响可以忽略。

所有这样的发光片对场景的发光效果的叠加,成为最终渲染的场景图象。递归地来讲,每次都是把上次的发光片分成更细的碎片,同时把反射、折射、透射的光学变换在更多的面上做细,直到前后两次产生的图象差值小于某个给定阈值,才算递归结束。详细的解释可以参照wiki的光线跟踪部分。

很明显,这样的算法纯粹是仿真自然界光线成像的原理,所以只要建模足够精细,产生的渲染结果会非常真实——因为现实中光线就是这么产生图象的。当然,这样的算法需要强大的计算能力,模型越复杂,图象越精细,计算能力的要求就越高。实际上美国有很多这样的公司叫做渲染农场(直译render farm),他们的服务器就是为这样高度并行的计算优化,承接各种电影特效的渲染计算。在云计算这个词出现之前,这种云计算平台早就存在了。你以为皮克斯(Pixar)只是动画工作室吗?错!它首先是一个超级计算机(甚至出租他们的计算服务renderman)。精美的渲染是非常非常昂贵的,需要砸重金进去的,这就是为什么国内特效惨不忍睹的原因之一。

游戏场景的渲染,当然不可能有那么强的计算能力供玩家随意调配,所以用的是各种近似算法。显卡的计算能力都是为这些近似算法服务的。显然这些近似算法也只能做到一定程度的近似,特别是各种复杂的光线场景,都是预先贴好反射、计算好散射的效果,在纹理贴图上就已经考虑进去。当然,这种效果看起来就是不那么真实。

【ClerkMa的回答(18票)】:

在《阿凡达》制作的高峰期,BlueArc NAS系统要服务渲染库上的超过34,000个内核,全天候以每秒8GB的持续负载量处理16,000个并发读写流程。尽管增加了更多的渲染节点,该存储系统依然能保持极高的吞吐量,这在最大程度上帮助艺术家加快了工作进度、消除了主要瓶颈并简化了数据管理。[1]

上个世纪九十年代的《泰坦尼克号》的视频渲染动用了100多台Linux主机(还有其他主机)做数据处理[2],当时的数据好像都没到4GB每秒,现在的电影制作,8GB每秒的吞吐量很正常了。玩显卡危机的效果,其运算量,九牛之一毛。

如果在学校使用过教育网下载的,每秒可能有数M(我经历过的是5M/s)的数据吞吐,开多了机器就慢了,想要电影那种效果,请做好游戏还没开始机器就已经烧掉的准备。

[1] 探秘《阿凡达》背后的海量数据管理

[2] Linux Helps Bring Titanic to Life

【vczh的回答(14票)】:

因为,你不是在用一个GPU集群来玩游戏啊,你用的只是一块小破显卡啊,说不定在今年还是低端的……cryengine能做到这样已经良心了,对配置要求那么低!

【张诚阳的回答(5票)】:

原来一朋友把变形金钢电影里的擎天柱模型下到自己电脑里,单渲一帧画面需要一天时间。

电影里用的模型的精度和游戏用的完全是两码事,更别提什么光影粒子动力学了。

【周道非的回答(15票)】:

赶时间的同学可以只看黑体字。因为其余的部分全都是吐槽。

玩了快20年的游戏,对这个问题能给出的最好答案只有一个——时间。

如果三十年后你还在玩游戏,无论是主机游戏还是PC游戏(掌机暂时不算,因为掌机的运算机能一直弱于主机1个世代,体积和硬件的限制),如果当时知乎还存在,记得回来看看你问的问题。

【古墓丽影】系列是最好的例子。拿出第一代劳拉的即时演算和最新一作号称“转行卖洗发水”的即时演算,对比一下。我没记错的话是17年的时间。把当年哪个看来简陋无比的模型变成了一个。。。精致非常的模型。

【显卡危机3】的栗子就不举了。

【虚幻引擎3】的即时演算影像LZ也可以去看看。主机上的

【超凡双生】的面部模拟系统LZ也可以去了解一下,而说到运镜技巧,话题之作

【暴雨】已经做出了相对伟大的尝试。2013年,PS4、xbox720正蓄势待发。而如果LZ玩一点上古卷轴5,用过ENB,编辑过人物动作,并明白我刚才说的这些名词都是什么意思,大概会相信我接下来要说的话——

未来,电影CG与游戏即时演算中间的那条线最终会被踏过。贴图精细程度、光的渲染、人物动作编辑、运镜、硬件性能...这些都不是问题。问题只是我们都需要一点点的耐心,和远见。

————————————————————————————————

PS:再说两点不相关的。

1 其实一款游戏好不好真的和画面关系不是特别大。不然那么多独立游戏制作人早就卖豆腐去了(如果你玩玩,就知道陈星汉的

【旅程】唤起的心理感受未必就弱于阿凡达)

2 一味追求真实并不是游戏画面的绝对标尺,在游戏界,梦幻、夸张的视觉表现往往比绝对真实更有市场。一款作品的画面风格往往也需要更多与游戏本身的调性相一致。

有的知友说到运算量。对的,阿凡达、变形金刚电影版的运算量都是数台电脑完成的,但今天的大型机、专用机工作,明天未必不能被个人电脑完美执行。毕竟硬件的更新速度多年来有目共睹。游戏爱好者们对各路游戏编辑一年又一年的连番惊呼也习以为常。

最后,建议LZ可以去搜一些大作的预告CG看。除了彻底的拟真性,其运镜、光影、情节、爆点、题材与表现力往往不比电影差,甚至更强,更不受地心引力与观众期待的限制。战地3、荣誉勋章 战士、光环4、星球大战原力释放、史克威尔新引擎的预告、FF14王国新生的预告等等...栗子太多了,视觉呈现胜于熊便便。

【知乎用户的回答(3票)】:

游戏是实时渲染的,电影是离线渲染的。

游戏用一台电脑就能跑每秒几十上百帧,电影用N台高端计算机组成的渲染农场计算一帧也要以秒为单位。

游戏渲染大量采用近似模拟的光栅化算法,电影渲染采用贴近物理的光线跟踪算法。

【张三疯的回答(6票)】:

就一句话,vfx达到好莱坞级别,你机器跑不动的

【白露的回答(3票)】:

看过变形金刚的纪录片,里面有个镜头:一个工程师为了恶搞另外一个工程师,就发了刚渲染好的一张图,结果电脑直接爆了

【赵含寒的回答(3票)】:

看了下大部分回答。应该没有真正在游戏公司做特效的吧。

首先纠正一下楼主误区,游戏特效≠电影特效。

游戏特效指的是游戏中的特殊表现效果,如刀光剑气,爆炸烟雾等等。

电影特效应该就比较宽广了,摘用百度百科----在影视中,人工制造出来的假象和幻觉,被称为影视特效(也被称为特技效果)。电影摄制者利用它们来避免让演员处于危险的境地、减少电影的制作成本,或者理由更简单,只是利用它们来让电影更扣人心弦。

所以楼主所说的特效我简单的理解应该是电影的渲染效果看起来更真实,而现在游戏无法达到电影那样的真实效果。那么要回答这个问题就很简单了。

首先如上面几位提到的,游戏渲染是实时的,而电影则不然。如果游戏要达到电影的效果,其实技术上是可以部分实现的。但是这需要强大硬件做为支撑。说的简单点,次时代引擎游戏的角色大概2-3W面,电影最终渲染的高模大概10-20W面。如果你也想体验电影的效果,依照现在的主流高级电脑配置必须提高最少5倍的性能。问题是这样的性能配置的电脑有多少人能承受?或者说,现在的家用游戏机如(PS4 XB ONE)都定价在3-5W人民币,有多少人会去买?(简单的换算了下性能和价格比实际提升3-5倍的性能应该比这要需要付出的多的多)所以现在的大部分游戏公司只能保守的采用一种表现和性能协调考虑的办法去做游戏基础构架制作,也就是我们所说的游戏引擎。游戏公司最终目的是为了游戏更加赚钱。因为游戏最终需要终端去驱动他,而影片只需播放设备。所以游戏在表示效果时受到的限制更多,而且你可以发现游戏的画质,随着家用机器的性能提升而且提升的效果较电影更加明显。

最后方便懒人的结论

游戏渲染效果其实可以做到和电影不相上下,但是这只存在于图形开发实验室中,在生活中受制于现在计算机的性能还无法到达电影的效果。

当然如果要说特效方面的话,那又是另外一个话题了,而且包含内容很多就不展开了。

最后附上几个最新引擎的演示视频,大家一起展望下未来游戏的表现吧

虚幻引擎4实算demo演示

CRYENGINE3 2013 作品演示片

ABOUTCG上传_Frostbite 3 Engine Preview 寒霜引擎3

【石桥的回答(0票)】:

游戏技术与电视技术水平是不同的,若干年内,你会发现主流游戏的画质跟今天电影特效一样好,当以那时的眼光,它仍然不够好,

【玉箫沙的回答(1票)】:

人家阿凡达一个龙的模型就比你整个游戏的体积还要大。

【None的回答(0票)】:

专业名词我说不上来,但我也问过从事这个行业的人相同的问题。通俗一点的理解就是制做上是应该可以做到的,但如果游戏每一个物体都做得像CG那么细的话,普通的电脑、显示器是根本带不起来的,信息量非常之大,不说玩起来,在游戏界面里随便活动都困难,会完全卡死。

【知乎用户的回答(0票)】:

补充一点,有些依靠游戏引擎渲染出来的图,真实度也都很不错了。可惜仅仅是图

【霍东的回答(0票)】:

CG渲染用的是物理渲染器, 还有艺术家后期合成, 游戏当然能省就省啦.实时渲染很多东西都是Fake 模式, 就是仿个差不多有那个样子就行了.

【WhyTan的回答(0票)】:

一个是实时演算,一个不是。但现在的游戏,真的做得非常非常精美了,再过几年,就以假乱真了。

【陆行鸟的回答(0票)】:

游戏cg一样可以做到电影一样真实啊,过场的即时演算以目前的硬件水平当然不行。确切的说即时演算的确是演算出来的画面,而电影特效是花长时间演算完以后的录制视频而已啊。

【知乎用户的回答(0票)】:

简单解释:

1、要渲染真实,就要用更精细的运算,运算更多的细节,包括物理规则,画面内物件的数量等。越真实的画面会需要越大的运算量。

2、玩游戏需要一秒钟渲染完一秒的画面,不然你就不玩了。电影则可以花几百小时渲染一秒钟的画面,只要放给你看的时候播放一秒钟即可。

3、你只有一台计算机玩游戏,而电影可以动用计算机集群。

4、所以,电影有条件去花更多资源渲染更精致的画面,因为不象游戏受到各种限制。

5、顺便能得出一个结论,就是在可见的未来电影总是会比游戏好看(得多)的。当然,临场感或许有所不同。

原文地址:知乎

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多