diff --git a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag index 7122ce8..b0205a1 100644 --- a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag +++ b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag @@ -1,8 +1,11 @@ #version 450 layout(location = 0) in vec3 fragColor; +layout(location = 1) in vec3 fragNormal; layout(location = 0) out vec4 outColor; void main() { - outColor = vec4(fragColor, 1.0); + vec3 lightDir = normalize(vec3(0.5, 0.8, 0.3)); + float diff = max(dot(normalize(fragNormal), lightDir), 0.2); + outColor = vec4(fragColor * diff, 1.0); } diff --git a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv index 828f1e5..4a5184b 100644 Binary files a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv and b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv differ diff --git a/src/Engine.Graphics.Vulkan/Shaders/triangle.vert b/src/Engine.Graphics.Vulkan/Shaders/triangle.vert index d587a87..9b81756 100644 --- a/src/Engine.Graphics.Vulkan/Shaders/triangle.vert +++ b/src/Engine.Graphics.Vulkan/Shaders/triangle.vert @@ -5,6 +5,7 @@ layout(location = 1) in vec3 inColor; layout(location = 2) in vec3 inNormal; layout(location = 0) out vec3 fragColor; +layout(location = 1) out vec3 fragNormal; layout(row_major, set = 0, binding = 0) uniform CameraUBO { mat4 vp; @@ -17,4 +18,5 @@ layout(row_major, push_constant) uniform PC { void main() { gl_Position = vp * pc.model * vec4(inPosition, 1.0); fragColor = inColor; + fragNormal = mat3(pc.model) * inNormal; } diff --git a/src/Engine.Graphics.Vulkan/Shaders/triangle.vert.spv b/src/Engine.Graphics.Vulkan/Shaders/triangle.vert.spv index edfeddb..b9f3c50 100644 Binary files a/src/Engine.Graphics.Vulkan/Shaders/triangle.vert.spv and b/src/Engine.Graphics.Vulkan/Shaders/triangle.vert.spv differ