Cocos2d-x shader学习1: 灰度shader

原创 2015年11月17日 20:46:30

最近在学习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);
     gl_FragColor.xyz = vec3(0.2126*c.r + 0.7152*c.g + 0.0722*c.b);
     gl_FragColor.w = c.w;
}

这个shader很简单,就是改变了一下rgb的值。0.2126,0.7152,0.0722这几个系数据说是根据人眼对rgb这三种基本颜色识别的强弱算出来的。


在cocos2dx  3.x版本中sprite变灰的代码例子:

auto sprite = Sprite::create("HelloWorld.png");
sprite->setGLProgramState(GLProgramState::getOrCreateWithGLProgramName(GLProgram::SHADER_NAME_POSITION_GRAYSCALE));


效果如下图所示:

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Cocos2d-x opengl shader file

  • 2014年04月17日 23:37
  • 2KB
  • 下载

基于Cocos2d-x学习OpenGL ES 2.0系列——OpenGL ES渲染之Shader准备(7)

Cocos2d-x底层图形绘制是使用OpenGL ES协议的。OpenGL ES是什么呢?   OpenGL ES(OpenGl for Embedded System)是OpenGL三维图形API...

Cocos2d-x shader学习3: sprite描边(Outline)

Cocos2d-x 3.x的label使用了freetype字体引擎(http://www.freetype.org/),可以很轻松的实现描边和阴影效果。所以本篇文章只针对于sprite来实现描边效果...

Cocos2d-x 2.x字体描边效果(Shader实现)

  • 2015年01月28日 13:36
  • 3.27MB
  • 下载

【cocos2d-x 2.x 学习与应用总结】14: 自定义shader绘制混合颜色的矩形

本文介绍了如何在cocos2d-x中使用自定义shader来实现混合颜色矩形的绘制。文中继续使用[前一篇文章中](http://blog.csdn.net/elloop/article/details...
  • elloop
  • elloop
  • 2016年01月25日 23:12
  • 654

cocos2d-x游戏开发(十四)用shader使图片背景透明

欢迎转载,地址:http://blog.csdn.net/fylz1125/article/details/8631783 好吧,终于抽时间写这篇文章了。 手头上有很多人物行走图,技能特效图等,但...
  • fylz1125
  • fylz1125
  • 2013年03月03日 21:59
  • 15135

cocos2d-x—使用shader使图片背景透明

这里用shader处理了像素,使黑色背景透明,直接上代码 ShaderSprite.h [cpp] view plaincopyprint? ...

cocos2d-x之字体描边效果shader实现

#ifdef GL_ES precision highp float; #endif uniform sampler2D u_texture; uniform float u_time; var...

Cocos2D-X shader(一) 渲染机制

Cocos2D-X渲染机制     Cocos2D-X 从3.0开始引入了一种新的渲染机制,所有的OpenGL渲染代码不再放到每一个node的draw函数里面,而是通过各种RenderCommand...

Cocos2D-X shader(五) cocostudio导出界面置灰及复原lua实现版

利用cocostudio导出的界面,实现界面置灰与复原效果: 需要变色的有三种类型控件:普通图片(ImageView),九宫格切图(Scale9Sprite)以及文字(Text) ...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cocos2d-x shader学习1: 灰度shader
举报原因:
原因补充:

(最多只允许输入30个字)