我正在尝试学习如何对顶点着色器进行编程。在苹果的示例项目中,他们有一行来设置
glUniform1f(uniforms[UNIFORM_TRANSLATE], (Glfloat)transY);
然后这个值被用在
// value passt in f
// glUniform1f(uniforms[UNIFORM_TRANSLATE](Glfloat)transY);
uniform float translate;
void main()
{
gl_Position.y+=sin( translate);
…
我无法找到所有制服的所有制服列表。
有谁知道我在哪里可以找到所有制服的列表以及一本关于学习如何对顶点着色器进行编程的好书或教程。
统一参数是传递给GL着色器的数据,在绘制调用期间不会改变。
您可以使用以下代码查询链接的 GLSL 程序以获取活动制服列表:
int total = -1;
glGetProgramiv( program_id, GL_ACTIVE_UNIFORMS, &total );
for(int i=0; i<total; ++i) {
int name_len=-1, num=-1;
GLenum type = GL_ZERO;
char name[100];
glGetActiveUniform( program_id, GLuint(i), sizeof(name)-1,
&name_len, &num, &type, name );
name[name_len] = 0;
GLuint location = glGetUniformLocation( program_id, name );
}
此代码检索许多活动的制服并迭代它们,提取名称、类型、值的数量和制服位置。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)