OpenGL ES--glUniform函数
来源:互联网 发布:淘宝怎么制作图片模板 编辑:程序博客网 时间:2024/06/05 04:41
原博客:http://blog.csdn.net/wangyuchun_799/article/details/7742787
函数名:
glUniform
功能:
为当前程序对象指定Uniform变量的值。(译者注:注意,由于OpenGL ES由C语言编写,但是C语言不支持函数的重载,所以会有很多名字相同后缀不同的函数版本存在。其中函数名中包含数字(1、2、3、4)表示接受这个数字个用于更改uniform变量的值,i表示32位整形,f表示32位浮点型,ub表示8位无符号byte,ui表示32位无符号整形,v表示接受相应的指针类型。 )
函数原型:
void glUniform1f(GLint location, GLfloat v0);void glUniform2f(GLint location, GLfloat v0, GLfloat v1);void glUniform3f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2);void glUniform4f(GLint location, GLfloat v0, GLfloat v1, GLfloat v2, GLfloat v3);void glUniform1i(GLint location, GLint v0);void glUniform2i(GLint location, GLint v0, GLint v1);void glUniform3i(GLint location, GLint v0, GLint v1, GLint v2);void glUniform4i(GLint location, GLint v0, GLint v1, GLint v2, GLint v3);
参数列表:
location
指明要更改的uniform变量的位置
v0,v1,v2,v3
指明在指定的uniform变量中要使用的新值
函数原型:
void glUniform1fv(GLint location, GLsizei count, const GLfloat *value);void glUniform2fv(GLint location, GLsizei count, const GLfloat *value);void glUniform3fv(GLint location, GLsizei count, const GLfloat *value);void glUniform4fv(GLint location, GLsizei count, const GLfloat *value);void glUniform1iv(GLint location, GLsizei count, const GLint *value);void glUniform2iv(GLint location, GLsizei count, const GLint *value);void glUniform3iv(GLint location, GLsizei count, const GLint *value);void glUniform4iv(GLint location, GLsizei count, const GLint *value);
参数列表:
location
指明要更改的uniform变量的位置
count
指明要更改的元素个数。如果目标uniform变量不是一个数组,那么这个值应该设为1;如果是数组,则应该设置为>=1。
vlaue
指定一个具有count个数值的数组指针,用来更新指定的uniform变量。
函数原型:
void glUniformMatrix2fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);void glUniformMatrix3fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);void glUniformMatrix4fv(GLint location, GLsizei count, GLboolean transpose, const GLfloat *value);
参数列表:
location
指明要更改的uniform变量的位置
count
指明要更改的矩阵个数
transpose
指明是否要转置矩阵,并将它作为uniform变量的值。必须为GL_FALSE。
value
指明一个指向count个元素的指针,用来更新指定的uniform变量。
描述:
glUniform更改一个uniform变量或数组的值。要更改的uniform变量的位置由location指定,location的值应该由glGetUniformLocation函数返回。通过调用glUseProgram,glUniform操作的程序对象将成为当前状态的一部分。
glUniform{1|2|3|4}{f|i}使用传进来的实参,修改通过location指定的uniform变量。
所有在程序对象中定义的活动uniform变量,在程序对象链接成功后都会被初始化为0.直到下一次程序对象链接成功再一次被初始化为0前,它们将保留通过调用glUniform赋给它们的值。
glUniform{1|2|3|4}{f|i}v可以用来更改单个uniform变量的值,或者一个uniform变量数组。
glUniformMatrix{2|3|4}fv用来更改一个矩阵或一个矩阵数组。
错误:
GL_INVALID_OPERATION 没有当前程序对象;着色器中的uniform变量的尺寸和glUniform中指明的尺寸不一致;glUniform的整形变体加载float类型的uniform变量,或者float类型的变体加载整形的uniform变量;location不是当前程序对象的有效uniform位置,并且location的值不等于-1;count的值大于1,但是指明的uniform变量不是一个数组;如果采样器不是调用glUniform1i 和glUniform1iv。
GL_INVALID_VALUE count小于0;transpose不是GL_FALSE。
- OpenGL ES--glUniform函数
- OpenGL ES之glUniform函数
- OpenGL ES之glUniform函数
- OpenGL ES之glUniform函数
- OpenGL ES之glUniform函数
- OpenGL ES之glUniform函数
- OpenGL ES之glUniform函数
- OpenGL ES之glUniform函数
- OpenGL ES之glUniform函数-----非常清晰的解释了glUniform的函数使用, 很不错!!!
- OpenGL之glUniform函数
- opengl es ----glBlendFunc函数
- OpenGL es gluLookAt 函数
- opengl es 几个函数
- OpenGL ES之glScale函数
- OpenGL ES之glMatrixMode函数
- OpenGL ES之glRotate函数
- OpenGL ES之glFrustum函数
- OpenGL ES之glOrtho函数
- 共享池碎片化分析脚本
- 适配iPhone X Push过程中TabBar位置上移
- Springboot错误记录
- 微信小程序和微信公众号类视频, 百度网盘视频下载-自学之家
- 最简单的 OSGI 单元项目
- OpenGL ES--glUniform函数
- 十进制颜色值转rgb
- NOIP2017 RP++
- [CodeForces877 E. Danil and a Part-time Job]dfs序+线段树
- 3用于MNIST的卷积神经网络-3.6改变网络激活函数观察网络性能的变化
- HTTP中Get与Post的区别
- AI挑战人类情感!机器人写诗、出书、开专栏背后透露了什么?
- LVM逻辑卷管理命令
- idea 常用快捷键集合