3
$\begingroup$

Normal map's neutral color has to correspond to #8080FF HEX value. In this case the resulting normal will be exactly the same as the normal of its underlying face. When I made a normal map texture in Blender and imported it into a game engine, I found that at seams I often get strong artifacts, because all my normals got skewed by the texture color offset (my neutral color was BCBCFF)

I am trying to save a normal map from Blender (OS is Ubuntu 15.10) so its neutral color corresponds to 8080FF. Here is what I am doing so far:

  • Generate a texture -- Color space 'Raw', 32bit float.
  • Bake normal map in Cycles or Blender Internal
  • To check that I have #8080FF as neutral -- in the paint mode I select 8080FF color, paint over neutral color region, and I can see the neutral color is identical to #8080FF
  • Save image as 16 bit PNG or OpenEXR
  • When I check the neutral color in Gimp it shows BCBCFF value

What am I missing?

$\endgroup$

1 Answer 1

4
$\begingroup$

Apparently what I was missing (Windows or Linux) is to check Save as Render box for PNG/OpenEXR. So the following worked for me to generate an external normal map texture:

  1. Generate an image in Raw Color Space and with Float Buffer:

    enter image description here

Note that Float Buffer is important, as 8bit dynamic range is not enough for a quality Normal Map. The Raw Color Space maps 8080FF as neutral color in Blender

  1. Bake a normal map in Cycles or Blender Internal
  2. Save resulting map as 16bit PNG with Save as Render checked.

enter image description here

$\endgroup$
1
  • $\begingroup$ Actually I do not think now that 16 bit or 8 bit is a big deal, but getting the correct RGB values obviously is. $\endgroup$
    – dimus
    Commented May 10, 2017 at 13:11

You must log in to answer this question.

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