Normal map tangent computation is slow
Closed, ArchivedPublic

Description

System Information
Windows 10 x64
GTX 1070 x2
GTX 970 x1

Blender Version
2.78c

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.

Details

Type
Bug
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) renamed this task from Normal map node takes 8x longer to render than straight diffuse even when unconnected to Normal map tangent computation is slow.Mar 17 2017, 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.

There is now D2702 to improve this, it's more of a To Do anyway so we can leave the discussion there.