我正在进行2D游戏并使用64x64纹理来绘制我的角色。它基本上看起来像超级马里奥兄弟,每个角色有大约10帧构成他们的整个动画序列。
pvr工具听起来很有前途,它将我的图像压缩到每个4kb,非常棒。但质量很差。我不认为我能做些什么,但想要仔细检查。每个帧都是某个姿势中的字符,透明像素填充64x64空间的其余部分。我以某种方式在透明区域中填充像素,奇怪的工件使输出pvr变得无用(这不是错误,我认为它只是pvr的工作方式)。我可能会在角色本身中获得一些研究,但不会在透明区域突然出现随机像素。
这周围有什么诡计吗?我认为我们在iPhone上只有大约10mb的内存,所以如果我的每张图像都是64x64像素未压缩的话,我会稍微耗尽一些空间,因为每个都会是惊人的16k。
由于
答案 0 :(得分:0)
至少你应该通过使用16位纹理来减少一半的内存。在Cocos2D中,您可以使用
完成[Texture2D setDefaultAlphaPixelFormat:kTexture2DPixelFormat_RGBA4444]; // add this line at the very beginning
有关Cocos2D中pixel format的更多信息
如果您使用原始OpenGL进行编程,请查看Cocos2D sources
答案 1 :(得分:0)
我发现稍微改进的一件事是使用比他们需要的更大的图像,然后将它们缩小到实际尺寸。这隐藏了一些工件,但显然你不会节省太多内存。
那说最后我们放弃了为2d精灵使用pvr纹理,因为我们无法获得我们所需的图像质量,无论我们多么努力,总会看到一些工件。
另外我相信你实际上有24mb的视频内存可供使用,所以你可能有比你未经压缩的精灵更多的空间。