From ffb9ad1e379b627a0260c564a0f6383c265efcf2 Mon Sep 17 00:00:00 2001 From: LastMC Date: Sat, 25 May 2024 13:39:48 +0800 Subject: [PATCH] limit bump2normal map --- src/textures/bump2normal.cpp | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/textures/bump2normal.cpp b/src/textures/bump2normal.cpp index d3fa30bf..86912145 100644 --- a/src/textures/bump2normal.cpp +++ b/src/textures/bump2normal.cpp @@ -55,7 +55,10 @@ 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(dx / (2.f * step), -dy / (2.f * step), 1.f)); + n = normalize(make_float3( + clamp(dx / (2.f * step), -1.f, 1.f), + clamp(-dy / (2.f * step), -1.f, 1.f), + 1.f)); }; return make_float4(n * 0.5f + 0.5f, 1.f); }