Lehm
06-01-2005, 04:48 PM
I have a vertex/fragment pair that compile fine on Geforces, but will not compile on a Radeon. I've tried it on a 9600 and an x800.
There's some commented out stuff in there, but I thought it best to leave it just as it is.
varying vec4 eyePos;
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord1;
gl_TexCoord[2] = gl_MultiTexCoord2;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
//gl_TexCoord[0] = gl_MultiTexCoord0;
gl_FrontColor = gl_Color;
//gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0); // Hard-code red for testing purposes
//Fog Stuff
eyePos = gl_ModelViewProjectionMatrix * gl_Vertex;
gl_FogFragCoord = abs(eyePos.z/eyePos.w);
}
uniform sampler2D bTexture,tTexture,lTexture;
varying float maxC;
varying vec4 tColor1,tColor2,lColor;
void main(void)
{
//gl_FragColor = vec4 (0.5,1.0,1.0, 1.0) * gl_Color;
//gl_FragColor = vec4(inColor,1.0) ;
//Percent = texture2D(tTexture, vec2(gl_TexCoord[1])).a;
tColor1 = texture2D(bTexture, vec2(gl_TexCoord[0]));
tColor2 = texture2D(tTexture, vec2(gl_TexCoord[1]));
//lColor = gl_Color;
//lColor = texture2D(lTexture, vec2(gl_TexCoord[2]));
lColor = texture2D(lTexture, vec2(gl_TexCoord[2]))+(gl_Color-0.5);
maxC=0;
if (lColor.r>maxC)
maxC=lColor.r;
else if (lColor.g>maxC)
maxC=lColor.g;
else if (lColor.b>maxC)
maxC=lColor.b;
if (maxC>1)
lColor = lColor/maxC;
gl_FragColor = vec4((vec3(tColor1) * ( 1.0 - tColor2.a )+ vec3(tColor2) * tColor2.a)*lColor,tColor1.a);
//gl_FragColor = gl_Color;
}
There's some commented out stuff in there, but I thought it best to leave it just as it is.
varying vec4 eyePos;
void main(void)
{
gl_TexCoord[0] = gl_MultiTexCoord0;
gl_TexCoord[1] = gl_MultiTexCoord1;
gl_TexCoord[2] = gl_MultiTexCoord2;
gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
//gl_TexCoord[0] = gl_MultiTexCoord0;
gl_FrontColor = gl_Color;
//gl_FrontColor = vec4(1.0, 0.0, 0.0, 1.0); // Hard-code red for testing purposes
//Fog Stuff
eyePos = gl_ModelViewProjectionMatrix * gl_Vertex;
gl_FogFragCoord = abs(eyePos.z/eyePos.w);
}
uniform sampler2D bTexture,tTexture,lTexture;
varying float maxC;
varying vec4 tColor1,tColor2,lColor;
void main(void)
{
//gl_FragColor = vec4 (0.5,1.0,1.0, 1.0) * gl_Color;
//gl_FragColor = vec4(inColor,1.0) ;
//Percent = texture2D(tTexture, vec2(gl_TexCoord[1])).a;
tColor1 = texture2D(bTexture, vec2(gl_TexCoord[0]));
tColor2 = texture2D(tTexture, vec2(gl_TexCoord[1]));
//lColor = gl_Color;
//lColor = texture2D(lTexture, vec2(gl_TexCoord[2]));
lColor = texture2D(lTexture, vec2(gl_TexCoord[2]))+(gl_Color-0.5);
maxC=0;
if (lColor.r>maxC)
maxC=lColor.r;
else if (lColor.g>maxC)
maxC=lColor.g;
else if (lColor.b>maxC)
maxC=lColor.b;
if (maxC>1)
lColor = lColor/maxC;
gl_FragColor = vec4((vec3(tColor1) * ( 1.0 - tColor2.a )+ vec3(tColor2) * tColor2.a)*lColor,tColor1.a);
//gl_FragColor = gl_Color;
}