我打包了几个单独的精灵,并用Zwoptex生成了一个大小为2048*2048的精灵工作表。但我会缩小以匹配每个iOS设备,例如用于iPad HD的2048*2048,用于iPhone的512*512,等等。
我发现Zwoptex中的"Spacing Pixel“选项会影响精灵在设备上渲染的结果。这个值意味着在sprite-sheet中打包的每个单独的sprite之间有一个空格(以像素为单位)。例如,如果我将该值设置得太低,那么在较新或更好的设备以及较旧的设备上发生像素溢出的可能性会更大。但如果我增加这个值,机会就会降低,并且对于足够高的某个值,像素溢出(希望)不会发生。
无论如何,我将值设置为17-20左右,这真的很高,它在精灵工作表上消耗了宝贵的空间。结果是,在iPhone模拟器上,仍然存在一个问题。
由于我们只能限制某些设备安装某些iOS版本的游戏,但iPhone 3GS仍然可以更新到最新版本,因此我需要解决这个问题。
所以我想知道如何在从iPhone到iPad (包括视网膜)的所有iOS设备上防止像素溢出问题的解决方案。这将是伟大的,知道任何最佳实践或实际解决方案选择某些值的“间距像素”之间的精灵,以消除该问题时,渲染。
发布于 2013-02-22 20:49:59
如果只有模拟器显示这些工件,那么一定要忽略它们!你的用户都不会在模拟器中运行你的应用程序,不是吗?模拟器并不完美。
每个纹理图集精灵帧周围2个像素的间距足以(通常推荐)消除像素溢出导致的所有伪像。如果你仍然看到伪像,它们不是间距太小的直接原因。他们不可能是。
我不确定Zwoptex,你真的需要手动创建每个缩小版的纹理地图集吗?你可能会在那里做一些事情。试试TexturePacker,如果工件就这样消失了,我不会感到惊讶。
例如,一种类型的伪像是由于没有将对象放置在整数位置而导致的。如果两个对象的位置类似于(1.23545,10.0)和(41.23545,10.0),您可能会看到两个对象之间的间隙(通常是一条黑线)。使用整数坐标(1,10)和(41,10)可以解决这些问题。困难的是,这在层次结构中一直向上,如果这些对象的父节点也在非整数位置,您仍然可以体验到这种线间隙伪影。
如果你到处搜索,你会发现很多关于cocos2d工件的因果讨论。请记住一件事:不要使用CC_FIX_ARTIFACTS_BY_STRECHING_TEXEL宏。这不是一个修复,它甚至不能接近。它在某种程度上修复了非整数位置伪像,并引入了另一个(更糟糕的IMHO):移动过程中的锯齿/闪烁。
https://stackoverflow.com/questions/15023158
复制相似问题