开发中的“软”与“硬”:高画质移动游戏开发之道

摘要:游戏的效果不仅与游戏引擎的渲染相关,与硬件优化也有千丝万缕的联系。一款基于芯片优化的移动游戏界面,甚至可以堪比视频游戏的视觉效果。高通半导体事业部资深经理刘晓光从软硬件两个层面分享了移动游戏开发之道。

在今年的Unity亚洲开发者大会上,高通公司半导体事业部资深经理刘晓光从硬件芯片、引擎优化、OpenGL ES 3.0支持,以及开发工具等角度,分享了如何软硬件双管齐下,开发及优化出优秀的移动游戏。


高通公司半导体事业部资深经理刘晓光

高通深植无线领域已逾25年,一直引领无线领域的创新,到目前为止芯片出货量已超过150亿。高通仅2013年在R&D方面投入了50亿美元,这在所有高科技公司中,每年50亿美元的R&D投入是非常大的。刘晓光表示“到目前为止高通拥有超过84000多个合作伙伴,我们的市值也已经达到1280亿美元。”

到现在为止高通覆盖了市场中超过1350款终端,而且还有500款正在紧锣密鼓地研发过程中。截止至目前,与已经有超过100个厂家采用高通处理器研制手机。


采用高通Snapdragon的平板电脑

高通和微软进行了深度合作,在Windows Phone领域中,高通是最大的供货商,100%的Windows Phone都是采用的高通处理器。同时,我们也是最先支持Windows Phone和Windows 8的芯片供应商。到目前为止,已经有超过50款Windows Phone和RT设备面世,将来还会有更多Windows Phone平台设备会应用到高通处理器。

移动游戏与芯片

移动游戏这几年的发展突飞猛进,其增长率甚至超过了整个游戏领域增长率。据Gartner分析报告显示,从2013到2015年,移动游戏领域收入将会翻倍,实现从132亿至220亿美元的增长。而且将会有更多的游戏开发商和设备生产商被吸引至移动平台上来。到底是什么使移动游戏如此流行?刘晓光认为真正原因还是用户体验。如果对比2010年狂野飙车的界面和2013年狂野飙车8的界面,渲染、背景,俨然是两个时代的产品。

高通的处理器不仅仅是面向高端领域,从低端入门到高端的产品均有涉猎,从低到几百元的智能手机,到最高端的智能手机,大多数用的都是高通骁龙芯片。高通骁龙芯片有四个特点,提供最完整的单芯片解决方案,有强大的图形处理器,以及异步对称多处理(aSMP)CPU架构,这是现在很多芯片所不具备的。

在CPU构架方面,高通在移动领域上是唯一支持异步对称多处理架构的公司。留意一下关于手机芯片的新闻你会发现一个问题,有很多性能比较高的芯片进入市场,但是为什么在手机上很少见呢?那是因为高性能并不是全部,高性能和低功耗相结合才是刚需。异步处理器,在性能和功耗能效上具备最佳平衡,只有异步处理器,才能保证当手机忙的时候,让所有的核都工作起来,让手机性能达到最高,但是手机空闲的时候,不同的CPU可以单独工作,让功耗降至最低。

“在SoC嵌入式GPU领域,高通市场份额第一,占有32.3%的市场份额,Nvidia占1.4%,剩下的48家厂商则占66.3%”刘晓光表示,“GPU在移动领域发展非常迅速,甚至超过了整个PC领域。高通在短短几年内,从最早的GPU的Adreno A200开始到现在最新的Adreno A420的处理器,将其整体性能提升了65倍。”


观众现场体验采用高通技术的平板电脑

基于OpenGL ES 3.0进行优化

高通不仅支持从DX9.3到DX11.1版本,也是全球第一个支持OpenGL ES 2.0和OpenGL ES 3.0的芯片,并在GDC上宣布支持OpenGL ES 3.1。

以实例化几何渲染(Instaced Geometry Rendering)为例,大家绘制比较复杂的图形时,经常会遇到一些需要重复渲染的小元素,比如说天上的鸟,地上的蚂蚁等类似场景,以前需要对它们逐一渲染,这会占用很多CPU资源,非常耗电。而现在绘制一个实例,GPU可以一次渲染多个类似对象,这让游戏绘制流畅很多。

对于OpenGL ES 3.0的遮挡查询(Occlusin Queries)方面。我们在移动设备做事情讲的最多的就是提高效率,我们也想了很多方法来提高效率,比如说有景深的画面,如果前面的元素遮挡了后面的元素,那么后面的元素是不需要渲染的。而这在以前开发过程中需要全部渲染出来,做了许多无用功。我们用遮挡查询,可以让绘图效率达到最高,通过查询简单的查询,可以判断边界是否被遮挡,比如在做镜头光晕效果时,可以查询太阳是否可见,并且只渲染镜头光晕。

