Implement lambertian shading w/ directional light

This commit is contained in:
Camden Dixie O'Brien committed 2025-09-29 12:16:14 +01:00
1 parent 620cf7606b
commit 32a31a729f
2 files changed
+8 -2

No files matched your search

+7 -1
View File
@@ -1,9 +1,15 @@
#version 450 #version 450
float ambient = 0.05;
vec3 light_dir = normalize(vec3(2, 1, -1));
vec3 base_colour = vec3(1.0, 0.94, 0.8);
layout(location = 0) in vec3 frag_normal; layout(location = 0) in vec3 frag_normal;
layout(location = 0) out vec4 out_colour; layout(location = 0) out vec4 out_colour;
void main() void main()
{ {
out_colour = vec4(frag_normal, 1.0); float lambertian = max(dot(frag_normal, light_dir), 0.0);
float intensity = min(lambertian + ambient, 1.0);
out_colour = vec4(intensity * base_colour, 1.0);
} }
+1 -1
View File
@@ -13,5 +13,5 @@ layout(push_constant) uniform MVP {
void main() { void main() {
gl_Position = mvp.proj * mvp.view * mvp.model * vec4(position, 1.0); gl_Position = mvp.proj * mvp.view * mvp.model * vec4(position, 1.0);
frag_normal = normal; frag_normal = mat3(mvp.model) * normal;
} }