1

在为着色器设置任何统一参数之前,我使用 glGetUniformLocation 来检索其位置,而不是在开始时执行一次并存储 int 位置值。像这样::

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

会大大影响我的表现吗?

4

1 回答 1

1

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

于 2011-05-03T03:23:11.533 回答