update
This commit is contained in:
@@ -3,11 +3,33 @@ out vec4 frag_color;
|
||||
|
||||
uniform vec3 light_pos;
|
||||
uniform vec3 solid_color;
|
||||
uniform vec3 camera;
|
||||
|
||||
in vec3 normal;
|
||||
in vec3 frag_position;
|
||||
|
||||
|
||||
void main() {
|
||||
vec3 light_color = vec3(1, 1, 1);
|
||||
vec3 normal_norm = normalize(normal);
|
||||
vec3 light_direction_norm = normalize(light_pos - frag_position);
|
||||
|
||||
float ambient_strength = 0.2;
|
||||
vec3 ambient = ambient_strength * light_color;
|
||||
|
||||
float diffuse_strength = max(dot(normal_norm, light_direction_norm), 0.0);
|
||||
vec3 diffuse = diffuse_strength * light_color;
|
||||
|
||||
float specular_strength = 0.5;
|
||||
vec3 view_direction_norm = normalize(camera - frag_position);
|
||||
vec3 reflect_dir = reflect(-light_direction_norm, normal_norm);
|
||||
float spec = pow(max(dot(view_direction_norm, reflect_dir), 0.0), 32);
|
||||
vec3 specular = specular_strength * spec * light_color;
|
||||
|
||||
vec3 phong = specular + (ambient + diffuse) * solid_color;
|
||||
frag_color = vec4(phong, 1.0);
|
||||
}
|
||||
|
||||
void main_old() {
|
||||
vec3 light_color = vec3(1, 1, 1);
|
||||
vec3 light_direction_norm = normalize(light_pos - frag_position);
|
||||
vec3 normal_norm = normalize(normal);
|
||||
@@ -25,6 +47,6 @@ void main() {
|
||||
float spec = pow(max(dot(view_direction_norm, reflect_dir), 0.0), 32);
|
||||
vec3 specular = specular_strength * spec * light_color;
|
||||
|
||||
vec3 result = specular * (solid_color + 2 * light_color) / 2 + (ambient + diffuse) * solid_color;
|
||||
vec3 result = specular + (ambient + diffuse) * solid_color;
|
||||
frag_color = vec4(result, 1.0);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user