assaultfish/engine/resource/shadow.vs

28 lines
852 B
Text
Raw Normal View History

2026-01-05 18:40:10 +09:00
#version 110
varying vec4 shadow;
2026-01-05 23:02:30 +09:00
varying vec4 color;
2026-01-05 18:40:10 +09:00
void main(void){
vec3 position = vec3(gl_ModelViewMatrix * gl_Vertex);
vec3 normal = normalize(gl_NormalMatrix * gl_Normal);
vec3 light = normalize(gl_LightSource[0].position.xyz - position);
float diffuse = dot(light, normal);
2026-01-05 23:02:30 +09:00
color = gl_Color;
2026-01-05 18:40:10 +09:00
2026-01-05 23:02:30 +09:00
gl_FrontColor = gl_LightSource[0].ambient;
2026-01-05 18:40:10 +09:00
shadow = gl_FrontColor;
if (diffuse > 0.0){
vec3 view = normalize(position);
vec3 halfway = normalize(light - view);
float specular = pow(max(dot(normal, halfway), 0.0), gl_FrontMaterial.shininess);
2026-01-05 23:02:30 +09:00
vec4 temp = gl_LightSource[0].diffuse * diffuse;
2026-01-05 18:40:10 +09:00
shadow += temp * 0.2;
gl_FrontColor += temp + gl_FrontLightProduct[0].specular * specular;
}
gl_TexCoord[0] = gl_TextureMatrix[0] * gl_ModelViewMatrix * gl_Vertex;
2026-01-05 23:02:30 +09:00
gl_TexCoord[1] = gl_MultiTexCoord0;
2026-01-05 18:40:10 +09:00
gl_Position = ftransform();
}