diff --git a/res/cube.zip b/res/cube.zip deleted file mode 100644 index 857be55..0000000 Binary files a/res/cube.zip and /dev/null differ diff --git a/src/light.frag b/src/light.frag deleted file mode 100644 index a7ae2f2..0000000 --- a/src/light.frag +++ /dev/null @@ -1,8 +0,0 @@ -#version 450 - -layout(location=0) in vec3 v_color; -layout(location=0) out vec4 f_color; - -void main() { - f_color = vec4(v_color, 1.0); -} \ No newline at end of file diff --git a/src/light.frag.spv b/src/light.frag.spv deleted file mode 100644 index 199e2f4..0000000 Binary files a/src/light.frag.spv and /dev/null differ diff --git a/src/light.vert b/src/light.vert deleted file mode 100644 index 101505e..0000000 --- a/src/light.vert +++ /dev/null @@ -1,27 +0,0 @@ -#version 450 - -layout(location=0) in vec3 a_position; - -layout(location=0) out vec3 v_color; - -layout(set=0, binding=0) -uniform Camera { - vec3 u_view_position; - mat4 u_view_proj; -}; - -layout(set=1, binding=0) -uniform Light { - vec3 u_position; - vec3 u_color; -}; - -// Let's keep our light smaller than our other objects -float scale = 0.25; - -void main() { - vec3 v_position = a_position * scale + u_position; - gl_Position = u_view_proj * vec4(v_position, 1); - - v_color = u_color; -} diff --git a/src/light.vert.spv b/src/light.vert.spv deleted file mode 100644 index 7b8ff81..0000000 Binary files a/src/light.vert.spv and /dev/null differ diff --git a/src/shader.frag b/src/shader.frag deleted file mode 100644 index 33137a0..0000000 --- a/src/shader.frag +++ /dev/null @@ -1,40 +0,0 @@ -#version 450 - -layout(location=0) in vec2 v_tex_coords; -layout(location=1) in vec3 v_position; // UPDATED! -layout(location=2) in vec3 v_light_position; // NEW! -layout(location=3) in vec3 v_view_position; // NEW! - -layout(location=0) out vec4 f_color; - -layout(set = 0, binding = 0) uniform texture2D t_diffuse; -layout(set = 0, binding = 1) uniform sampler s_diffuse; -layout(set = 0, binding = 2) uniform texture2D t_normal; -layout(set = 0, binding = 3) uniform sampler s_normal; - -layout(set = 2, binding = 0) uniform Light { - vec3 light_position; - vec3 light_color; -}; - -void main() { - vec4 object_color = texture(sampler2D(t_diffuse, s_diffuse), v_tex_coords); - vec4 object_normal = texture(sampler2D(t_normal, s_normal), v_tex_coords); - - float ambient_strength = 0.1; - vec3 ambient_color = light_color * ambient_strength; - - vec3 normal = normalize(object_normal.rgb * 2.0 - 1.0); // UPDATED! - vec3 light_dir = normalize(v_light_position - v_position); // UPDATED! - - float diffuse_strength = max(dot(normal, light_dir), 0.0); - vec3 diffuse_color = light_color * diffuse_strength; - - vec3 view_dir = normalize(v_view_position - v_position); // UPDATED! - vec3 half_dir = normalize(view_dir + light_dir); - float specular_strength = pow(max(dot(normal, half_dir), 0.0), 32); - vec3 specular_color = specular_strength * light_color; - - vec3 result = (ambient_color + diffuse_color + specular_color) * object_color.xyz; - f_color = vec4(result, object_color.a); -} \ No newline at end of file diff --git a/src/shader.frag.spv b/src/shader.frag.spv deleted file mode 100644 index 45ccebc..0000000 Binary files a/src/shader.frag.spv and /dev/null differ diff --git a/src/shader.vert b/src/shader.vert deleted file mode 100644 index be49b4e..0000000 --- a/src/shader.vert +++ /dev/null @@ -1,61 +0,0 @@ -#version 450 - -layout(location=0) in vec3 a_position; -layout(location=1) in vec2 a_tex_coords; -layout(location=2) in vec3 a_normal; -layout(location=3) in vec3 a_tangent; -layout(location=4) in vec3 a_bitangent; - -layout(location=0) out vec2 v_tex_coords; -layout(location=1) out vec3 v_position; // UPDATED! -layout(location=2) out vec3 v_light_position; // NEW! -layout(location=3) out vec3 v_view_position; // NEW! - -layout(set=1, binding=0) -uniform Camera { - vec3 u_view_position; - mat4 u_view_proj; -}; - -layout(location=5) in vec4 model_matrix_0; -layout(location=6) in vec4 model_matrix_1; -layout(location=7) in vec4 model_matrix_2; -layout(location=8) in vec4 model_matrix_3; - -// NEW! -layout(set=2, binding=0) uniform Light { - vec3 light_position; - vec3 light_color; -}; - -void main() { - mat4 model_matrix = mat4( - model_matrix_0, - model_matrix_1, - model_matrix_2, - model_matrix_3 - ); - v_tex_coords = a_tex_coords; - - mat3 normal_matrix = mat3(transpose(inverse(model_matrix))); - vec3 normal = normalize(normal_matrix * a_normal); - vec3 tangent = normalize(normal_matrix * a_tangent); - vec3 bitangent = normalize(normal_matrix * a_bitangent); - - // UDPATED! - mat3 tangent_matrix = transpose(mat3( - tangent, - bitangent, - normal - )); - - vec4 model_space = model_matrix * vec4(a_position, 1.0); - v_position = model_space.xyz; - - // NEW! - v_position = tangent_matrix * model_space.xyz; - v_light_position = tangent_matrix * light_position; - v_view_position = tangent_matrix * u_view_position; - - gl_Position = u_view_proj * model_space; -} \ No newline at end of file diff --git a/src/shader.vert.spv b/src/shader.vert.spv deleted file mode 100644 index 84e6c50..0000000 Binary files a/src/shader.vert.spv and /dev/null differ