Cocos openGL编写自己的Shaders

来源:互联网 发布:小米3的4g网络怎么设置 编辑:程序博客网 时间:2024/05/21 20:47

cocos2d-x 3.5,lua环境下实现按钮变灰;


代码调用:

    local program = cc.GLProgram:create("Shaders/Gray.vsh", "Shaders/Gray.fsh")    program:bindAttribLocation(cc.ATTRIBUTE_NAME_POSITION, cc.VERTEX_ATTRIB_POSITION)     program:bindAttribLocation(cc.ATTRIBUTE_NAME_TEX_COORD, cc.VERTEX_ATTRIB_TEX_COORD)    program:link()    program:updateUniforms()label:setGLProgram( program )



自己的vsh和fsh

attribute vec4 a_position;attribute vec2 a_texCoord;attribute vec4 a_color;                    varying vec4 v_fragmentColor;varying vec2 v_texCoord;                                void main()    {                                gl_Position = CC_PMatrix * a_position;    v_fragmentColor = a_color;    v_texCoord = a_texCoord;}gray.vsh


varying vec4 v_fragmentColor;    varying vec2 v_texCoord;    uniform sampler2D CC_Texture0;            void main()            {    vec4 v_orColor = v_fragmentColor * texture2D(CC_Texture0, v_texCoord);    float gray = dot(v_orColor.rgb, vec3(0.299, 0.587, 0.114));    gl_FragColor = vec4(gray, gray, gray, v_orColor.a);}                gray.fsh





0 0
原创粉丝点击