Page MenuHome

2.80 RC1 Eevee incorrect shading on modified normals.
Closed, InvalidPublicKNOWN ISSUE


Blender Version
Broken: 2.80 RC1

Short description of error

Incorrect Shading of a object with modified normals in eevee, probably due to backface not recalculated after normals modification. I attached the example file with a tree model, which got normals from a icosphere, so the plane cards should have nice and fluffy look, but instead some cards looks like they are in a shadow. Which is wrong, because normals are sperical now. After the investigation it looks like the the dark parts are backfaces, which is not updated after normals transfering or it is calculated in not expected to me way.

What i expect as a artist is to have a properly smoothed spherical shading like in a attached screenshot from a external gameengine. The external shader is just a basic with shadow cast and receive on, no cull. It is only a model with a custom spherical normals.

To Reproduce:
Open blendfile, go into eevee rendered or a lookdev mode, check the tree. For comparison i also include another object with a default, flipped and custom normals with a backface culling ON shader for you to see that object with modified normals still culls even if it's normals are close to a flipped version.

Event Timeline

Clément Foucault (fclem) lowered the priority of this task from 90 to 50.Jul 15 2019, 12:30 PM

I get an assert opening the file.

BLI_assert failed: /home/clement/Blender/blender/source/blender/blenkernel/intern/data_transfer.c:286, data_transfer_dtdata_type_preprocess(), at 'CustomData_get_layer(&me_src->pdata, CD_NORMAL) != ((void *)0)'

Clément Foucault (fclem) claimed this task.
Clément Foucault (fclem) changed the subtype of this task from "Report" to "Known Issue".

Maybe the modifier should have a toggle which recalculates the backfaces. However this operation would change the vertex order and may not fit the design of the data transfer modifier.

However in your situation a workaround exists: You can use the translucent BSDF to light the backfaces.

Another workaround that maybe less costly is to invert the normal based on the backfacing of the geometry node.