私はこのサイトwww.learnopengl.com上のチュートリアルを、以下のAM、およびシェーダのチュートリアルの最後に、私はシェーダを断片化するために自分の制服変数を追加しようと、見えますOpenGLのシェーダエラーC1068:型コンストラクタでデータが多すぎ
#version 330 core
in vec3 ourColor;
out vec4 color;
uniform vec4 changeColor;
void main()
{
color = vec4(changeColor, 1.0f);
}
と私はコンパイルして、このような均一な変数変更:
ourShader.Use();
GLint fragColorUniformLocation = glGetUniformLocation(ourShader.Program, "changeColor");
glUniform4f(fragColorUniformLocation, 0.0f, 1.0f, 0.0f, 1.0f);
ourShader.useを()それは、我々はチュートリアルでシェーダ操作のために書いたクラスシェーダのちょうど方法であり、このような前記シェーダプログラムを単に使用するだけである。
ユニフォーム変数とourShader.use()の後の2行をコメントアウトすると、OpenGLはすべてうまくレンダリングしますが、ユニフォーム変数を追加しようとすると、シェイダーコンパイラは型コンストラクタにデータが多すぎると訴えます。私はウェブを検索し、何か有用なものを見つけることができませんでした。これが重複している場合は、私に教えてください。私はその投稿を削除します。
ありがとう、私はそれを見たはずです。 –