Jump to content
xisto Community
Animator

Normal Maps In Blender Technique to make low resolutuion models have high resolution detail

Recommended Posts

Disclaimer: This is not a beginner "introduction to blender" level tutorial. It addresses the area of Normal Mapping, which is an advanced displacement texturing technique. If you know what Normal Maps are, and are wanting to know how to make them in Blender, then this tutorial is for you. UV unwrapping, basic Blender navigation, Sculpt mode etc are more basic skills which are assumed knowlege for this level.

 

 

Normal maps are cool. They are blueish textures which work like (but are more accurate than) bumpmaps... apply them to a model and they add bumpy textures & displacement to the surface. This makes it possible to have a low resolution model look like it is a high resolution model, but without the major strain on CPU resources.

 

Posted Image

 

In this tutorial, you will how to make a Normal Map of a high resolution model, and apply it to a lower resolution model so that it looks like the high resolution version.

 

I am assuming you know the basics of Blender, including how to UV unwrap and also Sculpt mode. The tutorial would be too long if I explained those parts so it's better for you to follow other tutorials on those areas until you are ready for this one.

 

So then; the workflow is you are going to start with a low poly model, make a hi-poly copy of the mesh, sculpt in detail and then create a Normal Map to display the high definition detail on your low-poly character.

 

First, we need a low resolution model. I'm going to use Suzanne (monkey head) for the images here, although she's not ideal because her eyes are separated polys which form nearly overlapping faces against her face, which will likely be troublesome for Normal Mapping. Where possible use a simple base mesh without sandwiched faces.

 

 

STEP 1: UV unwrap the low poly model.

 

I shouldn't need to tell you how to do this. Add seams, Unwrap, and then rearrange the islands on your UV layout. Don't rush this stage. Normal Maps are affected by the quality of your UV layout.

 

Posted Image

 

The low poly mesh UV should also have an image associated with it in the UV editor, so assign a "new image" if you have to (and presave it).

 

 

STEP 2: Create low and high poly versions.

 

Make a copy of your mesh. Name one "Suzanne_high" and then the other "Suzanne_low". Move Suzanne_low to a different layer out of the way, but don't change the physical (x,y,z) position as they will later need to be in the same location when making the Normal Map.

 

 

Posted Image

 

 

STEP 3: Sculpt the high poly details.

 

As with UV mapping, Sculpt mode should be familiar to you. Be careful on excessive use of the "grab" function (you can't normal map hooks). You should be looking to add fine details like muscle bulges, cloth wrinkles, skin textures and so forth. Save as you go, and allow yourself to detail as much as your computer will allow.

 

Posted Image

 

 

STEP 4: Create the Normal Map

 

At last you are ready.

 

SHIFT-select both the high and low poly models (the low poly should be selected last). You could move the low poly model to the same layer as the high poly version to do this, but SHIFT-enabling both layers also works just as well and keeps them easily separate.

 

Now you need to bake (Scene (F10) => Bake options) with the following settings...

 

Posted Image

The Bake should be set to "normals" (not "full render")

Make sure "Selected to Active" is activated. This compares the high poly one mesh against the low poly mesh in order to work out surface displacements.

Normal space should be set to "tangent". This will generate a Map that allows for the object to be animated (e.g. change rotation). Older methods could only make Normal Maps for stationary objects where only the lighting positions could change.

Now hit the big "BAKE" button and you should see your new and blue UV map generate. (I like using 1024 sized maps for reasonable resolution)

 

Save the map when you are done.

 

 

STEP 5: Apply the Normal Map to a low poly figure.

 

This is easy. Simply apply the newly saved image as a texture.

 

Under Shading (F5) => Materials (red ball icon)

 

Posted Image

 

Under "Map input" change the projection setting from "Orco" to "UV".

 

Posted Image

 

Under "map to" the default is "Col" (diffuse colour). Change this to "Nor" (normal, or bump).

 

Posted Image

 

To make the Map work as a Normal Map instead of a Bump Map, under Shading (F5) => Texture (F6) (the leopard skin icon), under "Map image" panel, hit "Normal Map" and select "Tangent" from the next droplist.

 

Your render should now show the low res model with all the bumps that the high resolution sculpt has. For a better result, you may want to apply a Subsurf modifier to the model, and turn off "hard edges".

 

Posted Image

As you can see, this low poly mesh now looks very similar to the higher poly sculpted version.

 

There may be areas where the mesh needs to be tidied up (some show as patches in the UV editor). There are probably various ways to do this, from rehashing the sculpt, to hacking the texturemap in Photoshop / Gimp. I wanted to show the technique for now, may troubleshoot solutions for those at a later time.

 

Posted Image

 

As a bonus in the new Blender (2.48) you can go to the top menu "Game => GLSL materials" and show a 3D window as "textured" to show the textured mesh in close-to final render quality in your 3D view. The surface also looks good in game mode, but be sure to delete the high res model before hitting P to activate game mode, or you could hang up the computer trying to calculate the high poly mesh.

 

So that's it. Now you can use Normal Mapping to give your low resolution meshes some high resolution punch, without compromising heavily on animation render times.

Edited by Lancer (see edit history)

Share this post


Link to post
Share on other sites

I am assuming you know the basics of Blender, including how to UV unwrap and also Sculpt mode. The tutorial would be too long if I explained those parts so it's better for you to follow other tutorials on those areas until you are ready for this one.

Sorry, but I don't agree with this. You should at least give us a link to the way of learning that, else your whole tutorial is useless.I don't know what even the words "basics of Blender" mean, so how could I even imagine how to understand the rest of your topic ?

Share this post


Link to post
Share on other sites

Sorry, but I don't agree with this. You should at least give us a link to the way of learning that, else your whole tutorial is useless.I don't know what even the words "basics of Blender" mean, so how could I even imagine how to understand the rest of your topic ?

I'm going to disagree with your disagree... except that links might be a good idea (I'm off elsewhere today, but might include some later on).

