編集部:aueki
翻译 Trace
校对 千里马肝


Epic Games的主引擎程序员 Niklas Smedberg

「GDC 2012」的第4天的3月8日(当地时间),Epic Games进行了题为「Bringing AAA graphics to mobile platforms」的演讲,会议的内容是在智能手机上实现和台式游戏机类似的图形表现的游戏经验技术,具体的是介绍在开发「Infinity Blade II」的过程中得到的经验。
  
进行演讲的是Epic Games从事Unreal Engine的开发者Niklas Smedberg。虽然内容是如何把GPU的性能发挥出来的专题,不过会议是从智能手机的硬件周边开始讲的,据Niklas Smedberg所称,这是[非常重要]的部分。

智能手机的使用在GPU方面和PC有很大的不同,除了NVIDIA的Tegra系列,大部分采用的是Tile based架构。因为这点要求有和PC的GPU完全不同的优化方法,以Imagination Technologies的SGX GPU为例,进行关于Tile base架构的基本工作要怎样进行的解说,顺便说一下,SGX系列是PowerVR GPU正统的继任者,iOS和PlayStation Vita上也是使用的这款GPU。


所谓的Tile based架构,是把画面分割成小的区域,在这些区域画面单位里进行绘制的方式。也存在有认为这样的处理会导致效率低下的观念,不过,这么考虑未必错了。一旦要说为什么会产生这样的方式的话,那是因为3D图形处理主要是操作大量的数据,而不是仅仅是处理的速度,所以可以预期到内存带宽是瓶颈。即使在当时,显存和主内存是用相同的64bit来连接的,感觉大幅度提高带宽是很困难的。

Tile based架构中,内部有少量的超高速内存,将操作的范围做分割处理,即使处理数据变多也可以维持合理的性能的想法作为根本。因为即便使用便宜的内存也可以维持性能,在显存非常高价和缓慢的时代,作为非常有效率的解决办法而收到了关注。当时,都认为显存的带宽是界限。

然而,NVIDIA等公司在128bit或256bit的总线带宽上进行了cross bar连接,因为持续的保证了带宽,内存的带宽问题就变的不怎么在意,Tile based的优势就不能发挥了,以此确立了连接对于当前GPU的发展趋势。

另一方面,在硬件资源有限的手机(注:这里是指非智能手机)上,效率很好的tile based架构被重新评估。Tile based的特征是,Tile各自独立的运作,在Tile全部处理结束时,再实际的写回到图形显存数据。尽可能的在GPU内部完成处理,成为了提升性能的关键。

分享0收藏000
个人blog 关注跨平台次世代游戏开发,欢迎讨论
http://www.cnblogs.com/TracePlus/
 

使用道具 举报

   
trace

版主

注册时间
2011-5-21
积分
2884
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
2#

 发表于 2012-3-22 17:56:47 |只看该作者

本帖最后由 trace 于 2012-3-22 18:28 编辑

再回到演讲的内容,Niklas Smedberg把在Tile based上的3D处理流程逐一的进行了解说,下图列出的就是处理流程和内容。好不容易排着队才刊登了,顺便说一下,橙色的部分是GPU内部,使用外部内存的部分是灰色。












Tile Based 架构必须要注意的是,主要是Pixel Shader的部分,每个Tile需要一个shader unit来负责,共通制定的是在哪里处理,要是处理不了怎么办等,必须要相当的注意。

例如,如果要处理Alpha Blend,但因为没有专用的单元,所以处理最后是用shader进行的。 shader代码挤满program buffer时,就是patch处理的性能大幅下降的主要原因。但是,因为Alpha Blend是在tile内完成,优点是使用成本非常低。

另外关于render target,有着可以输出画面的功能,虽然SGX支持该特性,不过使用的话也要注意。一旦切换这个RT,处理的方式就是让现在显存的内容全部暂时放入到主内存里改变输出端,一旦结束就要从主存储器里再次读取的。Smedberg说,最终的结论是[没法使用]。推荐处理中使用的计算结果等都用普通画像输出,再作为texture来读取处理。同样,还是不使用Frame buffer object比较好。




除此之外,关于texture lookup,并没有在Pixel Shader阶段进行,而是必须在Pre Shader的阶段进行,从多个Tile的reference的数据也是在Pre-Shader里被预先Setup的。

