周5晚上的那个会,有人提到资源的问题,最后那个给大家讲课的人说要用POT的资源, 但是一些其他的人BLOG里写的 都是不要使用NPOT 说POT在GL里有个BUG 反而更慢 到底现在是什么情况?
你好,“ 都是不要使用NPOT 说POT在GL里有个BUG 反而更慢”这里有点小歧义,我不太明白~你说blog是怎么建议的呢?
使用NPOT纹理
NOPT是“non power of two”的缩写,译作“不是2的幂”。NPOT stands for “non power of two”. 在cocos2d1.x的时候,你必须在ccConfig.h文件中开启对NPOT的支持,但是,cocos2d 2.x就不需要了,它默认是支持NPOT的。所有3代(iphone 3GS)以后的ios设置都支持cocos2d 2.x(因为它们支持OpenGL ES2.0),所以也都能支持NPOT纹理。
如果纹理图集(texture atlas)使用NPOT的纹理,它将有一个具大的优势:它允许TP更好地压缩纹理。因此,我们会更少地浪费纹理图集的空白区域。而且,这样的纹理在加载的时候,会少使用1%到49%左右的内存。而且你可以使用TP强制生成NPOT的纹理。(你只需要勾选“allow free size”即可)
为什么要关心NPOT呢?因为苹果的OpenGL驱动有一个bug,导致如果使用POT的纹理,则会产生额外33%的内存消耗。
这是我经常看的一个人的转载 而且就包括子龙仙人的里面好像也都是同样的意思
这个需要回复
这个问题应该在子龙的文章里提到过了,沙龙的主讲可能接触这个比较早,有些新观念没有及时更新。
我现在也搞不懂到底用POT好还是NPOT好了
同搞不懂,所以一直使用NPOT
用NPOT 吧,目前主流机型的都能优化这个,而且苹果对于POT还有问题。所以使用NPOT 还是不错的。
是不是GLES1.0遗留的问题
以前用的一个特效编辑器,NPOT在某些android的机器上会显示成黑色方块
但又一直看到的是POT的纹理,会产生额外33%的内存消耗
