百科问答小站 logo
百科问答小站 font logo



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

  

user avatar   miloyip 网友的相关建议: 
      

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

在《

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继续类似

摩尔定律

,以每年翻倍的速度提升,大概在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天。不过这不影响后面的计算。




  

相关话题

  计算机图形学有哪些著名的论文? 
  为什么 Win 98 时代风格的安装程序很多都自带一个最大化的蓝/绿色背景?有什么用? 
  理论计算机图形渲染技术是否已经到了没有什么可以研究的地步了? 
  如何看待《上海堡垒》官博连续发布一系列特效镜头并配文「这是烂片?」? 
  游戏制作过程中,2D 比 3D 需要更多的资金和人力吗? 
  怎么评价郭敬明的电影《爵迹》的首支预告片? 
  有哪些著名的电影镜头是 CG 特效,但当时观众都没发现? 
  请问FXAA、FSAA与MSAA有什么区别?效果和性能上哪个好? 
  为什么游戏引擎大多选择使用 C++ 而不是 C 开发? 
  正常身高的演员是如何扮演霍比特人和矮人的? 

前一个讨论
心理学专业毕业后能从事哪些职业?
下一个讨论
如何评价《小三角大英雄》这款游戏?





© 2024-12-22 - tinynew.org. All Rights Reserved.
© 2024-12-22 - tinynew.org. 保留所有权利