cocos2dx shader】的更多相关文章

转自:http://www.tuicool.com/articles/U3URRrI 项目中经常会遇到将一张图像处理成灰色的需求,为了节省资源,一般不会让美术再做一套同样的灰度图,通常会通过代码处理让图片变灰.网上也有很多用shader处理图片变灰的方法,这些方法确实也实现了让图片变灰的需求,但是android平台从后台切换回来的时候,shader被释放,导致图片位置错乱.关键在于从android后台切换回来的时候需要重新加载shader.我们看一下cocos2dx原生的shader处理方式,我…
http://www.oschina.net/question/565065_79818 Cocos2d-x 2.0 -- 从 点,线,面学起 http://blog.csdn.net/dawn_moon/article/details/8631783 cocos2d-x游戏开发(十四)用shader使图片背景透明 http://www.game2z.com/forum.php 游戏兔子 http://www.cocos2dev.com/?p=325 Cocos2d-x 2.x CCSprite…
Cocos2d-x 3.x的label使用了freetype字体引擎(http://www.freetype.org/),可以很轻松的实现描边和阴影效果.所以本篇文章只针对于sprite来实现描边效果. 官方demo中描边shader没有看懂,看效果好像是有点问题,透明的部分变成了黑色.作者也没有怎么解释,直接丢了一个网址出来(http://www.idevgames.com/forums/thread-3010.html),看样子是参考了这个帖子. 后来从网上别人的博客中找到了一遍关于描边sh…
模糊效果在游戏中经常会用到,有的为了突出前景会把背景给模糊化,有的是因为一些技能需要模糊效果.模糊是shader中较为简单的一种应用.cocos2dx 3.x给的demo中,就有sprite的模糊的效果. 先说下这个模糊算法的大致思路,我们在片段着色器中可以得到当前像素点的颜色值,要想让这个颜色变得模糊,就要让它与它周围的像素点的颜色稍微接近一点,那么我们就需要拿到这个像素点周围的像素点的颜色值,我们把这些个像素点的值加起来取平均值,就得到了一个区域内的平均颜色. 如果直接使用这个颜色的话,最终…
灰度shader 最近在学习shader,就把cocos2d-x 3.x版本中的很简单也很常用的灰度shader拿出来学习一下. #ifdef GL_ES precision mediump float; // ES版本的精度限定符,精度变低后可以提高效率 #endif varying vec4 v_fragmentColor; varying vec2 v_texCoord; void main(void) vec4 c = texture2D(CC_Texture0, v_texCoord)…
本节主要讲利用cocos2dx机制实现opengl es shader脚本的绘制 这里先看下最终效果:                      这里分别实现了灰度效果及残影的效果. 一.绘制基类 这里主要参考了cocos2dx源码中 RenderTexture 的实现,有兴趣的可以了解下. 绘制基类RenderShader主要实现以下方法: //****************************************************************** // 文件名:…
接上一节内容:cocos2dx - shader实现任意动画的残影效果 本节主要讲一下扩展PageView控件功能 在实际游戏应用中,经常会碰到用原来的控件难以实现的功能.这时候就需要根据需求,通过选择合适的控件进行方便的扩展来实现. 扩展控件一般是通过对原来的控件进行继承来实现,这样可以很好的应用原来的属性及方法,同时可以方便的添加自己需要的方法及属性. 例子:实现对pageview进行循环翻页效果. 分析: 1.翻页方法有2个方式,滑动翻页及点击按钮左右翻动. 2.在触发翻页后需要移动页面位…
因为骨骼动画是由多个sprite组成, 所以需要遍历每个sprite 才能修改整体, 开头这样设置,在游戏中发现走路状态没问题,攻击状态就有部分sprite没效果 for (auto & object : armObj->getBoneDic()) { if (cocostudio::Bone *bone = dynamic_cast<cocostudio::Bone *>(object.second)) { Node *node = bone->getDisplayRen…
认识着色器 理解OpenGL渲染管线,对于学习OpenGL非常重要.下面是OpenGL渲染管线的示意图:(图中淡蓝色区域是可以编程的阶段) 此图是从wiki中拿过来的,OpenGL的渲染管线主要包括: 准备顶点数据(通过VBO.VAO和Vertex attribute来传递数据给OpenGL) 顶点处理(这里主要由Vertex Shader来完成,从上图中可以看出,它还包括可选的Tessellation和Geometry shader阶段) 顶点后处理(主要包括Clipping,顶点坐标归一化和…
在OpenGL ES中,Shader是着色器,包括两种:顶点着色器(Vertex Shader)和片元着色器(Fragment Shader).每个program对象有且仅有一个Vertex Shader对象和一个Fragment Shader对象连接到它. Shader和Program编程步骤: 1. 创建Shader       1)编写Vertex Shader和Fragment Shader源码. 2)创建两个shader 实例:GLuint   glCreateShader(GLenu…