探cocos2dx纹理模块(textures),源码版本(2.2.3)
2014-08-17 21:28
274 查看
模块相关类(模块名textures):
CCTexture2D:
在cocos2dx里边所有的2d纹理都由这个类来表示。它提供了多种方式来构建一个cocos2dx的纹理对象,比如说通过多种格式的图像文件,甚至是buffer,创建方式调用了CCImage类对象。除了创建方式,还有设置纹理过滤参数的接口。
在opengl中,设置纹理过滤函数参数的意义在于从纹理空间映射到帧缓冲图像空间时所需要做的操作中,因为在映射的过程中有可能会造成图像的失真,比如说一个实际上只有32*32的纹理映射到64*64的帧缓冲矩形上时会产生锯齿(或者是高几何精度物体观察角度造成的失真)。这时候可以设置opengl的纹理过滤函数让最终展现在屏幕上的图形有较好的效果。
CCTextureAtlas:
在opengl低版本中,每一次渲染的时候总是需要向opengl传入顶点信息,法向量信息,颜色等等。这样就造成的性能上的浪费,后来就开发VBO技术,其实它主要功能还是在gpu里边构建一个buffer,里边保存有各种之前提到的渲染信息,这样每一次渲染的时候都不需要传入很多渲染信息了,从而提高了渲染性能,CCTextureAtlas就封装了这种渲染技术。因为opengl es有纹理2指数宽高的需求,atlas也提高了内存性能。
CCTextureCache:
CCTexture2D容器类,提供多种方式创建CCTexture2D,代码里边调用CCTexture2D的创建接口。这个类也实现了cocos2dx纹理的内存管理,没有用到的纹理将会被释放,如果还存在引用则不会释放。具体参考:cocos2dx内存管理
CCTextureETC:
提供加载安卓平台硬件加速特有的格式的方法,这个类不负责渲染,只负责提供opengl es的纹理id,图像宽高等信息,这个类对象在CCTexture2D里边创建ETC格式的纹理被用到。
CCTexturePvr:
这个类同上,不过是ios平台硬件加速格式。另外PVR有一个预先计算alpha通道的标志m_bHasPremultipliedAlpha,预先计算是用于从RGBA转RGB时用到的。
uml图:
使用方式:
略。
扩展:
如果需要支持另外一种格式图片的话,需要在CCImage里边添加一个方法就可以了,类似于:CCImage::_initWithJpgData。
CCTexture2D:
在cocos2dx里边所有的2d纹理都由这个类来表示。它提供了多种方式来构建一个cocos2dx的纹理对象,比如说通过多种格式的图像文件,甚至是buffer,创建方式调用了CCImage类对象。除了创建方式,还有设置纹理过滤参数的接口。
在opengl中,设置纹理过滤函数参数的意义在于从纹理空间映射到帧缓冲图像空间时所需要做的操作中,因为在映射的过程中有可能会造成图像的失真,比如说一个实际上只有32*32的纹理映射到64*64的帧缓冲矩形上时会产生锯齿(或者是高几何精度物体观察角度造成的失真)。这时候可以设置opengl的纹理过滤函数让最终展现在屏幕上的图形有较好的效果。
CCTextureAtlas:
在opengl低版本中,每一次渲染的时候总是需要向opengl传入顶点信息,法向量信息,颜色等等。这样就造成的性能上的浪费,后来就开发VBO技术,其实它主要功能还是在gpu里边构建一个buffer,里边保存有各种之前提到的渲染信息,这样每一次渲染的时候都不需要传入很多渲染信息了,从而提高了渲染性能,CCTextureAtlas就封装了这种渲染技术。因为opengl es有纹理2指数宽高的需求,atlas也提高了内存性能。
CCTextureCache:
CCTexture2D容器类,提供多种方式创建CCTexture2D,代码里边调用CCTexture2D的创建接口。这个类也实现了cocos2dx纹理的内存管理,没有用到的纹理将会被释放,如果还存在引用则不会释放。具体参考:cocos2dx内存管理
CCTextureETC:
提供加载安卓平台硬件加速特有的格式的方法,这个类不负责渲染,只负责提供opengl es的纹理id,图像宽高等信息,这个类对象在CCTexture2D里边创建ETC格式的纹理被用到。
CCTexturePvr:
这个类同上,不过是ios平台硬件加速格式。另外PVR有一个预先计算alpha通道的标志m_bHasPremultipliedAlpha,预先计算是用于从RGBA转RGB时用到的。
uml图:
使用方式:
略。
扩展:
如果需要支持另外一种格式图片的话,需要在CCImage里边添加一个方法就可以了,类似于:CCImage::_initWithJpgData。
相关文章推荐
- 探cocos2dx裁剪结点、拖尾效果、进度效果、渲染纹理实现(misc_nodes),源码版本(2.2.3)
- 探cocos2dx粒子特效模块(particle_nodes),源码版本(2.2.3)
- 探cocos2dx对游戏精灵(sprite_nodes)的实现。(源码版本2.2.3)
- 探cocos2dx各类输入touch、keypad、IME,源码版本(2.2.3)
- 探cocos2dx文本显示实现(label_nodes),源码版本(2.2.3)
- 探cocos2dx UI引擎(粗略阅读)(源码版本2.2.3)
- cocos2dx启动流程分析(源码版本:cocos2d-x-2.2.3)
- 探cocos2dx特效实现(effects),源码版本(2.2.3)
- cocos2dx遇到的问题 2.2.3版本
- coco2dx内存管理(源码版本:cocos2d-x-2.2.3)
- VB 6.0 获取操作系统的名称及版本源码(模块)
- android studio2.2.3查看android版本25源码的问题
- 基于Quick-cocos2dx 2.2.3 的动态更新实现完整篇。(打包,服务器接口,模块自更新)
- 最近开发遇到的cocos2dx问题集(版本2.2.3,studio版本1.6.0.0)
- 转 基于Quick-cocos2dx 2.2.3 的动态更新实现完整篇。(打包,服务器接口,模块自更新
- 地形Tile中纹理删除以及替换模块分析,所有源码转自Ogrese
- IOS游戏源码下载之简易版雷电(2.2.3版本)源码完整下载和简单开发教程
- 基于Quick-cocos2dx 2.2.3 的动态更新实现完整篇。(打包,服务器接口,模块自更新)
- awt,swing做的计算器小代码(效果图和源码)对前面版本作了些小修改
- .net程序源码,控件源码,功能模块程序