Page MenuHome

Mirrored objects have flipped binormal vectors in LookDev
Closed, ResolvedPublic


System Information
Operating system: macOS 10.14.4 Beta (18E205e)
Graphics card: AMD Radeon R9 M295X 4GB

Blender Version

  • 2.79b
  • 2.80 master (2d8aa2e6ad351859796da8406a0c8f3cc2b45bbf)

Short description of error

When rendering using the Material (2.79b) or LookDev (2.80) viewport shading mode, binormal vectors read by shaders are flipped for mirrored objects (i.e., objects having negative scale values for one or three axes).

Exact steps for others to reproduce the error
See the attached .blend file and screenshots.

The scene shows three shapes. The original shape is shown on the right side. The other ones are a mirrored version of the shape, each using a different method of mirroring: the middle one was produced by the Mirror modifier and the left one was created by copying the object and scaling by -1.0 on the X direction.

Their binormal vectors (presumably world-space) are visualized by mapping their XYZ coordinates to color values through the use of the Normal Map node.

The mirrored objects use the same transformation in regard to the original object. Therefore, it's expected that they have the same binormal vector. A Cycles render in Blender 2.79b shows an expected behavior:

However, when rendered using the Material (2.79b) or LookDev (2.80) viewport mode, the binormal vector of the left one (the one mirred by object scale) is flipped:

The following image shows a shading error possibly caused by this:

Event Timeline

Can you try to build this file again based on the default .blend file. This file links to some other .blend files.
Please try to keep it as simple as possible.

Jacques Lucke (JacquesLucke) lowered the priority of this task from 90 to 30.Mar 18 2019, 1:02 PM

My apologies. Here's the new reproducing example created from scratch:

Jacques Lucke (JacquesLucke) raised the priority of this task from 30 to 90.Mar 18 2019, 3:12 PM
Sebastian Parborg (zeddb) lowered the priority of this task from 90 to 50.

@Clément Foucault (fclem) I think there is already a ticket for this, but I can't find it ATM. So sorry if this is a duplicate.