Normal Maps

Yes, it does have a smoother silhouette, but they are different images. I think there was a subsurf applied we were not told about, best I can figure.

Great tutorial btw. I will definitely be using this for animations now!


I would like a little clarification on one part of the tutorial. You say that I need to create a new Image and associate it with the UV Editor. Within the UV editor I go:
Image->New, Name My Image.
Image->Save, Save the image.

Then, when I get to the “Bake” part of the tutorial I keep getting, “Error: No image to bake to”. Anybody have a suggestion on what I’m doing wrong?

LiquidApe: First select the object (RMB), go into edit mode (TAB). You should see the UVs of your object. Create the empty image NOW or select your previously created image from the dropdown list in the UV window header. You can bake after this little intermezzo :slight_smile:

poison: Yes, you are correct about the technical point of the difference between normal maps and actual geometrical displacement, as also with the blueish colouring discrepancy. I was wanting to get the reader from point A to B, but not to the extreme of confusing them with technically correct point C which is sometimes knowledge best “built upon” later. I don’t mind correcting the tutorial though and you obviously understand the process very well. Thanks for clarifying LiquidApe’s problem… I’ll have to clarify that in the main tutorial. If you know of any other better wordings, please do suggest.

logunwhite321: Once the normal map is made, you can discard the hi-poly version. You only need to apply the normal map to a low poly version and it will look like the hi-poly one but because it is really a low-poly mesh, it will be good for animation.

RickyBlender: Okay, I will post an example .blend of the monkey head soon… probably just the low-poly normal mapped result, depending on the final blend size. Some graphics cards will not allow for GLSL which is basically the “live” real time normal mapping in the 3D view, although the final render should still show the result all the same.

LazyCoder: Nicely spotted! And KevinW is correct in that I applied a subsurf to my final low-poly but normal mapped version. I wasn’t trying to deceive, but made the original unmapped mesh hard-edged to reveal how low poly it was, whereas I subsurfaced the final result to try and emphasize the closeness of the lowpoly-with-map to the actual high poly version the map was made from. Could be slightly misleading, although I think I can correct this with maybe an explanatory “P.S. I subsurfaced this” below the final image.

…way past my bedtime. Will make some updates shortly. Thanks again for all the feedback.

Thank you very much for the un-technicality of your tutorial, I’ve never seen normal mapping put this simple.

Thank you much Sir!

glsl in windows vista, isn’t worked. :frowning: why??!

I use Linux so am unaware of Vista issues, although it’s more likely to be a specific driver / hardware issue than Vista itself. GLSL is not supported on all graphics cards. Perhaps you could make a new thread in the Other Software section, state your symptoms and what your hardware specs are.

Okay, I’ve finally gotten around to posting the example blend you wanted. Even without the hi-poly mesh in there the file comes to 1.4Mb. On opening the file, a lamp is selected. hover mouse over the top right 3D window, hit G-key and move the lamp around to see the effect in full GLSL.

Download the file here: normalmap_example.blend

EDIT: I read through the feedback and made a couple of changes to clarify potential areas of confusion. Thanks everyone for the input.

this problem made when i use Windows Vista.
because this problem not available in WinXP !
(I have Blender 2.46)

Should the low-poly be bigger or smaller than the high-poly? I have got it working technically (thanks! really easy to follow) but I am getting a blank blue map with some bits that looks like an actual normal map.

lowpolyBlender: They should be the same size. Normal mapping adds details like wrinkles.
Hard to say what your problem is without seeing it. Could it be that you have left two overlapping meshes on the same place? (You should disregard the hi-poly version once done… only the low poly version needed with map applied). Could it be that you’ve mapped the result to Orco instead of UV?

This is my problem. See the errors? How can I go about fixing these? Maybe using some of the settings under ‘selected to active’?

Looks to me like you’ve added tiny floating shapes for your details. This creates a “sandwiched edges” problem in that the baking process doesn’t know which layer, or side of the object, to map against the original and your normals get confused. Strictly speaking, you are better off sculpting / normal mapping detail onto a single closed mesh rather than adding lots of other objects.

But you can still get away with floating shapes…

  • Sometimes it helps to pull the shapes further away from the surface.
  • Another trick is to bake the image and look at the result. Certain areas may be golden / green instead of blue. Reverse normals of the shapes and take the bake again… this time the parts that are blue and the parts which are gold / green should have changed. Use photoshop / gimp to select the areas to make a combined map of only the blue parts.

Here’s another example which may also clarify the photoshop / gimp post-editing. The following medallion would have been near impossible to make as a single normal map pass. Instead, I made three bakes, rotating the swan into a new position each time. Then I used Gimp to combine all three bakes into one.


Hey guys,

The green/yellow sections look like the mesh is intersecting to me, and the normals are being baked whilst objects are under the surface or the low poly is intersecting the highpoly. Try to make it that the low poly completely encompasses the high poly mesh, so you cant see any hp geometry.
Also the gradients that are appearing across you model are caused by having one smoothing group and the light is trying to bend across the whole mesh at once. This can be fixed by adding more smoothing groups (by using the edge split modifier) and changing the angle of it to suit your needs.
I find the edgesplit modifier an essential tool when hard surface modelling. (it really helps when baking cylinders too :D)
In the pictures below i used various settings too show what i mean. (where edgesplit was used, it was set to 30 degrees)

intersection with no edgesplit

intersection with edgesplit

no intersection and no edgesplit

no intersection with edgesplit

As you can see the final image is all but perfect as there are no massive gradients and no odd colours caused by intersection of the meshes.

I hope that helps :slight_smile:

well, gentlemen (and ladies), I’ve got a problem. I think I’ve followed every step in the tutorial, but this is what I get - see ‘badscreen1.jpg’

the baked normal maps are solid blue, with no details at all. pretty much useless. where there could be a mistake?



i think i know what the problem is.
It looks like you are just baking the lp info.

Open the outliner and then select the HP mesh and then shift select the LP mesh then press bake.

Hope that helps :slight_smile:

thanks. actually, I’ve solved the problem bringing both objects to the same layer then doing the rest of the operations from the tutorial. It worked fine to me, thanks!

(too bad I’ve messed up about UV unwrap firsthand, giggle)

i never noticed that you had it on two layers :slight_smile:

Im glad you fixed it though :smiley:

Great tutorial, thanks. Bookmarked.

thats the other tutorial, in the first part it was about normal maps by texture, thats a different progress and used for other areas.- Rick.