cocos2d-x 纹理像素格式

前端之家收集整理的这篇文章主要介绍了cocos2d-x 纹理像素格式前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

译自:Understanding pixel format in cocos2d v0.7.3

纹理的像素格式是图像存储在GPU内存的方式。

你可能会见到以下像素格式:

  • RGBA8888(32位)(kTexture2DPixelFormat_RGBA8888)
  • RGBA4444(16位)(kTexture2DPixelFormat_RGBA4444)
  • RGB5_A1(16位)(kTexture2DPixelFormat_RGB5A1)
  • RGB565(16位)(kTexture2DPixelFormat_RGB565)
  • @H_502_15@

    RGBA8888:

    红色通道、绿色通道、蓝色通道和alpha 通道各8位。
    如果想获得最好的图片质量,使用这种格式是很靠谱的。
    但它会占用的内存会比16位的纹理多一倍,在IPhone上内存是很宝贵的资源,这个你懂的。
    自然的,它的运算速度也是相对较慢的。
    常用的地方:整个场景的背景图片、大量渐变色的图片

    RGBA4444:

    红色通道、绿色通道、蓝色通道、alpha通道各4位
    它对每个通道都有不错的支持,还能保证相对良好的速度和内存占用率。
    常用的地方:需要有不同的透明度精灵。

    RGB5A1:

    红、绿、蓝三色通道各5位,Alpha通道仅有1位。
    RGB通道表现良好,但是Alpha通道可就惨了。它在内存占用和速度上表现不错。
    常用的地方:精灵需要透明度上的表现,但是透明度的表现上只有两种:开或者关。

    RGB565:

    红色通道5位,绿色通道6位,蓝色通道5位,这可怜的孩子没有Alpha通道。
    它能尽最大努力的给你一个高品质的16位纹理,前提是你不需要透明度的支持
    常用的地方:游戏中的背景图像。

    cocos2d-x中默认的像素格式是RGBA8888。

    cocos2d 2.1中,貌似默认支持的是16位颜色,需要在 AppDelegate.m中将 glView的pixelFormatkEAGLColorFormatRGB565修改为:kEAGLColorFormatRGBA8。

    使用方法

    ps.因为是翻译的,所以按照0.73版本的代码走,如果需要换成cocos2d2.x,轻将里面的Texture2D换成CCTexture2D,kTexture2Dxxx换成kCCTexture2Dxxx。Sprite换成CCSprite。

    1. 问:我可以把这种技术使用在PVRTC图像上吗?
      答: 不行,PVRTC图像有自己的格式。PVRTC图像的速度更快,占用的内存更少。因为他们是2位或4位的纹理,但图片质量却并没那么好。
    2. 问:如果我用16位的纹理,我游戏载入速度是不是会更快呢?
      答: 纹理像素格式和你游戏的加载时间没半毛钱关系,像素格式用来管理图像在GPU内存中的存储方式。如果你想要更快的加载时间,你应该减少你.PNG /的GIF / TIFF / TMP图像文件的大小。
    3. 问:我应该使用XCode压缩过的RGB565图像吗?
      答: XCode压缩过的PNG图像有它自己的RGBA通道。即使PNG图像的格式是RGB565,你也不该混淆纹理像素格式和PNG图像格式。PNG图像的格式可以被Photoshop和cocos2d所识别,但GPU知道对其一无所知,而PNG图像最终需要转换成纹理(GPU所能理解的格式)。最终答案是:你究竟想要什么呢?你需要的是和图像格式(PNG,GIF TIFF,BMP)的无关的纹理格式!
    4. 问:如果我创建一个PNG / BMP / TIFF / GIF等图像没有alpha通道,我可以改变纹理像素格式?
      答:如果您的PNG / BMP / TIFF / GIF等图像没有alpha通道(或不预乘),那么纹理​​像素格式将被设置成RGB565。它是无法被API改变的,但你可以通过修改Texture2D.m文件来实现。
    5. 问:我可以一次性的修改已创建纹理的像素格式吗? 答:没戏。一旦创建了纹理,你就不能修改纹理的像素格式啦!但是你可以从同一个图像创建不同格式的纹理。但是这之前千万别忘了从TextureMgr里面移除这个纹理(到了cocos2d 2.x的时候应该是CCTextureCache,这个cache会保存原来的纹理,所以如果创建同名纹理的时候,别忘记移除之前的那个)。
    原文链接:https://www.f2er.com/cocos2dx/347040.html

猜你在找的Cocos2d-x相关文章