为什么不同GPU游戏兼容性差别这么大
为什么不同GPU游戏兼容性差别这么大

Android上玩游戏似乎总没有iOS上要来得爽。手机上的大作首发大都在iOS平台,Andrid平台总得要瞻仰那么一回才会发布,不过这还不最让人不爽的,最蛋疼的是辛苦的下载完游戏,点击发现秒退,而即使能打开,很多时候游戏画不是少了这个效果,就是贴图出错,有时甚至主角也能无端端消失,实在惨目忍睹啊!究竟是什么原因造成Android 玩游戏这么悲催呢?

下面的4张图是狂野之血里的截图,仔细看的话大家会注意到图正中间是有差异的,其中采用Adreno 320以及GC4000 GPU的画面都缺失了部分的效果,而只有Mail-400MP4和SGX543MP3的特效才是全开的,而GC4000除了缺失特效外,连主角也消失了.......

为什么这种情况我们在PC游戏的时候从来都没遇到过呢?这主要是因为PC显卡和游戏均有统一的DirectX标准,但是在手机的处理器中并没有统一的标准,不同的GPU厂商都有自己的纹理压缩标准且互不兼容,这也就是导致了为什么同一款游戏,在不同的手机上会有如此大的差别。

纹理压缩

在3D游戏中,丰富的纹理和细节对游戏的质量是非常重要的,但是由于显存和带宽的原因,所以纹理都是需要经过压缩的,不然会给显存和带宽带来巨大的压力,而纹理压缩就是为了解决这个问题。

目前安卓平台使用的GPU支持的纹理格式主要有以下几种:

PVRTC:PowerVR系列GPU支持
ATITC:高通Adreno系列GPU支持,来自以前的ATI
DXTC:nVIDIA Tegra系列,VivanteGC 系列
ETC1:ARM的Mali系列GPU支持,以上四家也支持

上述几种纹理压缩格式都是互不兼容的,好在大家都支持OPENGL ES要求的一种通用格式ETC1。但是ETC1有个问题,就是不支持Alpah通道,只能把一个纹理拆成2个去间接实现,游戏厂商大概觉得比较麻烦吧。所以像地牢守护者等大作,只提供了PVRTC、ATITC和DXTC三种数据包,这样只支持ETC1的GPU就会有点悲剧了。

所以一个游戏在Android上能否完美的运行必须要看游戏厂商是否对GPU进行优化,只有优化了才能让游戏更加流畅和让贴图更加准确。不然人物说不定会无端端多出些黑斑。

注意看人物的手臂

这样我们就明白了为什么iOS上的游戏为什么不会出现这么严重的错误,因为苹果跟Imagination 是一对好机友,GPU都是Imagination 的PowerVR 系列,所以游戏厂商只要做支持PVRTC纹理就可以了。

那为什么游戏厂商的游戏不支持其它的纹理压缩格式呢?Android 的碎片化已经让开发者够蛋疼的了,然后还要针对不同的GPU做优化,那就真是蛋碎了,还不如转行卖切糕。所以这也是为什么iOS游戏总是快于Android 游戏的原因之一,另外Android 平台上的游戏也没有iOS 平台好挣钱,所以开发者也懒得理这么多的GPU了。

目前由于苹果的强势,很多游戏都是从iOS平台移植过来的,只有PVRTC这个纹理压缩格式的数据包。所以如果你真的喜欢玩游戏的话,选择使用Power VR 的GPU会是一个不错的选择,比如德州仪器的芯片或购买iPhone。不过随着三星、高通和nVIDIA的强大,支持Adreno、Maili以及Nvidia GPU纹理压缩格式的游戏也越来越多了。

更多请关注我们的微博@爱搞机

 

相关文章链接

科普:博通双核CPU+双核VPU处理器解析

A7四核之争 联发科MT6589对比高通MSM8X26

分享:
igao7-litaixian
编辑
我是搞机的不是搞基的,妹纸们别不理我。
分享微博 分享微信
爱搞机微信

爱搞机微信

搞机啦微信

搞机啦微信

推荐产品

抱歉,产品库没有您要找的产品

试用