Post new topic Reply to topic  [ 6 posts ] 
Author Message
 Post subject: Normal Maps in Blender
PostPosted: Thu Oct 16, 2008 10:18 pm 
User avatar
Jedi Master
Offline

Joined: Wed Apr 02, 2008 11:16 pm

Posts: 1007

Location: Kapiti Coast, Wellington
I've been writing this tutorial for elsewhere, but as there have been a few people I've seen in NZCGI who have shown an appreciation for Blender, I though I may as well place the tutorial in here for anyone who may find it useful...

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.

Image

In this tutorial, you will learn 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.

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.


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.

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...

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)

Image
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)

Image

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

Image

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

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".

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.

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.


Edit: Why does imageshack like dropping the first image file?


Last edited by Lancer on Fri Aug 21, 2009 7:08 pm, edited 2 times in total.

Top
 Profile  
 
 Post subject: Re: Normal Maps in Blender
PostPosted: Fri Oct 17, 2008 10:13 am 
User avatar
Administrator
Offline

Joined: Wed Feb 13, 2008 9:46 pm

Posts: 3945

Location: New Zealand
Great work Lancer, thanks for sharing that. :D

_________________
Roger Feron
Administrator
NZCGI
Feron Animation
Linked In


Top
 Profile  
 
 Post subject: Re: Normal Maps in Blender
PostPosted: Fri Oct 17, 2008 11:29 am 
User avatar
Jedi Master
Offline

Joined: Wed Apr 02, 2008 11:16 pm

Posts: 1007

Location: Kapiti Coast, Wellington
Thanks.

I started moving the graphics onto NZCGI instead of imageshack which has a tendency for servers to go down and drop them. Think I'd need to cut the tutorial into two posts as there's a limit of five attachments... hopefully the images will stay up.


Top
 Profile  
 
 Post subject: Re: Normal Maps in Blender
PostPosted: Tue Dec 09, 2008 12:01 pm 
User avatar
Jedi Master
Offline

Joined: Wed Apr 02, 2008 11:16 pm

Posts: 1007

Location: Kapiti Coast, Wellington
Sweet! Someone nicely promoted this tutorial at BlenderNation, which is kind of the slash-dot for the Blender community, giving the tutorial thousands of exposures overnight.

I'm wrapped. :mrgreen:


Top
 Profile  
 
 Post subject: Re: Normal Maps in Blender
PostPosted: Tue Dec 09, 2008 12:20 pm 
Death Star Gunner
Offline

Joined: Thu Nov 06, 2008 4:29 pm

Posts: 241
Sweet tutorial there bud. I have some big respect for blender. From what i have seen it has some rather impressive features. Some one should build it from the ground up one day and make it just a little bit more user friendly.
Well done. Whats the next tute?


Top
 Profile  
 
 Post subject: Re: Normal Maps in Blender
PostPosted: Tue Dec 09, 2008 1:58 pm 
User avatar
Jedi Master
Offline

Joined: Wed Apr 02, 2008 11:16 pm

Posts: 1007

Location: Kapiti Coast, Wellington
neuromancer wrote:
Well done. Whats the next tute?

Thanks. My next tutorial will be focusing on rigging.

I learned a lot in my time at MDS, and have been underground for a wee while since, thinking about how to transfer what I have learned to Open Source platforms. This could unlock the door for being able to get real animation into schools without having to pirate commercial applications, and students could even legally take their work home.

The rigging constraints across different applications (e.g. Maya and Blender) are sometimes similar, but more often different, so what I've been doing is reinventing the wheel for various rigs. Take the "reverse foot rig" as an example... many of the common Blender tutorials and freely downloadable characters have a foot rig which does not support a proper toe roll /pivot. Without this, there's no way to efficiently nut out a walk cycle where inbetweening doesn't either pop the foot up badly or sink the toes through the ground. I designed a surprisingly simple to make reverse foot rig for Blender which behaves very similarly to the ones I know how to do in Maya, which includes easy to operate foot controllers. My initial prototype was posted on BlenderArtists some time back (minus the easy to use controllers), but I'm currently writing a full tutorial which will hopefully feature in BlenderArt magazine. (I've missed the deadline for their next "rigging" special, but hopefully the issue after that).


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 6 posts ] 


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
cron

About Us


Contact Us


Powered by phpBB® Forum Software © phpBB Group
Logo Design by - Oliver Hilbert Revilo Designs