另外高通对阴影PCF做了很多优化,让整个阴影更加的流畅,包括延迟着色和光照,对于几何物体,在第一遍着色时就会被渲染,在第二遍着色时,只有在有光照的情况下才会最终被渲染成像素。可以说,OpenGL ES 3.0开启了移动领域的延迟光照,这需要GPU支持多渲染目标和浮点纹理。“我们可以同时对多个目标进行渲染,我们的浮点纹理处理性能也非常高。”刘晓光表示。

很多开发者可能都有过这样的体会,当你做纹理压缩的时候,OpenGL ES 2.0就是个恶梦,直到3.0定义了纹理压缩格式。“希望大家尽快迁移到3.0版本,因为OpenGL 2.0做游戏,要针对不同的GPU做不同的纹理压缩包。不是让应用体积增大,就是需要你在用的时候下载不同的扩展包。对于小白用户来说,他不知道自己的手机是什么样的,也不知道,这个游戏是不是为他所用的设备生产的,有那么多的下载资源,如果游戏下载到手机上,发现没法玩的时候,受害最大的还是开发者,如果迁移到3.0上的话,这些问题就迎刃而解了。”

对GPU的历史熟悉的朋友肯定知道,以前GPU曾有两派,一种是可编程单元式顶点着色器和像素着色器用不同的单元做,另一种则是同一单元可以做顶点着色,也可以做像素着色。各有各的好处,到移动领域,最优解是同样的处理单元可以做不同的工作。现在GPU画图时,如果顶点处理的任务和像素处理的任务,并没有完全充分利用到现在的处理单元的话,有一部分单元是空闲的。在移动领域最不容忍的就是浪费效率和浪费能耗。

广泛支持引擎中间件

高通跟很多游戏引擎中间件都有合作,包括包括游戏引擎Unity、Unreal、CryENGINE、Unigine,物理引擎Box2D、havok、Bullet,音频引擎FMOD、SRS、Dolby、Wwise,以及高级渲染引擎Lighting Engine、Enlighten、ALG、Procedural Texturing,让开发者无需接触GPU开发,可以直接通过这些引擎达到GPU优化的目的。

高通针对第三方引擎我们做了很多优化,首先是渲染和用户界面,让游戏引擎针对我们的GPU进行优化,包括最新的API调用,以及GPU的特性。针对物理和AI的引擎,则让它充分利用到高通GPU的多线程的特性,并且让它利用高效的处理单元,甚至DSP以最低功耗最快的速度处理你需要的数据。在视频和音频方面,让解码器用DPS,把最完美的图像做出来。高通芯片支持所有的网络协议,在LTE Cat6的下载速度可以达到300Mbps的水平,通过与游戏引擎公司合作,让他们在网络层面进行充分优化,让需要联网的应用或游戏网络延迟更小。

Unity CEO参观高通展位

多种工具助力开发及优化

高通为开发者提供了Adreno的SDK和调试工具Adreno Profiler。Adreno SDK在桌面上可以模拟OpenGl ES,高通有实例和教程,可以掌握OpenGL ES的用法。调试工具对于开发者来说非常必要,它能够对GPU的利用率进行细致分析。同时,高通还有工具库,帮开发者做纹理压缩和混合优化。

大家在开发过程中可能会碰到各种各样的问题,以前靠猜问题出在哪儿,甚至走很多弯路。Adreno GPU分析器,它有两种模式,一个是“洗涤器模式”,在一帧里着色纹理,所有调用信息实时进行处理,让你知道绘制这个图的时候,你的程序给GPU下了什么指令,GPU做的动作是什么。另外一个是“绘图器模式”,实时监视并分析所有数据,包括每种3D场景,GPU调用的实施情况,你可以从中知道GPU是否在想要的状态下工作。

高通骁龙覆盖低端、中端、高端移动终端。高通和Unity一起基于高通处理器对Unity 4.3做了优化,大家可以享受高通处理器优化的功能。同时,高通还未为开发者提供工具和文档,节约开发时间。刘晓光表示,对于优秀的顶级厂商,还有应用开发商,高通还会为大家的应用提供更多的展示机会。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447895.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

解决 VUE: [Vue warn]: Do not use built-in or reserved HTML elements as component id: xx

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 新增一个组件,运行无问题,但F12报错: vue.esm.js?efeb:591 [Vue warn]: Do not use built-in o…

Linux系统重置和修改root密码

Linux系统经常会出现忘记root密码的情况,写下此随笔,以便记忆和学习。 一、重置root密码的步骤如下: 1.如果系统是开机状态,重启一下。进到下面这个界面按字母“e”键。 2.找到 linux16这一行,将下图红框中的内容修改为…

