diff --git a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag index 1cb8f53..82d0e14 100644 --- a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag +++ b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag @@ -14,6 +14,17 @@ layout(set = 0, binding = 0) uniform CameraUBO { void main() { - // Just output albedo — tests if vp matrix in 128B UBO works - outColor = vec4(fragAlbedo, 1.0); + vec3 N = normalize(fragNormal); + vec3 toLight = pointLightPos.xyz - fragWorldPos; + float dist = length(toLight); + vec3 L = normalize(toLight); + + float NdotL = max(dot(N, L), 0.0); + float atten = 1.0 / (1.0 + dist * dist * 0.05); + float intensity = pointLightPos.w; + + vec3 color = fragAlbedo * pointLightColor.xyz * NdotL * intensity * atten; + color += fragAlbedo * 0.02; + + outColor = vec4(color, 1.0); } diff --git a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv index aaa4957..1babfe7 100644 Binary files a/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv and b/src/Engine.Graphics.Vulkan/Shaders/triangle.frag.spv differ