For example, the following is a simple color change program, blue to Red, JS code:
- var url = "res/sb.jpg";
- var sp = new CC. Sprite (URL);
- Sp.setanchorpoint (0,0);
- This.addchild (SP);
- This.shader = new CC. Glprogram ("Res/shaders/example_flower.vsh", "Res/shaders/example_flower.fsh");
- This.shader.retain ();
- This.shader.link ();
- this.shader.updateUniforms ();
- var program = This.shader.getProgram ();
- Sp.shaderprogram = This.shader;
VertexShader
- Attribute Vec4 a_position;
- Attribute VEC2 A_texcoord;
- Attribute Vec4 A_color;
- #ifdef gl_es
- Varying lowp vec4 v_fragmentcolor;
- Varying mediump vec2 V_texcoord;
- #Else
- Varying VEC4 v_fragmentcolor;
- Varying VEC2 V_texcoord;
- #endif
- void main()
- {
- gl_position = Cc_pmatrix * a_position;
- V_fragmentcolor = A_color;
- V_texcoord = A_texcoord;
- }
Fragmentshader
- #ifdef gl_es
- Precision lowp float;
- #endif
- Varying VEC4 v_fragmentcolor;
- Varying VEC2 V_texcoord;
- void main()
- {
- Gl_fragcolor = V_fragmentcolor * TEXTURE2D (CC_TEXTURE0, V_texcoord);
- float r = gl_fragcolor[0];
- float g = gl_fragcolor[1];
- float B = gl_fragcolor[2];
- float a = gl_fragcolor[3];
- if (b > R && B > G && B > (r*0.5 + g*0.5) *1.5) {
- gl_fragcolor[0] = b;
- gl_fragcolor[2] = R;
- }
- } Original Address: 50542860
(GO) cocos2dx-js use Shader on Sprite