Skip to content

Commit f3b8f32

Browse files
authored
Merge pull request #30 from Pilzschaf/tutorial33-pointlight
Added old shader code
2 parents 05902af + bc20eac commit f3b8f32

1 file changed

Lines changed: 20 additions & 0 deletions

File tree

shaders_old/basic.fs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,8 +18,20 @@ struct DirectionalLight {
1818
vec3 ambient;
1919
};
2020

21+
struct PointLight {
22+
vec3 position;
23+
24+
vec3 diffuse;
25+
vec3 specular;
26+
vec3 ambient;
27+
28+
float linear;
29+
float quadratic;
30+
};
31+
2132
uniform Material u_material;
2233
uniform DirectionalLight u_directional_light;
34+
uniform PointLight u_point_light;
2335

2436
void main()
2537
{
@@ -33,5 +45,13 @@ void main()
3345
vec3 diffuse = u_directional_light.diffuse * max(dot(normal, light), 0.0) * u_material.diffuse;
3446
vec3 specular = u_directional_light.specular * pow(max(dot(reflection, view), 0.000001), u_material.shininess) * u_material.specular;
3547

48+
light = normalize(u_point_light.position - v_position);
49+
reflection = reflect(-light, normal);
50+
float distance = length(u_point_light.position - v_position);
51+
float attentuation = 1.0 / ((1.0) + (u_point_light.linear*distance) + (u_point_light.quadratic*distance*distance));
52+
ambient += attentuation * u_point_light.ambient * u_material.diffuse;
53+
diffuse += attentuation * u_point_light.diffuse * max(dot(normal, light), 0.0) * u_material.diffuse;
54+
specular += attentuation * u_point_light.specular * pow(max(dot(reflection, view), 0.000001), u_material.shininess) * u_material.specular;
55+
3656
gl_FragColor = vec4(ambient + diffuse + specular + u_material.emissive, 1.0f);
3757
}

0 commit comments

Comments
 (0)