Implement lambertian shading w/ directional light
This commit is contained in:
1 parent
620cf7606b
commit
32a31a729f
2 files changed
+8
-2
No files matched your search
@@ -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);
|
||||||
}
|
}
|
||||||
@@ -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;
|
||||||
}
|
}
|
||||||
Reference in new issue
Block a user