シェーダをコンパイルしようとしていますが、別のPCのAMDドライバではなく、1台のPC上でIntel HD上でコンパイルしています。GLSLエラー:「タイプが浮動小数点またはint型である必要があります」
バーテックスシェーダ:
#version 330
precision mediump float;
precision lowp sampler2D;
uniform mat4 ProjectionMatrix;
uniform mat4 ModelViewMatrix;
uniform mat4 WorldViewMatrix;
in vec3 position;
in vec2 TexCoord;
out vec2 texCoord;
void main() {
texCoord = TexCoord;
gl_Position = ProjectionMatrix * ModelViewMatrix * WorldViewMatrix * vec4(position, 1);
}
フラグメントシェーダ:AMDのドライバで
#version 330
precision mediump float;
precision lowp sampler2D;
uniform vec4 TextureHueColor;
uniform sampler2D TextureUnit;
in vec2 texCoord;
out vec4 gl_FragColor;
void main() {
gl_FragColor = texture(TextureUnit, texCoord) * TextureHueColor;
}
、私は取得しています:
Vertex shader failed to compile with the following errors:
ERROR: 0:3: error(#228) Type should be float or int
ERROR: error(#273) 1 compilation errors. No code generated
私は初心者です、と持っています何が間違っているのかわからないシェイダー、私にはうまく見える。誰が何が間違っているのスポット?
'precision lowp sampler2D;'を削除してください。 – HolyBlackCat
@ MathuSumMut:おそらくそれを正しく削除しなかったでしょう。そうした場合、3行目は空白またはコメントになり、どちらも同じエラーが発生する可能性があります。だからあなたは*別の*エラーを持っているか、あなたがそのステートメントを削除したと思うだけです。 –
@ MathuSumMut:デバッグのスキルを使いましょう。その行番号の前にファイルにエラーを作成し、何が起こるかを見てください。または、コードにデバッグし、 'glShaderSource'に渡す前に文字列を読み込んでください。あなたが本当に文字列を変更したことを証明してください。今のところ、すべての証拠があなたにそうしていないことを指摘しているからです。 –