I want to learn on my own how to add GLSL Shaders into Quake 3
So can someone explain me what exackly I need to edit/add to get glsl Shaders working?
Here is a example:
Team Fortress 2 Shader
vertex
Code: Select all
varying vec2 uv;
varying vec3 normal;
varying vec3 localLightDir;
uniform vec3 lightDir;
void main(void)
{
uv = gl_MultiTexCoord0.xy;
normal = gl_Normal;
localLightDir = lightDir * gl_NormalMatrix;
gl_Position = ftransform();
}
Fragment
Code: Select all
varying vec2 uv;
varying vec3 normal;
varying vec3 localLightDir;
uniform sampler2D skin;
uniform sampler2D ramp;
void main(void)
{
vec3 nN = normalize(normal);
vec3 nL = normalize(localLightDir);
float lambert = max(dot(nN, nL), 0.0);
vec4 texture = texture2D(skin, uv);
vec4 ambient = vec4(0.4, 0.4, 0.4, 1.0);
vec4 rampText = texture2D(ramp, vec2(lambert, lambert));
// Ambient is the texture
vec4 finalColor = ambient;
if (lambert > 0.0)
{
// half lambert
finalColor += ambient*lambert;
finalColor *= 0.5 + ambient;
finalColor += 0.5;
finalColor *= finalColor;
// Ramp
float rampColor = pow(lambert, 1.6);
// Final
finalColor += rampText*rampColor*0.5;
}
finalColor *= texture;
gl_FragColor = finalColor;
}
can someone explained it step by step
Thank you a lot