前言:新项目里有很多边缘是1个像素的图片(头像边框,listView边框,等)。这些图片在用Texturepacker打包成pvr.ccz后,运用在游戏场景中,比如:listView中,滑动view的时候,图片的边缘总是有1-2个像素的消失和抖动。
解决思路:
1,从引擎方面着手,找寻TextureCache加载流程代码未发现异常。到cocoChina寻找cocos引擎组帮助,得到的解答是修改shader的精度。(此修改改后,图片仍然抖动,问题仍然未解决)。附上解答贴地址(http://forum.cocos.com/t/topic/40483/49),如下:
2,从lua代码找方向。今天试了下用原生的不经过TP打包的图片,进行图片创建,发现图片在listView中并不会发生特别大的抖动。所以开始从TP方面下手寻找解决方法(最终问题得到解决)
解决方法:
1,在TP打包的时候要选择NPOT模式,将图集打包成2次幂大小:
2,在TP打包的时候,调整图片打包后的外边缘大小,和内边缘大小,防止像素被吞:
3,一个图集pvr.ccz中,不可以打包太多图片。太多图片会导致图集加载到内存中,压力过大,移动起来图片会发生抖动
4,一个图集pvr.ccz中,不能有1个像素点大小的图片,如(1x4大小的图片),否则也会闪
5,在满足了以上几点之后。问题算是解决了。但是原生引擎的1像素抖动,还是会存在。这个貌似是一直都存在的问题?