您的位置:首页 > 运维架构

OpenGLES: uniform变量传参

2015-12-03 11:16 309 查看
uniform是shader里面的一种变量,它是由外部程序设置进来的,除非你显式地调用函数来修改这个uniform的值,否则它的值恒定不变。

quick是通过GLProgramState类提供的接口来传值的,下面列出相关方法:

--------------------------------

-- @overload self, int, vec2_table

-- @overload self, string, vec2_table

-- @function [parent=#GLProgramState] setUniformVec2

-- @param self

-- @param #string uniformName

-- @param #vec2_table value

-- @return GLProgramState#GLProgramState self (return value:cc.GLProgramState)

示例:glprogramState:setUniformVec2("blurSize",{x=0.3,y=0.3})

--------------------------------

-- @overload self, string, unsigned int

-- @overload self, string, cc.Texture2D

-- @overload self, int, cc.Texture2D

-- @overload self, int, unsigned int

-- @function [parent=#GLProgramState] setUniformTexture

-- @param self

-- @param #int uniformLocation

-- @param #unsigned int textureId

-- @return GLProgramState#GLProgramState self (return value:cc.GLProgramState)

示例:

local texture = cc.Director:getInstance():getTextureCache():addImage("mask.png")


glprogramState:setUniformTexture("u_mask_texture", texture:getName())

--------------------------------

-- @overload self, int, mat4_table

-- @overload self, string, mat4_table

-- @function [parent=#GLProgramState] setUniformMat4

-- @param self

-- @param #string uniformName

-- @param #mat4_table value

-- @return GLProgramState#GLProgramState self (return value:cc.GLProgramState)

--------------------------------

-- @overload self, int, float

-- @overload self, string, float

-- @function [parent=#GLProgramState] setUniformFloat

-- @param self

-- @param #string uniformName

-- @param #float value

-- @return GLProgramState#GLProgramState self (return value:cc.GLProgramState)

--------------------------------

-- @overload self, int, vec3_table

-- @overload self, string, vec3_table

-- @function [parent=#GLProgramState] setUniformVec3

-- @param self

-- @param #string uniformName

-- @param #vec3_table value

-- @return GLProgramState#GLProgramState self (return value:cc.GLProgramState)

示例:glprogramState:setUniformVec3("blurSize",{x=0.3,y=0.3,z=0.3})

--------------------------------

-- @overload self, int, int

-- @overload self, string, int

-- @function [parent=#GLProgramState] setUniformInt

-- @param self

-- @param #string uniformName

-- @param #int value

-- @return GLProgramState#GLProgramState self (return value:cc.GLProgramState)

--------------------------------

-- @overload self, int, vec4_table

-- @overload self, string, vec4_table

-- @function [parent=#GLProgramState] setUniformVec4

-- @param self

-- @param #string uniformName

-- @param #vec4_table value

-- @return GLProgramState#GLProgramState self (return value:cc.GLProgramState)



示例:glprogramState:setUniformVec4("blurSize",{x=0.3,y=0.3,z=0.3,w=0.3})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: