Hello, I have a *very* simple shader that for some inexplicable reason fails to link. The shader is being made to do nothing more than multi-texture via the alpha channels in the textures, and add basic lighting.
Here is what OpenGL complains about:
Fragment shader was successfully compiled to run on hardware.
Vertex shader was successfully compiled to run on hardware.
** HERE --> Fragment shader(s) failed to link, vertex shader(s) linked.
WARNING: built-in varying gl_TexCoord [2] has mismatched access semantics betwee
n the vertex and fragment shader
WARNING: built-in varying gl_TexCoord [3] has mismatched access semantics betwee
n the vertex and fragment shader
WARNING: built-in varying gl_TexCoord [4] has mismatched access semantics betwee
n the vertex and fragment shader
WARNING: built-in varying gl_TexCoord [5] has mismatched access semantics betwee
n the vertex and fragment shader
WARNING: built-in varying gl_TexCoord [6] has mismatched access semantics betwee
n the vertex and fragment shader
WARNING: built-in varying gl_TexCoord [7] has mismatched access semantics betwee
n the vertex and fragment shader
Here is the vertex shader:
[start]
varying vec4 normal;
void main()
{
normal.xyz = normalize(gl_NormalMatrix * gl_Normal);
normal.w = gl_Vertex.y;
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord1;
gl_TexCoord[2] = gl_MultiTexCoord2;
gl_TexCoord[3] = gl_MultiTexCoord3;
gl_TexCoord[4] = gl_MultiTexCoord4;
gl_TexCoord[5] = gl_MultiTexCoord5;
gl_TexCoord[6] = gl_MultiTexCoord6;
gl_TexCoord[7] = gl_MultiTexCoord7;
gl_Position = ftransform();
}
[end]
and the fragment shader:
[start]
uniform sampler2D Texture0;
uniform sampler2D Texture1;
varying vec4 normal;
vec4 GenerateTerrainColor()
{
vec4 outcolor;
vec4 tex0 = texture2D(Texture0, gl_TexCoord[0].xy);
vec4 tex1 = texture2D(Texture1, gl_TexCoord[1].xy);
outcolor = mix(tex0, tex1, tex1.a);
return outcolor;
}
void main()
{
vec3 n = normalize(normal.xyz);
float nDotL = max(0.0, dot(n, gl_LightSource[0].position.xyz));
vec4 ambient = gl_FrontLightProduct[0].ambient;
vec4 diffuse = gl_FrontLightProduct[0].diffuse * nDotL;
vec4 color = gl_FrontLightModelProduct.sceneColor + ambient + diffuse;
gl_FragColor = color * GenerateTerrainColor();
}
[end]
Any ideas? Thanks beforehand.