Cocos Lua脚本中使用shader
Published:
27 Nov 2014
Category:
本文只介绍Cocos Lua中如何使用Shader,不会介绍如何编写Shader代码,以及原理性的东西。(因为我现在也不懂)
本文代码实现的效果为一张图片慢慢的从无到有,从上面一点一点的显示。
在初始化时设置Shader
-- 设置shader
function TestShader:setShader()
local shader = cc.GLProgram:createWithFilenames(vsh, fsh)
shader:bindAttribLocation(cc.ATTRIBUTE_NAME_POSITION, cc.VERTEX_ATTRIB_POSITION)
shader:bindAttribLocation(cc.ATTRIBUTE_NAME_COLOR, cc.VERTEX_ATTRIB_COLOR)
shader:bindAttribLocation(cc.ATTRIBUTE_NAME_TEX_COORD, cc.VERTEX_ATTRIB_TEX_COORDS)
shader:link()
self:setGLProgram(shader)
end
函数首先根据vsh和fsh顶点着色器和片段着色器创建一个Shader,然后bindAttribLocation函数绑定相关的顶点属性。
bindAttribLocation使用glBindAttribLocation函数,参数为cocos定义的默认顶点属性,cocos中定义的顶点属性包括:
// Attribute names
const char* GLProgram::AT