一句话:「计算成本不一样。」
在《
Real-Time Rendering, Third Edition (豆瓣)》(2008)的第19.1节谈论到动画电影和游戏在渲染上的一些比较,例如《
美食总动员 (豆瓣)》(2007)中:
对于游戏来说,基本要求是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年动画电影渲染的计算量。
当然,这个问题还有许多因素,我尝试以乐观和悲观去分类。
乐观因素:
悲观因素
但总终而言,根据以上分析,同年份的动画渲染及游戏渲染可能有相差数十万倍的性能。除非离线渲染在未来已达到人类视觉的极限(与现实无异)而不需要再提升,游戏渲染难以在同年到达动画渲染的水平。
基于计算量的差异,目前动画和游戏在渲染上的区别:
另外,游戏渲染含有一些和动画渲染不同的需求:
简单地讲,游戏渲染有较多动态部分,动画渲染有较多静态部分。
作为游戏开发者,也仅是希望在有限的资源内做到最好。最后发两张截图比较游戏渲染的进展。
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天。不过这不影响后面的计算。