Changeset 9dd2eb7 in opengl-game for color.frag
- Timestamp:
- Apr 28, 2018, 2:29:20 AM (7 years ago)
- Branches:
- feature/imgui-sdl, master, points-test
- Children:
- 9f4986b
- Parents:
- d9f99b2
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
color.frag
rd9f99b2 r9dd2eb7 1 1 #version 410 2 2 3 in vec3 color;3 in vec3 position_eye, normal_eye, color, light_position_eye; 4 4 5 5 out vec4 frag_color; 6 6 7 // fixed point light properties 8 vec3 Ls = vec3(1.0, 1.0, 1.0); // white specular colour 9 vec3 Ld = vec3(0.7, 0.7, 0.7); // dull white diffuse light colour 10 vec3 La = vec3(0.2, 0.2, 0.2); // grey ambient colour 11 12 // surface reflectance 13 vec3 Ks = vec3(1.0, 1.0, 1.0); // fully reflect specular light 14 vec3 Kd = vec3(1.0, 0.5, 0.0); // orange diffuse surface reflectance 15 vec3 Ka = vec3(0.2, 0.2, 0.2); // fully reflect ambient light 16 float specular_exponent = 100.0; // specular 'power' 17 7 18 void main() { 8 frag_color = vec4(color, 1.0); 19 // ambient intensity 20 vec3 Ia = La * Ka; 21 22 vec3 direction_to_light_eye = normalize(light_position_eye - position_eye); 23 float dot_prod = max(dot(direction_to_light_eye, normal_eye), 0.0); 24 25 // diffuse intensity 26 vec3 Id = Ls * color * dot_prod; 27 28 vec3 reflection_eye = reflect(-direction_to_light_eye, normal_eye); 29 vec3 surface_to_viewer_eye = normalize(-position_eye); 30 float dot_prod_specular = max(dot(reflection_eye, surface_to_viewer_eye), 0.0); 31 float specular_factor = pow(dot_prod_specular, specular_exponent); 32 33 // specular intensity 34 vec3 Is = Ls * Ks * specular_factor; 35 36 frag_color = vec4(Is + Id + Ia, 1.0); 9 37 }
Note:
See TracChangeset
for help on using the changeset viewer.