Advertisement

OpenGL 使用面试题汇总

阅读量:

OpenGL核心概念与存在问题

OpenGL中怎么传递变量

GLSL语言中包含三种变量类型:uniform变量、attribute变量以及varying变量

uniform变量
uniform变量用于从外部应用程序向顶点着色器和片段着色器传递数据。在Qt框架中,应用程序通过调用program->setUniformValue("uniform_name", value_name);这一函数接口对uniform变量进行赋值操作。
在顶点着色器与片段着色器程序内部,uniform变量的作用类似于C语言中的常量(const),其值无法被着色器程序修改或更改。

attribute变量
attribute变量仅限于在顶点着色器中使用,而不能在片段着色器中声明或调用。
该类变量主要用于描述顶点相关的信息,例如顶点坐标、法线方向、纹理坐标以及顶点颜色等属性数据。
在应用程序开发过程中(以Qt为例),通常采用void QOpenGLShaderProgram::bindAttributeLocation(const char *name, int location)函数来设定每个attribute变量的存储位置,并通过glVertexAttribPointer()函数为这些属性数据进行赋值操作。

varying变量
va

全部评论 (0)

还没有任何评论哟~