vec4 の配列を OpenGL のフラグメント シェーダーに均一に渡したいのですが、思ったよりもずっと難しいようです。GLfloat の配列を渡してシェーダーで vec4 を再構築しようとしているところまで来ましたが、それでも機能しません。
私はvshaderで宣言しようとしました:
#extension GL_NV_shader_buffer_load : enable
uniform GLfloat* points;
コードから次のように呼び出します。
glUniform1fv(points, pointsLen*4, points);
float を 1 つのグループで渡していると考えており、vec4 の数が 4 倍になっています。
残念ながら、この vshader はコンパイルを GLSL プログラムに渡しません。
これを修正するにはどうすればよいですか? これを修正するか、まったく別の方法で実行してください:)