2011-04-04 65 views
1

就在为着色器设置任何统一参数之前,我正在使用glGetUniformLocation检索其位置,而不是在开始时存储int位置值。像这样::glGetUniformLocation调用有多快/很慢?

const int location = glGetUniformLocation(program, name.c_str()); 
glUniform4fv(location, 1, &v.x); 

会对我的表现产生很大的影响吗?

+0

我对这一点也很感兴趣,不仅仅是对于Android的OpenGL ES,而是对于一般的标准OpenGL。 – smf68 2011-04-22 21:37:45

回答

1

恕我直言,它将取决于比较字符串(字符串散列)的速度。虽然着色器不会重新编译,但int位置不会更改(但是,它可能未被更改)。因此,一次存储位置并逐帧获取它是一种很好的做法。

相关问题