When starting a new project in Substance, I've seen people saying that we need to check the box "Compute Tangent Space to ...

When starting a new project in Substance, I've seen people saying that we need to check the box "Compute Tangent Space to Fragment" due to the way Blender works. However, you didn't check this box and everything seems to work. I don't understand this box so I'm wondering your thoughts on why the different view on this. Great topic, by the way! Thanks!
  • Jonathan Lampel replied
    Great question, there's a lot more to this than I originally thought when recording the video. Here's a great thread to read about how it works: http://polycount.com/discussion/178897/need-clarification-tangents-and-binormals-tangent-space-tangent-space-per-fragment "Some renderers pass all three vectors to the GPU as per-vertex data, or vertex attributes. Cryengine and Unity do this. However, some other renderers pass just the normal and the tangent vectors to the GPU as per-vertex data, and then in the pixel shader they use the interpolated value of the normal and tangent vectors to compute the bitangent. The bitangent is just the cross product, or maybe the opposite of the cross product, of these two vectors in this case. Doing this saves a bit of memory and vertex processing time, but costs a bit more processing time in the pixel shader, so it's less useful for weak GPUs and more useful if there are a lot of vertices. Doing things this way also yields (in most cases) subtle differences in the way that the normal map looks. So to get a correct result, you have to make sure that the baker is informed of which way the renderer is getting the bitangent vector. Again, Unity and Cryengine (and, as it happens, xNormal's 3D preview) pass the bitangent as vertex data so it's interpolated as such, and almost every other renderer that I know of computes the bitangent in the pixel shader. So if you're using Unity, you should tell Substance Painter to not compute tangent space per fragment, and if you're using UE4, you should tell Substance Painter to compute tangent space per fragment." Short answer is that since I'm usually making models for Unity, I leave it off and it seems to render fine in Cycles as well, though it may look a little off in the material viewport until Eevee comes along.