diff --git a/src/textures/bump2normal.cpp b/src/textures/bump2normal.cpp index 86912145..2bb1b9b9 100644 --- a/src/textures/bump2normal.cpp +++ b/src/textures/bump2normal.cpp @@ -55,10 +55,8 @@ class Bump2NormalTextureInstance final : public Texture::Instance { _bump->evaluate(Interaction{it.uv() - make_float2(step, 0.f)}, time).x; auto dy = _bump->evaluate(Interaction{it.uv() + make_float2(0.f, step)}, time).x - _bump->evaluate(Interaction{it.uv() - make_float2(0.f, step)}, time).x; - n = normalize(make_float3( - clamp(dx / (2.f * step), -1.f, 1.f), - clamp(-dy / (2.f * step), -1.f, 1.f), - 1.f)); + auto dxy = make_float2(dx / (2.f * step), -dy / (2.f * step)); + n = normalize(make_float3(dxy, max(1.f, length(dxy)))); }; return make_float4(n * 0.5f + 0.5f, 1.f); }