在Unreal Engine 3上经常用到的复杂材质(material),在这里实际上是不能使用的,所以用离线的方式提前生成纹理的方法很有效。但是,一旦让设计师来做这个,因为会很辛苦,所以要重新做出某种程度的自动化工具,那就是Mobile Material System。




个人blog 关注跨平台次世代游戏开发,欢迎讨论
http://www.cnblogs.com/TracePlus/
 

使用道具 举报

   
trace

版主

注册时间
2011-5-21
积分
2884
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
3#

 发表于 2012-3-22 17:59:18 |只看该作者

本帖最后由 trace 于 2012-3-22 18:52 编辑

除了上述需要注意的之外,Smedberg还介绍了在Infinity Blade II上的关于[God Ray]和[阴影处理]的实现过程。

God Ray是在宗教画里比较多见的,从光源初延伸出来的光溢出的表现

Smedberg最初是什么都不考虑,就像把Xbox 360的程序拿到PS Vita上那样,以为可以很好的运行,但结果是被可怕的延迟打击到了。同样是SGX系的GPU,PS Vita版的似乎是因为有性能上的强化,而智能手机上无论如何也很困难,不过据说,通过把材质降低的手法,可以一定程度上缓解。

方法中最重要的部分,要尽可能的限制Texture lookup,为了表现出从光源延长出来的光,有必要把漏光进行多次处理,要做32次的lookup,而原来是256次的lookup。此外,运算处理全部在Vertex Shader进行相对粗略的计算,使用插值来获取中间数据,Pixel Shader中尽可能的做轻量的计算。
   


原来的shader code


最优化的shader code






个人blog 关注跨平台次世代游戏开发,欢迎讨论
http://www.cnblogs.com/TracePlus/
 

使用道具 举报

   
trace

版主

注册时间
2011-5-21
积分
2884
  • 串个门
  • 加好友
  • 打招呼
  • 发消息
4#

 发表于 2012-3-22 18:00:26 |只看该作者

本帖最后由 trace 于 2012-3-22 19:09 编辑


在阴影处理上,因为把所谓Stencil Shadow作为通常的实现,虽然只想使用depth buffer,不过在OpenGL ES的手段上也加上了color buffer,从光源到阴影的映射上不能使用render target。虽然用一次输出到Cubemap就可以了,但因为texture的依赖关系很麻烦,应该分成4次输出,这点要提醒注意。







虽然有很多的麻烦和注意点,但完成的图像质量相当高,最后Smedberg先生提到了关于次世代的SGX系列(Rogue:PowerVR SGX Series6)[性能是现在的20倍,可以使用DirectX 10,还有各种改善],给予了在场者和自己对于未来的期盼。

大概,也兼顾了智能手机用的Unreal Engine 3的公开演示,因为要尽可能的以高质量的图形为目标,所以直到最后都要向着远高于一般的游戏程序的程度而努力。

手机(非智能机)用的GPU,为了用很少的资源做各种事情,当资源变得不足时,会把数据暂时自动的释放以腾出空间再继续处理,某种意义上就像智能机上拥有了更大的空间,只是,感觉对于追求性能最优化的人来说,说不定会是相当麻烦的机能。

个人blog 关注跨平台次世代游戏开发,欢迎讨论
http://www.cnblogs.com/TracePlus/