KETTLE 使用教程

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 Kettle的建立数据库连接、使用kettle进行简单的全量对比插入更新:kettle会自动对比用户设置的对比字段,若目标表…

为什么你应该参与到开源项目中

试图描述开源并不是一件容易的事——很多图书作家,社区领袖和主持人对于开源社区的工作原理以及它是否对新人程序员有帮助持不同意见试图描述开源并不是一件容易的事——很多图书作家,社区领袖和主持人对于开源社区的工作原理以及它是否对新人程序员有帮…

历史上最知名的15位计算机科学家

基于维基百科上超过11,000位历史人物的数据,麻省理工学院媒体实验室创建出了一种名为“历史人气指数(HPI)”的参数。以下列出了15个历史上最知名的计算机科学家,我们来看一下他们的“HPI”分数。麻省理工学院媒体实验室推出了一个…

想要转人工智能,程序员该如何学习?(学习路线、知识体系)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 对于程序员来说,码农之路并不是一帆风顺。对于每一个入行IT业的社会青年来说,谁不是抱着想要成为最高峰的技术大…

【转载】矩阵求导、几种重要的矩阵及常用的矩阵求导公式

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本文链接:https://blog.csdn.net/daaikuaichuan/article/details/80620518 一、矩阵求导 一般来讲,我们约定x(x1,x2,...xN)…

数据结构与算法绪论

基本概念和术语 数据数据是信息的载体,是描述客观事物属性的数,字符以及所有能输入到计算机中并被计算机程序识别和处理的符号的集合。 数据元素数据元素是数据的基本单位,通常作为一个整体进行考虑和处理。一个数据元素可由若干个数据项组成…

Windows10 网络图标消失 连接不上网络 的解决方法

【背景】电脑win10的,下载一个软件重启之后网络图标消失,并且无法联网。 参照此解决方法: 原因: 【Windows Event Log】服务对应的注册表出现问题,导致无法正常启动,进而导致一些依赖于它的联网服务无法正常…

VUE:解决 [Vue warn]: Error in render: “TypeError: item.slice is not a function“ (取部分数据)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 双重循环中使用 slice方法,报错: [Vue warn]: Error in render: "TypeError: item.slice is not a fun…

在 js 中怎样获得 checkbox 里选中的多个值?(jQuery)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 思路:利用name属性值获取checkbox对象,然后循环判断checked属性(true表示被选中,false表…

VUE项目中 获得多个复选框 checkbox 选中的值(jquery)+ 解决 Uncaught TypeError: Cannot read property ‘push‘ of undefine

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 表格生成后第一列是复选框,效果: 表格是直接循环展示的后台返回数据,代码写法: 2. 得…

[开源] FreeSql.AdminLTE.Tools 根据实体类生成后台管理代码

前言 FreeSql 发布至今已经有9个月,功能渐渐完善,自身的生态也逐步形成,早在几个月前写过一篇文章《ORM 开发环境之利器:MVC 中间件 FreeSql.AdminLTE》,您可以先阅读上一篇文章内容了解来龙去脉,再回到这里…

《小狗钱钱》:理财首先应该有一种强烈的意识

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 《小狗钱钱》读完了。以下是个人觉得很有帮助和启发意义的摘抄。 1) "忽视就是一种认输"。2) 并非困难使我们放弃&#xff0c…

广州驾校考试实际道路考试注意事项(图)

导读:面对实际道路考试时,大家都会有些紧张,因为这个科目不再只是面对场地,而是要面对各种状况和各种车辆,也是获取驾照的最后一个关卡。因此,为了让大家掌握考试的整个流程,网为大家带来科目四…

《 Docker 进阶与实战 》 读书笔记

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 以下内容全文出自书目:《 Docker 进阶与实战 》 1. Docker 定义:一个开源的容器引擎,可以方便地对容…

【转】R语言函数总结

原博;R语言与数据挖掘:公式;数据;方法R语言特征 对大小写敏感通常,数字,字母,. 和 _都是允许的(在一些国家还包括重音字母)。不过,一个命名必须以 . 或者字母开头,并且如…

《趋势的力量》-- 观念决定了个人发展的战略路线(大学生选择专业、就业、考研与否的建议)

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 最近几天看了好几本书,其中这一本个人觉得很有启发意义。于是记录一二。 主体大纲: -------------------------…

中间件 - 初识

中间件 - 初识 ​ 在Java项目实际开发中,我们所使用的ActiveMQ、RibbitMQ、Kafka、Tomcat、WebLogic,这些都可以统称为中间件。 ​ 我们初次去了解,什么是中间件? 一、中间件简介 ​ 什么是中间件? ​ 由于业务、机构和技术是不断…

VUE 解决:Property or method “deleteFun“ is not defined on the instance but referenced during render.

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 1. 一个点击事件报错: Property or method "deleteFun" is not defined on the instance but referenced during…