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 に答える