1
$\begingroup$

I'm not trying to transfer high-res normals to a low-res model, so I might just be doing it wrong, but what I'm trying to do is just output the normals of the sphere onto a texture that I can paint on to manually try creating some cel-shaded looking normal maps.

When selecting the sphere, the texture I want to bake onto, with the bake type set to normal, all I get is a flat blue color, and this is how it looks when I plug it into the normal channel for the shader:

enter image description here

What am I doing wrong here?

$\endgroup$

2 Answers 2

1
$\begingroup$

The blue color you're getting should be $RGB(0.5, 0.5, 1.0)$ which corresponds to a normal value of $<0,0,1>$. The normal vector has a range of $<[-1, 1], [-1, 1], [0, 1]>$ In Tangent space, as I understand it, the vector $<0, 0, 1>$ is perpendicular to the the surface. As the first value is changed, the vector tilts left and right. As the second vector is changed, the vector tilts up and down. The third value is adjusted so the length of the vector stays equal to 1. e.g. $z = \sqrt{1 - (x^2 + y^2)}$. Of course we should limit $ x^2 + y^2 \le 1 $.

CheckNormal+y MatCap

This is illustrated by the "Check Normal + Y" matcap, which is based on the rendering of the normals of a sphere in Object Space. You can find an EXR version of this image in your Blender install folder under datafiles/studiolights/matcap. You'll see ... not what I expected ... I'm going to submit this now while I play with generating my own exr...

To be continued...

$\endgroup$
3
  • $\begingroup$ One thing I've learned today is it is VITAL to set the image mode to non-color data, linear or raw. sRGB and friends destroy the normal map! $\endgroup$
    – Ron Jensen
    Commented Aug 9, 2020 at 2:27
  • $\begingroup$ I figured this out myself, I just wasn't familiar with how tangent space normals worked, and how I needed to have a normal map node to get a correct result. I made another question about working with object space normals: blender.stackexchange.com/questions/190126/… $\endgroup$ Commented Aug 10, 2020 at 16:29
  • $\begingroup$ I've been reading Simulation of Wrinkled Surfaces Revisited by Mikkelsen in my spare time. $\endgroup$
    – Ron Jensen
    Commented Aug 11, 2020 at 2:53
0
$\begingroup$

Ok, it's because I plugged it directly into normal -- I have to use a normal map node. That wasn't immediately clear

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .