cocos2d-x重复纹理与遮罩
来源:互联网 发布:北京握奇数据 编辑:程序博客网 时间:2024/05/17 18:13
重复纹理:
先解释下什么是重复纹理。
大家在做游戏的时候,可能会有类似win桌面的平铺效果。如果你做web开发,这个你肯定知道的:background-repeat : repeat | no-repeat | repeat-x | repeat-y,是不是?这就是本文所谓的平铺,它是 在你设置的范围区域内repeat-x,repeat-y全部填充的。
这个纹理的重复,主要设计结构体:ccTexParams。定义如下:
/**Extension to set the Min / Mag filter*///定义了纹理的一些参数typedef struct _ccTexParams {GLuint minFilter;//纹理过滤器:缩小过滤器GLuint magFilter;//纹理过滤器:放大过滤器GLuint wrapS;//横向纹理寻址模式GLuint wrapT;//纵向纹理寻址模式} ccTexParams;
例子:
CCRect rect(0, 0, 255, 160);CCSprite* firedragonpzy = CCSprite::create("firedragonpzy.png");firedragonpzy->setTextureRect(rect);//CGRect描述了要重复贴图的矩形范围ccTexParams params = {GL_LINEAR,GL_LINEAR,GL_REPEAT,GL_REPEAT};firedragonpzy->getTexture()->setTexParameters(¶ms);firedragonpzy->setPosition(ccp(0, 0));this->addChild(firedragonpzy);
这样,我们的重复纹理贴图就ok了,大家可以自己尝试下。。。
遮罩:
和重复纹理一样,先解释下什么所谓的遮罩:
想必大家都用过ps吧,当时我记得是设置个蒙版,然后进行遮罩处理,做了2dx的遮罩后突然间明白了ps遮罩原理,当时用的时候也没有考虑这个。【注:我这里讲述的是用CCRenderTexture来处理遮罩,不过这方法可能效率比较低,主要是为了看看CCRenderTexture】
遮罩原理:利用遮罩图片的透明度来处理被遮罩的图片。
cocos2d-x 遮罩,主要涉及到opengl-es的混合ccBlendFunc和渲染纹理CCRenderTexture。
遮罩需要两张图片,遮罩图片A和被遮罩图片B,被遮罩图片B就是你想要遮罩的形状,图片颜色以白色填充就好,颜色无所谓,我们主要利用B的透明度。
遮罩代码:
int w = B->getContentSize().width ;int h = B->getContentSize().height ;CCRenderTexture* rt = CCRenderTexture::create(w, h);//创建纹理渲染范围</pre>ccBlendFunc blendFunc;blendFunc.src = GL_DST_ALPHA; //表示使用源颜色的alpha值来作为因子blendFunc.dst = GL_ZERO; //不使用目标颜色textureSprite->setBlendFunc(blendFunc);rt->begin();B->visit();//注意,这里需要先绘制B,被遮罩图片A->visit();//注意渲染顺序,先渲染的为的精灵的颜色为目标颜色,后渲染的精灵的颜色为源颜色。rt->end();CCSprite* firedragonpzy = CCSprite::createWithTexture(rt->getSprite()->getTexture());this->addChild(firedragonpzy);<pre>好了,遮罩也ok了,关于opengl的混合 ,大家可以参考:<a title="OpenGL中混色的用法" href="http://www.firedragonpzy.com.cn/index.php/archives/3246" target="_blank">http://www.firedragonpzy.com.cn/index.php/archives/3246</a>
0 1
- cocos2d-x重复纹理与遮罩
- cocos2d-x重复纹理与遮罩 cocos2d-x重复纹理与遮罩
- cocos2d-x 纹理研究
- Cocos2d-x 纹理管理
- Cocos2d-x 纹理优化
- Cocos2d-x 纹理优化实例:拼图优化与实测
- Cocos2d-x 纹理优化实例:拼图优化与实测 .
- cocos2d-x 纹理像素格式
- cocos2d-x 3.0纹理缓存
- cocos2d 3.x 纹理缓存
- Cocos2d-X的纹理(2)
- Cocos2d-X的纹理(1)
- cocos2d-x 纹理优化选择
- 深入分析Cocos2d-x 2.0中的“纹理”
- Cocos2d-x纹理优化的一些方案
- 深入分析Cocos2d-x 2.0中的“纹理”
- cocos2d-x学习笔记-纹理优化
- Cocos2d-x纹理优化的一些方案
- 责任链模式
- ios视频学习笔记 2.2 iPhone开发之OC变量和基本数据类型1
- php高并发状态下文件的读写(fopen,fwrite,fread)
- IOS 键盘 隐藏
- 【001】windows下搭建Objective-C开发环境
- cocos2d-x重复纹理与遮罩
- 基于短信的手机控制程序
- Python中 字典排序、列表排序
- oralce 去掉以某字符打头或者结尾
- 【STL】反向迭代器(Reverse Iterator)
- OpenCV1.0 训练分类器
- GitHub Android 开源项目汇总
- 自己的引擎和demo(二)
- PAT 1001. A+B Format (20)