Page MenuHome

baking normal map using cycles does not support custom vertex normals on the baking target mesh
Open, NormalPublic


System Information
Windows 10

Blender Version
blender-2.79.0 2bf3825

Bug Description:

When baking normal maps from a high poly mesh to a low poly mesh using cycles, if the low poly mesh has customized vertex normals, cycles will not use them.

I uploaded a test file here which contains a simple highpoly (using a material with the new blend node) and lowpoly with custom normals (created using the Y.A.V.N.E. plugin):

Using cycles for baking I consistently get incorrect normals baked down.

Custom normals are very often used in game development to get higher quality bakes and more flexible normal maps. Getting this feature to work correctly in Blender, used together with the new bevel node will make Blender a very powerful tool for producing PBR ready game art.
If anyone has time to take a look at this, I'd be very grateful! Hit me up if you need more test cases to work with and I'll gladly set them up.



Event Timeline

Sergey Sharybin (sergey) triaged this task as Normal priority.

Uploading file here:

@Dalai Felinto (dfelinto), something you can have a look? :)

Any progress on this?
Doing a model with custom normals on the low-poly and the expertimental dispalcement on the high poly... and kinda can't progress until this is fixed, is there an ETA?

For what I can see the normals are baked correctly, at least in 2.79.6. The problem that I noticed was the rendering of the object, custom normals and normal maps are still giving problems to cycles{F4670131}. Can anyone Upload another example, maybe I'm missing it.

I tried baking a simple model with Cycles recently and the problem persists, the low poly mesh had edited normals using the blend4web plugin, and cycles ignored them during baking, while internal gave me a correct, and quite visibly different result of the bake.

I can provide an example file later today.

Here is a recording of the process, where I first try and bake it out in cycles and am getting an unwanted result, and in the end I use internal and the result is correct :

This was recorded during a stream, so you may have to skip through the video. It contains the normal editing process, baking in cycles and internal.