diff options
Diffstat (limited to 'src/3d')
| -rw-r--r-- | src/3d/renderer.cc | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/3d/renderer.cc b/src/3d/renderer.cc index 3280df7..cc2124e 100644 --- a/src/3d/renderer.cc +++ b/src/3d/renderer.cc @@ -151,7 +151,7 @@ fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> { var p: vec3<f32>; var normal: vec3<f32>; - let light_dir = normalize(vec3<f32>(1.0, 1.0, 1.0)); + let light_dir = normalize(vec3<f32>(0.2, 1.0, 0.2)); // More vertical light for easier shadow debugging if (obj_type == 0.0) { // Rasterized object p = in.world_pos; @@ -219,10 +219,9 @@ fn fs_main(in: VertexOutput) -> @location(0) vec4<f32> { let n_local = normalize(vec3<f32>(d_x1 - d_x2, d_y1 - d_y2, d_z1 - d_z2)); - normal = normalize(mat3 * n_local); - } + let n_world = mat3 * n_local; + let normal = normalize(n_world); - let light_dir = normalize(vec3<f32>(0.2, 1.0, 0.2)); // More vertical light for easier shadow debugging let shadow = calc_shadow(p + normal * 0.01, light_dir, 0.0, 20.0); let lighting = (max(dot(normal, light_dir), 0.0) * shadow) + 0.1; |
