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 2.x 学习与应用总结】10: cocos2d-x自带的shader及其使用

本文介绍了cocos2d-x中自带的shader代码, 及其在引擎中的使用情况。作者的引擎版本是2.2.3,在这个版本的cocos中有9种自带的shader,详情请见下文。...
  • elloop
  • elloop
  • 2016年01月19日 22:16
  • 1176

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

利用cocostudio导出的界面,实现界面置灰与复原效果: 需要变色的有三种类型控件:普通图片(ImageView),九宫格切图(Scale9Sprite)以及文字(Text) ...
  • operhero1990
  • operhero1990
  • 2015年12月29日 18:03
  • 2250

Cocos2d-x中让CCSprite变灰(Gray)的简单办法

原文地址:http://blog.csdn.net/u012940116/article/details/17003841 之前一直做flash开发,像变灰,高亮,描边了这些效果非常容易实现,有...
  • whuancai
  • whuancai
  • 2013年11月30日 11:36
  • 10107

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...
  • czh3642210
  • czh3642210
  • 2017年07月17日 09:26
  • 161

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

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

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
  • 707

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

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

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

这里用shader处理了像素,使黑色背景透明,直接上代码 ShaderSprite.h [cpp] view plaincopyprint? ...
  • xiebaochun
  • xiebaochun
  • 2014年05月16日 10:57
  • 5949
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Cocos2d-x shader学习1: 灰度shader
举报原因:
原因补充:

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