Changeset 239 for trunk/tests/md2_test/obj.frag
- Timestamp:
- 05/17/14 02:35:19 (11 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tests/md2_test/obj.frag
r189 r239 1 1 #version 120 2 2 3 uniform sampler2D diffuse;3 uniform sampler2D nv_t_diffuse; 4 4 uniform vec4 light_diffuse; 5 5 uniform vec4 light_specular; … … 9 9 varying vec3 v_light_vector; 10 10 varying vec3 v_view_vector; 11 11 12 12 void main(void) { 13 vec3 diff_texel = vec3( texture2D( nv_t_diffuse, v_texcoord ) ); 14 13 15 vec3 nnormal = normalize( v_normal ); 14 16 vec3 nlight_vector = normalize( v_light_vector ); 15 vec3 nview_vector = normalize( v_view_vector );16 17 vec3 nreflect_vector = reflect( -nlight_vector, nnormal ); 17 18 18 float specular_value = clamp( dot( nreflect_vector, nview_vector ), 0.0, 1.0 ); 19 specular_value = pow( specular_value, 6.0 ); 20 float diffuse_value = max( dot( nlight_vector, nnormal ), 0.0 ); 19 float specular_amount = 0.2; 20 float diffuse_amount = 1.0 - specular_amount; 21 21 22 vec3 diff_texel = vec3( texture2D( diffuse, v_texcoord ) ); 23 24 float final_specular = specular_value * 0.2; 25 float final_diffuse = diffuse_value * 0.5; 26 float final_ambient = 0.3; 22 float dot_prod_specular = dot( nreflect_vector, normalize( v_view_vector ) ); 23 float dot_prod_diffuse = dot( nlight_vector, nnormal ); 27 24 28 vec3 ambient_color = final_ambient * diff_texel; 29 vec3 diffuse_color = light_diffuse.xyz * final_diffuse * diff_texel; 25 float diffuse_factor = max( dot_prod_diffuse, 0.0 ); 26 float specular_factor = pow( max( dot_prod_specular, 0.0 ), 16.0 ); // 100.0 27 28 float final_diffuse = diffuse_amount * diffuse_factor * 0.5; 29 float final_specular = specular_amount * specular_factor; 30 31 vec3 diffuse_color = light_diffuse.xyz * final_diffuse * diff_texel; 30 32 vec3 specular_color = light_specular.xyz * final_specular; 33 vec3 self_ilum_color = vec3 (0.0, 0.0, 0.0); 34 vec3 ambient_color = vec3 (0.0, 0.0, 0.0); 31 35 32 gl_FragColor = vec4( ambient_color + diffuse_color + specular_color, 1.0 ); 33 // gl_FragColor = vec4( diff_texel, 1.0 ); 36 gl_FragColor = vec4( max( self_ilum_color, diffuse_color + specular_color + ambient_color ), 1.0 ); 34 37 }
Note: See TracChangeset
for help on using the changeset viewer.