(updated) cycles normal baking is incredibly unintuitive, and there are no screen space normals

Excuse me if I’m being a bit blunt, but we can do better than we are in the realm of normals.

I spent about 7 hours troubleshooting this normal map I’m trying to make. I was using the Workbench engine, and turned off filmic and anything else that would interfere with color, but the normals were always a bit off. I was confused, as I assumed this was the new way to get a normal pass, as we don’t have a proper tangent space normal in passes yet, only world space. After plenty of tests, I could only get the blue in my maps to 115,115,231, but normal maps require the flat face to be 128,128,255. It looks perfect to the eye, but is on average tilted toward x+ and y+ by up to 30 degrees.

we need a way to gather screenspace normals! We have world space normals, but they aren’t nearly as useful for post processing.

As important as it is, I’m a bit disappointed that cycles’ baking still uses only a single non-standard workflow, where you have to have a disconnected texture node in the material, and then you have to manage a selection between the 3D view and texture node, while the advanced bake options are only shown once normal bake type is selected. It may even be broken, but it’s confusing enough that I can’t tell if I’m even doing it right to check. (after some fiddling, yes, baking normals is absolutely broken.(12/8/2018))

The normal matcap is not what you want to use for that purpose. I personnally don’t know why we are still shipping it as it is really not what matcaps are for.

Matcap is different from 2.79 and does not project using view normals but uses a correction. Also there is color management involved.

I would say maybe just render a normal pass with cycles?

Not shipping MatCaps that have no clear intent and confuse the hell out of people is a very important move! There are plenty of options available already, Blender 2.80 should really come out with things only that do what they are supposed to do. This also pays into another discussion at Call for Content: Studio Lights

well, the issue is that it’s called the normal test. if the test doesn’t provide accurate results, it’s an issue in my opinion… though I’m pretty sure it’s because of some rendering option and output. I’m considering adding an entire render pass, or making an option to render it in addition to the world space normals, though I’d have to learn how to develop for blender for it. I might anyway.

the normal pass doesn’t give screen space normals, only world space, which are a very different result, and non-compatible. That’s the issue I’m having. I cannot find a way to enable screen space normals, nor can I find any suggestion the blender is able to export them at all. It’s a simple thing that is generally standard, and should be possible in every render engine or at least the base program, but not one of blender’s three engines supports it, and the only way to bake normals is with one object active, the others selected, and a material with a strange disconnected input.

I think this is a large oversight, or at least something that’s holding blender back.

well, it is a standard matcap, and a very good one for seeing edges and curves, but it shouldn’t be listed as a test at the very least. it has information stating that it’s in the “+y” direction and everything, suggesting that it’s accurate to standards… which it is! if you could somehow disable all color correction and just render from a bare matcap, I think it would be accurate. testing now…

[edit: the matcap itself is completely accurate, checked colors in photoshop.]