Unfortunately, Blender isn't a simple program like, say, a Word Processor. Your disagreement is akin to expecting anyone who has written a PHP tutorial to accompany their essay with detailed notes explaining the meaning of HTML tags, tables, Hex colour theory as well... or maybe even CSS. Those things are a "given" when taking on a tutorial for PHP. Likewise, if anyone is wanting to look into Normal Mapping, it is advanced knowledge. Navigating the basic program is a given. Normal Mapping is an advanced UV Mapping technique, and as my tutorial addressed this specific area, it is already long enough. The "real" information is actually only addressed in steps 4 & 5 with the first three steps simplifying a little of the process to get to that point. I should not have to go back and readdress all the basics of UV such as the program interface. I have some beginner books which look at those areas, with easy to understand examples, and they are some 300 pages long.

I wrote the above after a fair whack of trial and error (including posting questions on forums) to finally figure out what the magic key presses were to actually get a Normal Map to work correctly. Many of the Normal Mapping tutorials I have seen don't address the difference of "tangent space" and produce maps which are not useful for animated / moving objects. In Industry level modeling, they use expensive programs like Maya, and Normal Maps are common practice because they use other expensive programs like Zbrush. Here, I've figured out a way of getting similar results for free in Blender.

It took me a day or two to figure this out. I was looking for something like the above tutorial for my own use... it would have saved my many hours. That is who the tutorial is for.

Righto - I'm off. Head spinning because I've been rethinking how to get "reverse foot rigs" working in Blender.

I admit this is pretty advanced stuff (I have a diploma in Animation and this tutorial is of that level). Are you guys wanting to see some lower level (I mean not so advanced) tutorials in Blender?
Edited by Lancer (see edit history)

Share this post


Link to post
Share on other sites

Are you guys wanting to see some lower level (I mean not so advanced) tutorials in Blender?

Seems that you ask if I want to read a tutorial I wold be able to understand ? My answer is yes.Maybe you could, in another section, start a topic polling this question and we would see how many people think that way.
Or let's see if other people answer this post.

Share this post


Link to post
Share on other sites

Seems that you ask if I want to read a tutorial I wold be able to understand ? My answer is yes.Maybe you could, in another section, start a topic polling this question and we would see how many people think that way.
Or let's see if other people answer this post.

Okay... sounds to me that you would understand a beginner tutorial which explains what blender is from scratch. That's definitely not what this one aims to be. I targeted the tutorial towards beyond elementary level 3D modelers & animators, as a specialist interest topic. I'm pretty certain there are people on Xisto who are already using Blender, but would not know how to apply (yet) what my tutorial is designed to explain.

I just added a disclaimer right at the start to clarify... would that help?

