Blinn-Phong
This commit is contained in:
@@ -25,8 +25,7 @@ void main() {
|
|||||||
normal_cam_u = normal_cam_u * 2.0 - 1.0;
|
normal_cam_u = normal_cam_u * 2.0 - 1.0;
|
||||||
normal_cam_u = normalize(tbn * normal_cam_u);
|
normal_cam_u = normalize(tbn * normal_cam_u);
|
||||||
|
|
||||||
// vec3 light_direction_cam_u = normalize(ubo.light_position - position_wld);
|
vec3 light_direction_cam_u = normalize(ubo.light_position - position_wld);
|
||||||
vec3 light_direction_cam_u = normalize(vec3(1.0, 1.0, 1.0));
|
|
||||||
|
|
||||||
float ambient_strength = 0.1;
|
float ambient_strength = 0.1;
|
||||||
vec3 light_color = vec3(1.0, 1.0, 1.0);
|
vec3 light_color = vec3(1.0, 1.0, 1.0);
|
||||||
@@ -38,8 +37,8 @@ void main() {
|
|||||||
float specular_value = 1.0;
|
float specular_value = 1.0;
|
||||||
|
|
||||||
vec3 view_direction = normalize(vec3(inverse(ubo.view) * vec4(0.0, 0.0, 0.0, 1.0)) - position_wld);
|
vec3 view_direction = normalize(vec3(inverse(ubo.view) * vec4(0.0, 0.0, 0.0, 1.0)) - position_wld);
|
||||||
vec3 reflect_direction = reflect(-light_direction_cam_u, normal_cam_u);
|
vec3 halfway_direction = normalize(light_direction_cam_u + view_direction);
|
||||||
float specular_strength = pow(max(dot(reflect_direction, view_direction), 0.0), 64);
|
float specular_strength = pow(max(dot(normal_cam_u, halfway_direction), 0.0), 2);
|
||||||
vec3 specular_color = specular_value * specular_strength * light_color;
|
vec3 specular_color = specular_value * specular_strength * light_color;
|
||||||
|
|
||||||
out_color = vec4(ambient_color + diffuse_color + specular_color, 1.0) * texture(diffuse_tex, tex_coords);
|
out_color = vec4(ambient_color + diffuse_color + specular_color, 1.0) * texture(diffuse_tex, tex_coords);
|
||||||
|
|||||||
Binary file not shown.
@@ -1,7 +1,7 @@
|
|||||||
|
|
||||||
use std::time::SystemTime;
|
use std::time::SystemTime;
|
||||||
|
|
||||||
use cgmath::{Deg, InnerSpace, Quaternion, Rotation3};
|
use cgmath::{Deg, InnerSpace, Quaternion, Rotation3, vec3};
|
||||||
use winit::event::Event;
|
use winit::event::Event;
|
||||||
|
|
||||||
use level::{load_level, save_level};
|
use level::{load_level, save_level};
|
||||||
@@ -73,7 +73,7 @@ impl Game for TestGame {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Custom game object stuff
|
// Custom game object stuff
|
||||||
let light_pos = self.player.camera.position * -1.0;
|
let light_pos = vec3(2.0, 0.5, 2.0);
|
||||||
if !self.paused {
|
if !self.paused {
|
||||||
self.player.update(frame_time, &self.input, renderer);
|
self.player.update(frame_time, &self.input, renderer);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user