GDC 2012]Epic Games谈在智能手机上制作和台式游戏机同等级的图形游戏的经验相关推荐

  1. Epic games平台连接不上网络解决方法

    Epic games平台连接不上网络 解决步骤如下: 1.要用加速器(这里推荐腾讯加速器) 找到Epic商店访问 2.设置路径为你的epic商店的启动路径 就是你桌面右键快捷键看属性:目标路径就是路径 ...

  2. 微软将允许Epic Games等App登上微软商店

    据新浪科技消息,9月29日消息,微软将会允许Epic Games.亚马逊及其它公司把它们App程序店整合到微软程序店,这样能给第三方开发者更多选择. 微软还强调说,当App管理自己的应用内支付系统时, ...

  3. Epic Games公司的虚幻(Unreal)

    EPIC Games是近十年来最富盛名的游戏制作团队,主要是因为旗下最为畅销的<战争机器>系列.团队研发的虚幻3引擎为无数的游戏制作团队所采用.2011年,EPIC Games发售的< ...

  4. 硬刚到底!苹果正式封停Epic Games开发者账户

    作者|贝爽 出品|雷锋网 删除Epic Games,苹果终于动手了! 当地时间周五,苹果公司正式关闭了Epic Games的开发者账号,这意味着Epic Games将无法在iPhone.ipad或Ma ...

  5. Epic Games 携精彩作品强势登录 GMGC 2016

    Epic Games 携精彩作品强势登录 GMGC 2016 2016-03-07 胡宁 虚幻引擎 Epic Games为GMGC 2016上带来了众多精彩内容,涵盖了未来发展的前景展望.最新技术分享 ...

  6. 再见,堡垒之夜!Epic Games 的 App Store 账号被正式移除!

    经过了一系列的纷争,苹果下架了<堡垒之夜>手游,现在删除了 Epic Games 的 App Store 账户 很遗憾,我们必须终止 Epic Games 在 App Store 上的账户 ...

  7. Epic Games CEO,《无尽之剑》创始人Tim Sweeney:下一代智能手机和平板电脑的游戏趋势

    Epic Games CEO,<无尽之剑>创始人 Tim Sweeney 以下是现场实录: 我先给大家介绍一下我们公司,我们公司已经成立了21年,我们这个公司在美国北卡莱罗那.我们是一个资 ...

  8. Epic Games创始人眼中的虚拟现实

    未来的计算是可以给予人们打造自己想要世界所需要的工具,而虚拟现实无疑将成为通向未来的关键密码. 眨一下眼,你可能就已经错过了发生在核心计算和娱乐领域的戏剧性转变.在过去的一年中,最重要的两大游戏开发引 ...

  9. Epic Games 三十而立:狼性团队才能打造刷屏爆款

    By 超神经 内容提要:虚幻引擎 5 昨晚的一场全球首秀,瞬间刷屏.有人说,它将会给业界带来一场颠覆性的变革.如此震撼的产品背后,有怎样的大佬操刀? 关键词:虚幻引擎 5 游戏开发 作者:神经小刀.神 ...

最新文章

  1. ASP.NET MVC与RAILS3的比较
  2. 基于控制台应用程序的生命游戏java_Java在现实中实际开发的主要领域在哪些方面?...
  3. 跟我一起学.NetCore之MediatR好像有点火
  4. 单列集合Set的实现类HashSet
  5. Python程序每日一练习
  6. android 获取sd卡目录失败_树莓派对SD卡的大小,速度有哪些要求?
  7. CSS3-06 样式 5
  8. python基础语法类型_Python基本语法[2]-简单数据类型,基础
  9. matlab 读取图片后分区域编号_你的第一个有限元求解器——仅十行MATLAB代码
  10. 使用resnet, inception3进行fine-tune出现训练集准确率很高但验证集很低的问题
  11. 安全电子签章密码技术规范_《密码法》中的“密码”,你真的了解吗?
  12. 用计算机模拟受力分析,科学网—CAE仿真分析应用之机械领域——元计算pFEPG - 施坤的博文...
  13. 推荐一款免费在线高效作图工具
  14. 通过tasker实现朗读微信QQ文字消息
  15. B站视频解析去水印工具入口
  16. ElasticSearch 7 中keyword和integer、long、short存储性能对比实验
  17. 建筑八大员培训湖北劳务员培训建筑劳务人员实名制管理的问题
  18. 同网络的计算机能共享音箱吗,2019年PC“老爷机”局域网内DLNA共享音乐到小度智能音箱全记录...
  19. 手机App开发的有关问题
  20. 基于51单片机控制的篮球比赛计时、计分系统设计与仿真(含设计图和C语言程序源码)

热门文章

  1. python可以体现数学中映射概念的是_【课时27+集合+在我的世界里+你就是唯一】 - #1...
  2. Date类 和 Calendar类
  3. java正则匹配双字节_Java 正则表达式详解(二)
  4. Java基础03 字符串连接符+
  5. 1_Excel实战_自动录入另一个表格对应的数据
  6. 用html还是xml做网页好,XML与HTML的比较
  7. CentOS 7安装docker环境
  8. python实现两个接口的依赖关系
  9. .net 数字转汉字_收藏!小学生汉字拼音学习工具。
  10. linux怎么获取目录名,linux下如何获取目录名?(四种方法)