论文部分内容阅读
为啥出现兼容问题
你有没有想过,为啥PC游戏可以兼容NVIDIA和AMD(ATI)的全系列显卡?没错,是因为PC平台的显卡和游戏均支持统一的DirectX或OpenGL图形接口。但手机和平板电脑所用的ARM处理器则缺少统一的技术规范,不同的GPU厂商都坚持自己的纹理压缩标准格式且互不兼容,这就苦坏了游戏开发商和用户,前者好不容易开发出一款游戏,还得针对不同GPU进行优化,而后者在下载游戏时必须选对和自己手机匹配的游戏版本,否则就会出现贴图错误甚至无法运行的问题。
主流纹理压缩标准一览
首先我们需要清楚一点,ARM移动处理器其实是一种SoC片上系统,其内部整合了CPU单元和GPU单元甚至通讯单元。因此在讨论游戏兼容性时,CPU就等于GPU,比如说Mail-400MP4兼容性一般,基本就等同于说三星猎户座处理器的兼容性一般,为Power VR优化的游戏也就等同于为德州仪器处理器优化的游戏。
目前常见的纹理压缩格式主要以ETC1(ARM自己所倡导的标准,属于OpenGL ES图形标准的一部分)、PVRTC(以德州仪器为主,三星早前的单核蜂鸟处理器也支持该标准)、ATITC(高通处理器)和DXT(华为海思四核和NVIDIA Tegra系列)为主(表1)。
这就解释了为什么华为Ascend D1四核版(采用海思K3V2)可以兼容绝大多数为NVIDIA优化的大型游戏数据包,甚至部分针对三星猎户座和德州仪器优化的游戏也能正常运行,因为它既支持NVIDIA专用的DXT标准,同时也支持ARM官方倡导的ETC1标准。
需要注意的是,现在不少论坛都提供了一些所谓的“通用版”的大型游戏,但其并不能100%兼容所有处理器或GPU,而且通用的代价是放弃或降低了部分画面特效。因此你会发现此类游戏往往没有针对某处理器(或GPU)优化的游戏画面绚丽。
难以统一的标准
苹果全系列iPhone都集成了Power VR系列GPU,因此根本不存在任何兼容性问题。但Android平台的开放性就决定了其无法强制硬件厂商采用统一的标准,实现100%的GPU兼容规范,至少短期内没戏。
无论如何,为Android手机寻找100%兼容的大型游戏都是比较费力的。好消息是,现在多核处理器的性能都足够强大,这意味着我们可以通过虚拟的形式,让高通处理器去兼容三星处理器的数据包,而所需要的仅为一款名为Chainfire 3D的软件。该软件具体的使用教程请参考本刊7期的特别话题2。
小提示
纹理压缩格式
现在的3D游戏都需要超精细的纹理显示。举个例子,某款游戏的画面极为绚丽,但代价是需要消耗90%的显存和带宽资源。为了提升运行效率,必须对其进行纹理压缩以减少对资源的消耗。问题来了,现在流行A、B、C……等无数纹理压缩标准,你必须有选择地针对某几个占有率最高的标准进行纹理压缩,舍弃某些非主流的标准。这就导致了为什么一款游戏会推出NVIDIA版、高通版、三星版等多个版本,而且有些手机就是找不到匹配的数据包。
你有没有想过,为啥PC游戏可以兼容NVIDIA和AMD(ATI)的全系列显卡?没错,是因为PC平台的显卡和游戏均支持统一的DirectX或OpenGL图形接口。但手机和平板电脑所用的ARM处理器则缺少统一的技术规范,不同的GPU厂商都坚持自己的纹理压缩标准格式且互不兼容,这就苦坏了游戏开发商和用户,前者好不容易开发出一款游戏,还得针对不同GPU进行优化,而后者在下载游戏时必须选对和自己手机匹配的游戏版本,否则就会出现贴图错误甚至无法运行的问题。
主流纹理压缩标准一览
首先我们需要清楚一点,ARM移动处理器其实是一种SoC片上系统,其内部整合了CPU单元和GPU单元甚至通讯单元。因此在讨论游戏兼容性时,CPU就等于GPU,比如说Mail-400MP4兼容性一般,基本就等同于说三星猎户座处理器的兼容性一般,为Power VR优化的游戏也就等同于为德州仪器处理器优化的游戏。
目前常见的纹理压缩格式主要以ETC1(ARM自己所倡导的标准,属于OpenGL ES图形标准的一部分)、PVRTC(以德州仪器为主,三星早前的单核蜂鸟处理器也支持该标准)、ATITC(高通处理器)和DXT(华为海思四核和NVIDIA Tegra系列)为主(表1)。
这就解释了为什么华为Ascend D1四核版(采用海思K3V2)可以兼容绝大多数为NVIDIA优化的大型游戏数据包,甚至部分针对三星猎户座和德州仪器优化的游戏也能正常运行,因为它既支持NVIDIA专用的DXT标准,同时也支持ARM官方倡导的ETC1标准。
需要注意的是,现在不少论坛都提供了一些所谓的“通用版”的大型游戏,但其并不能100%兼容所有处理器或GPU,而且通用的代价是放弃或降低了部分画面特效。因此你会发现此类游戏往往没有针对某处理器(或GPU)优化的游戏画面绚丽。
难以统一的标准
苹果全系列iPhone都集成了Power VR系列GPU,因此根本不存在任何兼容性问题。但Android平台的开放性就决定了其无法强制硬件厂商采用统一的标准,实现100%的GPU兼容规范,至少短期内没戏。
无论如何,为Android手机寻找100%兼容的大型游戏都是比较费力的。好消息是,现在多核处理器的性能都足够强大,这意味着我们可以通过虚拟的形式,让高通处理器去兼容三星处理器的数据包,而所需要的仅为一款名为Chainfire 3D的软件。该软件具体的使用教程请参考本刊7期的特别话题2。
小提示
纹理压缩格式
现在的3D游戏都需要超精细的纹理显示。举个例子,某款游戏的画面极为绚丽,但代价是需要消耗90%的显存和带宽资源。为了提升运行效率,必须对其进行纹理压缩以减少对资源的消耗。问题来了,现在流行A、B、C……等无数纹理压缩标准,你必须有选择地针对某几个占有率最高的标准进行纹理压缩,舍弃某些非主流的标准。这就导致了为什么一款游戏会推出NVIDIA版、高通版、三星版等多个版本,而且有些手机就是找不到匹配的数据包。