vshader.glsl in vec4 VertexColor in vec4 VertexPosition out vec4 color void main() { color = VertexColor gl_Position = // calculation } fshader.glsl uniform vec4 Ambient in vec4 color int main () { gl_FragColor = min(color * Ambient, vec4(1.0)) }
vec3 scatteredLight = vec3(Ambient) vec3 rgb = min(color.rgb * scatteredLight, vec3(1.0)) gl_FragColor = vec4(rgb, color.a)
uniform vec3 LightDirection; uniform vec3 LightColor; uniform vec3 Ambient; in vec4 color; in vec3 Normal; void main() { float diffuse = max(0.0, dot(Normal, LightDirection)); .. vec3 scatteredLight = Ambient + LightColor * diffuse; ... vec3 rgb = min (color.rgb*scatteredLight, vec3(1.0)); gl_FragColor = vec4(rgb, color.a) }
uniform vec3 HalfVector; uniform float Shininess; uniform float Strength; ... float specular = max(0.0, dot(Normal, HalfVector)); .. if (diffuse == 0.0) specular = 0.0 else specular = pow(specular,Shininess); ... vec3 reflectedLight = LightColor * specular * Strength; vec3 rgb = min (color.rgb*scatteredLight+reflectedLight, vec3(1.0)); gl_FragColor = vec4(rgb, color.a)