Normal map tangent computation is slow
Open, ConfirmedPublic


System Information
Windows 10 x64
GTX 1070 x2
GTX 970 x1

Blender Version

Short description of error

Normal node unconnected adds a significant amount of render time and ram usage

Exact steps for others to reproduce the error

Put a normal map node on any dense mesh and leave it unconnected.


Brecht Van Lommel (brecht) closed this task as "Archived".Fri, Mar 17, 3:09 AM
Brecht Van Lommel (brecht) claimed this task.

This is a known issue, normal map tangents will be computed even if they are not used in this case.

This should be solved by D2285 whenever that's finished.

Are tangents supposed to be that slow? they are horribly slow with a decent sized scene 90% of the render is just computing tangents before the render.. well over 30 minutes in some of our cases. And then the real render (Post synchronization) takes like 2 minutes

Brecht Van Lommel (brecht) changed the title from "Normal map node takes 8x longer to render than straight diffuse even when unconnected " to "Normal map tangent computation is slow".Fri, Mar 17, 3:25 AM
Brecht Van Lommel (brecht) reopened this task as "Open".
Brecht Van Lommel (brecht) triaged this task as "Confirmed" priority.

It does seem quite slow, will check if it can be made faster. Normal maps are normally intended for low poly meshes in games..

Developer note: the way Cycles accesses coordinates through RNA is slower than it could be, and moving the computation into Blender would deduplicate code and make it a bit faster. However I think the main performance issue is in the algorithms in mikktspace, as generating tangents for Blender Internal is also very slow.