当前位置:  开发笔记 > IOS > 正文

PVR纹理与OpenGL ES中的PNG

如何解决《PVR纹理与OpenGLES中的PNG》经验,为你挑选了2个好方法。

我正在为iPhone开发一个渲染大量纹理的2D应用程序.它们中的大多数都是从具有Alpha透明度的PNG文件加载的.作为测试,我一直在玩PVR测试,看看是否有任何性能差异.

PNG纹理加载了崩溃着陆示例附带的Texture2D类.PVR-testures使用PVRTextureLoader示例中的PVRTexture类加载.我使用Apple的texturetool创建PVR纹理.

作为测试,我渲染背景(512*512),并在36个90*64像素精灵(来自512*512纹理)的顶部透明.PVR纹理渲染大约58 fps,PNG渲染47 fps.这是我可以期待的还是差异会更大?另外,texturetool生成的纹理看起来非常糟糕,PVRTexTool更好吗?



1> noop..:

PNG图像:

高精度的颜色表示,而不是有损

磁盘读取/解压缩较慢.

慢速上传到图形硬件,内部像素重新排序(混合)由驱动程序执行.可能还有RGBA < - > BGRA < - > ARGB之间的转换,尽管Xcode通常将PNG转换为针对硬件更优化的颜色格式.

由于内存带宽有限,渲染速度较慢(GPU内存读取的字节数更多).实际减速量取决于使用情况.这个问题在低于1倍的放大率和没有MIP映射时尤为明显.

占用更多RAM/VRAM空间.

可编辑,可在上传前通过您的软件进行过滤/混合/调整大小/转换.

在驱动程序纹理上载期间,可以自动生成Mip-maps

磁盘空间使用因内容而异,对于简单图像而言非常小,对于逼真的图像几乎未压缩.

可以直接快速地从任何图像编辑软件导出.

个人录像机:

低精度有损压缩.可提供2个压缩级别,每像素2位和每像素4位.块状,可能会损坏锋利的边缘和平滑的渐变.图像质量因内容而异.3或4个颜色通道,因此您可以使用alpha通道,但有损压缩可能会产生不良结果.

从磁盘快速加载,无需软件解压缩.

几乎即时纹理上传,因为它是内部硬件格式,将通过驱动程序不变.

由于较小的内存带宽使用而快速渲染.当使用PVR纹理时,像素渲染速度主要受到其他因素的限制.

使用最少量的RAM和VRAM空间.

必须预先生成Mip-maps.

您无法在软件AFAIK中生成或编辑PVR.或者它会很慢.

磁盘空间使用量与源图像大小(固定压缩比)成正比.可以通过其他方法进一步压缩(略).

尺寸限制.2的力量,仅方形.

需要额外的转换工具,处理可以自动化,但会大大减慢构建时间.



2> 小智..:

PVRTC纹理的性能应该更好,因为它们是压缩的(有损).解压缩在图形硬件本身中完成.传输的纹理数据越少,因此您可以获得更多带宽.您为RAM和带宽节省支付的价格是质量损失.

推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有