0

OpenGLは自動的にそれを切り捨てますか、それともこれはエラーですか?

プログラムにfloat4x3の配列を設定しているように見える厄介なOpenGLコードがあり、float4値を持つ大きな配列(つまり、3ではなく4つのfloat /行)を持つglUniform4fvを使用しています。つまり、OpenGLはマトリックスの各行に3つの値のみをコピーし、4番目の値をスキップします。これが常に機能すると仮定しても大丈夫ですか?

4

1 に答える 1

0

GLSL仕様は、これについて非常に明確です。glUniform*呼び出しのサイズとタイプは、シェーダーで宣言されたサイズとタイプと正確に一致する必要があります(サンプラーとブール値を除く)。したがって、を呼び出す場合は、タイプの単一変数またはタイプの配列変数のエントリの配列のglUniform4fvいずれかを設定する必要があります。vec4countvec4

于 2012-08-22T21:34:23.383 に答える