diff --git a/src/pbrt/materials.h b/src/pbrt/materials.h index 2665c4a46..5cc1df28c 100644 --- a/src/pbrt/materials.h +++ b/src/pbrt/materials.h @@ -95,7 +95,7 @@ inline PBRT_CPU_GPU void NormalMap(const Image &normalMap, ns = Normalize(ns); // Transform tangent-space normal to rendering space - Frame frame = Frame::FromZ(ctx.shading.n); + Frame frame = Frame::FromXZ(Normalize(ctx.shading.dpdu), Vector3f(ctx.shading.n)); ns = frame.FromLocal(ns); // Find $\dpdu$ and $\dpdv$ that give shading normal