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})
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})
相关文章推荐
- linux rman shell
- freescale opencl hello world
- Linux系统下wget命令的使用教程
- 以不变应万变-- 如何根据你的Apache+php版本进行正确的Xdebug配置
- Centos 7 yum 安装php
- Opencv2.4.9源码分析——phaseCorrelate
- centos\ oralce linux 安装 epel 源
- linux命令学习(5):rmdir命令(删除空目录)
- Linux——安装AndroidStudio错误
- Linux下文件共享(NFS)的简单应用
- 关于在linux操作系统下打不出汉字或者在敲打汉字时无法显示拼音的问题
- linux下的终端模拟器urxvt的配置
- Linux下面的DISPLAY环境变量----远程连接图形图像的处理
- Centos 7 yum 安装Apache
- 仿射变换OpenCV实现的最小二乘优化
- linux命令学习(4):mkdir命令(创建指定的名称的目录)
- nginx lua
- hadoop-wordcount 实验总结
- Linux内核驱动之GPIO子系统(一)GPIO的使用
- Linux中环境变量文件及配置