Share this post


Link to post
Share on other sites

I just added a disclaimer right at the start to clarify... would that help?

Nice, that way the beginners like me will not be surprised, nor disappointed if they have problems understanding.

Share this post


Link to post
Share on other sites

...that way the beginners like me will not be surprised, nor disappointed...

Well, blender is such a big program that even after a few years using it as my main application (e.g. most used program), there are still some major areas I would consider myself a beginner at. I'm only just starting to look at the game engine part.
I'm glad for your feedback because it lets me know that I could write certain tutorials on the intro level, which I would have otherwise considered annoying to other blender users in that those tutorials aren't quite as "cutting edge" and could be considered old by some. However, the basics are very important to learn first and if I can get Xisto points by writing a succinct tutorial or two I certainly don't mind. There are always things which people miss like, how to split the main screens, that while the R key rotates, tapping it twice trackballs, hitting X, Y or Z after grab (G key), size (S key) or rotate (R key) does the change in that XYorZ direction, whereas SHIFT-XYorZ has the opposite effect, how the layers work... etc etc etc.

So, how about giving me a brief synopsis of what you have achieved so far and what you are stuck on at the moment? Then maybe I could customise a tutorial for that area and everyone happy. ;)

Share this post


Link to post
Share on other sites
problems with normal mapsNormal Maps In Blender

Hello!

 I did everything in accordance with your fine tutorial (thank you!) but on my second attempt with 'tangent' option set up received a 'uniformed', flat, single-coloured normal map (either all-blue or all-grey) from a hi-poly mesh, which is pretty much useless. What is the possible mistake?

 Low-poly model->UV unwrap->save image->Hi-Poly model->Shift-Select both->Bake->failure...

-reply by decembered

 

Share this post


Link to post
Share on other sites
clarification needed on step 4Normal Maps In Blender

Hi, I'm hoping for some clarification on Step 4. I have the low and high poly meshes each on their own layer as you say. I shift-select both objects with the low poly last. If I then shift select both layers and then bake my normal map, I end up with a normal map that reflects both the high poly and low poly meshes (I.E. Rough and detailed combined) which is quite ugly, not what you ended up with at all, which just looks like the high detail. But If I just select the layer with the high detail mesh, then it complains "no images found to bake to".  I'm on 2.49b by the way. What version is this tutorial for?

 Cheers!

-reply by danieru

Share this post


Link to post
Share on other sites
clarification needed on step 4Normal Maps In Blender

Hi, I'm hoping for some clarification on Step 4. I have the low and high poly meshes each on their own layer as you say. I shift-select both objects with the low poly last. If I then shift select both layers and then bake my normal map, I end up with a normal map that reflects both the high poly and low poly meshes (I.E. Rough and detailed combined) which is quite ugly, not what you ended up with at all, which just looks like the high detail. But If I just select the layer with the high detail mesh, then it complains "no images found to bake to".  I'm on 2.49b by the way. What version is this tutorial for?

 Cheers!

-reply by danieru

Share this post


Link to post
Share on other sites
Excellent and to the pointNormal Maps In Blender

I was looking for an answer as to how to implement normal maps in Blender (I've got the demo of Crazy Bump and don't want to waste my thirty days) and this was the first answer from google!Yes Blender is hard but there are literally hundreds of tutorials out there to get you started (Google is my best friend, anyone remember Web Ferret days?). Rome wasn't modeled in a day (it'd take about a week to render on my PC).Thanks for a precise answer.

-reply by Chris Hanning

Share this post


Link to post
Share on other sites
level of detail.Normal Maps In Blender

I followed your tutorial and it is pretty concise and clear- thanks. I have a problem though I am battling with- when I apply the normal map to my low poly mesh and render, it gives the effect of a really nice bump map. But it doesn't give the appearance of distorting the actual object as I expected... It still looks like a low poly object with a map on it, whereas your 'low resolution model with normal map' image looks just as complex as the the high res version, with rounded corners and everything. What have I missed?

Share this post


Link to post
Share on other sites
Great straight forward tutorialNormal Maps In Blender

That's it, great tutorial about creating normal maps in Blender.

I create maps in Zbrush but it seems to have a lot of issues when importing the image to Blender. The image does not quite match seams ! 

-reply by Animaticoide

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

Terms of Use | Privacy Policy | Guidelines | We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.