分享针对iOS设备执行纹理加载过程的方法

社区服务
高级搜索
猴岛论坛游戏达人&视频分享针对iOS设备执行纹理加载过程的方法
发帖 回复
倒序阅读 最近浏览的帖子最近浏览的版块
2个回复

分享针对iOS设备执行纹理加载过程的方法

楼层直达
bosigams

ZxID:23388104

等级: 列兵
举报 只看楼主 使用道具 楼主   发表于: 2013-02-27 0
这能解决哪些问题?

由于内存的限制,我们在创造游戏玩法的过程中总是需要整合纹理内容。可能是出于复杂的3d世界的约束,开发者必须将对象顺畅地整合进关卡中,或者在我们自己的案例中,为了使用2d渲染,我们就必须整合进更多纹理(我们预先渲染了游戏世界,对象和角色动画的纹理集,并将其映射到布告牌上以获得更高质量的视觉效果,灯光以及更复杂的环境/角色)。

如果你的问题是以毫秒的速度在3d世界中加载纹理,你便可以使用压缩PVR纹理去解决这一问题。除此之外关于这一方法还存在其它更棒的性能优势。

如果你和我一样是为了呈现布告牌纹理去加载这些内容,你便可以基于无损耗模式,如PNG(最普遍的一种),BMP,TGA或未压缩的PVR去加载它们。基于本篇文章所提及的技术,你便能够通过改变你所使用的格式或加载方式而获得大量的性能优势。

步骤1:文件格式

如果你打算在一个3d世界中使用对象纹理,你便可以选择PVRTC格式,因为这是一种有损耗且固定的纹理压缩格式,同时支持4bpp和2bpp的ARGB数据。

而对于无损耗纹理,你的最佳选择则是未压缩的PVR文件格式。这一格式包含了PVR文件标题以及基于RGBA4444,RGBA8888或者BGRA8888等格式的数据。如果你使用的是32bit数据,你就没有理由使用RGBA8888格式,因为驱动程序将处理其中的cpu内容,这时候你可以预先将数据转变成BGRA8888格式,从而将其直接上传至内存中。

注释

–如果你使用RGB8数据格式去处理CPU,那便等于你在执行一些无用功,因为你必须为此添加一个填充字节,所以你必须确保始终使用RGBA/BGRA格式,即使你并不需要使用这一渠道。

–使用未压缩纹理格式意味着将占据更多磁盘空间。虽然这不会影响你的应用下载规格(IPA/APK则会压缩你的内容),但是在安装时却会占用更多的磁盘空间。如果你发现磁盘空间的使用已经超出了自己的预想,你便可以将纹理整合进.zip格式的程序包中,在初始加载时压缩你所需要的内容,并在应用终止时删除这些内容。游戏开发(http://www.bosigame.com)
筱_小璃

ZxID:10130091

等级: 元老
热会④队。收迅雷快鸟会员戳Q

举报 只看该作者 沙发   发表于: 2013-02-27 0
??、、不会
/〈蝶〉

ZxID:19414751

等级: 少将
希望大家多多照顾我一下谢谢了
举报 只看该作者 板凳   发表于: 2013-03-07 0
字好多啊
为什么我搞不了图象在这里啊我琢磨了半天还是琢磨不出来要是有谁会的话教下我在
« 返回列表
发帖 回复