设为首页收藏本站

八达网

 找回密码
 注册
查看: 2075|回复: 13
打印 上一主题 下一主题

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

[复制链接]

1579

主题

0

好友

4万

积分

光明执政官

2013年度八达十大水友

跳转到指定楼层
1
发表于 2014-6-19 12:18 |只看该作者 |倒序浏览

本文是知乎用户Milo Yip对于问题“游戏特效为什么做不到像电影特效里的那样真实?”的回答。

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

在《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天。不过这不影响后面的计算。



150

主题

3

好友

4万

积分

光明执政官

2
发表于 2014-6-19 12:20 |只看该作者
回复

使用道具 举报

291

主题

0

好友

8302

积分

大象

3
发表于 2014-6-19 12:20 |只看该作者
  不明觉厉
回复

使用道具 举报

866

主题

22

好友

10万

积分

黑暗执政官

闻昆吾方始,知秋珉而入林

2007年度八达十大杰出青年 2008年度八达十大水友

4
发表于 2014-6-19 12:21 |只看该作者
就是实时运算的困难吧。
卿晓寒夜,须知朝阳
胸大了不起么,爽的又不是自己!
回复

使用道具 举报

452

主题

0

好友

2592

积分

坦克

5
发表于 2014-6-19 12:33 来自手机 |只看该作者
个人电脑2030年也没这个运算能力 不光是动画渲染 物理引擎 ai以及互动等游戏逻辑 不光是gpu的事
真要达到电影级的效果 我觉得只有一种可能 采用大型大脑负责所有运算 然后渲染好的画面传给客户端 也就是所谓的云游戏
回复

使用道具 举报

29

主题

2

好友

1万

积分

航母

支持中国男篮!

6
发表于 2014-6-19 12:39 |只看该作者
这个很好理解,电影是制作好之后的固定场景,而游戏的场景是随时随地随着你的操作都是不一样的
你们真的会打分?
回复

使用道具 举报

46

主题

0

好友

7万

积分

主区版主

处是一种生活态度

Rank: 8Rank: 8Rank: 8Rank: 8

2006年度八达十大杰出青年 2007年度八达十大水友

7
发表于 2014-6-19 17:14 |只看该作者
你就把实时演算和CG比较下就行了
It's the best day of times,it's the worst day of times;

it was the age of wisdom,it was the age of foolishness;

it was the epoch of belief,it was the epoch of incredulity;

it was the season of light,it was the season of darkness;

it was the spring of hope,it was the winter of  despair;

we had everything before us,we had nothing before us;

we were all going direct to Heaven,we were all going direct the other way.
回复

使用道具 举报

101

主题

0

好友

1万

积分

航母

8
发表于 2014-6-19 17:24 |只看该作者
写这么多 都是废话

游戏实时渲染,电影cg预渲染
回复

使用道具 举报

1442

主题

8

好友

7万

积分

仲裁者

luaTeRran

2012年度八达十大水友

9
发表于 2014-6-19 17:28 |只看该作者
现阶段的预渲染和实时渲染能一样?

如果硬件发展到一定的高度, 再配合优秀的图形算法, 理论上一样可以做到照片级渲染

cry engine 某些效果已经可以说是照片级实时渲染了


回复

使用道具 举报

1505

主题

7

好友

3万

积分

守护者

颠之茎技

战队
CYSA
种族
Protoss

2009年度八达十大杰出青年 2013年夜饭

10
发表于 2014-6-19 17:32 来自手机 |只看该作者
别把电影的制作看简单了,游戏是承受不起这么大的制作的,一般是开发一个图形引擎自己即时渲染,而电影是分部分层渲染出来合成,概念都不一样。
回复

使用道具 举报

249

主题

4

好友

2万

积分

大和

11
发表于 2014-6-19 18:53 来自手机 |只看该作者
FF过场CG不比电影差,至于你要把即时演算跟电影CG比那就没法子了
回复

使用道具 举报

everrr 该用户已被删除
12
发表于 2014-6-19 21:09 |只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

1999

主题

0

好友

1万

积分

航母

13
发表于 2014-6-19 21:52 |只看该作者
CG渲染的动画是用CPU渲染,效率比GPU低1千多倍,不是渲染CG不想用GPU,主要是很多功能特效还没法用GPU支持,比如光线追踪,曲线平滑,这些算法十分复杂,没法用硬化成GPU指令,渲染一副CG动画,光线追踪渲染至少要占了80%的时间。为什么CG电影渲染时间和成本都比GPU多那么多,其实就是目前人类智商不够,很多电影集特效无法用GPU来渲染,只能用效率低下的CPU来软性渲染。这个就好像最早的CS游戏,里面有个CPU3D选项,用CPU来模拟运算3D引擎,专门给没有3D显卡的用户设计的,画面又粗糙又慢。
回复

使用道具 举报

180

主题

3

好友

5万

积分

光明执政官

14
发表于 2014-6-19 22:21 |只看该作者
还是次时代的年代 就已经有个概念叫“即时演算” 明白这个就一切明了了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

手机版|Archiver|八达网    

GMT+8, 2025-11-25 01:50

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部