View Full Version : How-To; unwrap a head and map it FLAT

06 June 2002, 02:31 AM
I'm working on texturing a character's head and am trying (for the first time) to guarantee an even, undistorted flow of texture map across the surface by flattening the geometry into a plane and then mapping it with a planar projection map.

Please look at the mesh I'm going to map. I've already flattened him out but I am having some difficulties and would like the critique/advice of others who have more experience mapping a mesh in this fashion.

Here is my workflow, is there any way I can make this a little easier? (look at the reference image - I haven't finished the actual texture maps so I don't have images of the finished product...probably in a day or so)

1.) I first split the head along a seam in two.

2.) I then make two copies of the now split head; one to manipulate into a plane, the other a morph target to return the original head to it's original form after I morph it into a plane to project planar uv coords

3.) I hide both the original and the original reference copy leaving just the manipulation copy that I will transform into a plane and then begin to transform groups of vertices and polygons until the mesh is more or less flat

4.) I now use a plugin tool that flattens a set of vertices along a single axis to flatten the mesh like a piece of paper.

5.) I then adjust the newly flattened mesh so that the appearance of the polygons is balanced and (as close as I can guess anyway) the same in dimension as those on the original mesh (this step is the biggest headache for me - is there some way to better guarantee that the polygons on the planar mesh have close to the same area as those on the original mesh, even
after all of these transformations have been applied?

For those who haven't used this planar projection method; if the polygons in the original mesh and the flattened mesh are different in size, the textures will still distort.

6.) The two halves do not match so I pick the side that looks best and mirror a copy of it and then, through vertex snaps, move each vertice on the opposite side to exactly line up with the vertices on the mirrored copy of the 'good' side of the flattened mesh. This is a big headache. It'd be much nicer to just model one half and mirror it and then weld them together.

However, I don't know how this would be possible since I want the two sides of the face to have different but continuous UV coords so I can use a single image map for the whole face.

6.) Finally, I morph the original to the flat plane mesh, map with a planar projection, morph back to the original mesh, and stitch up the seam! (WHEW) ALL DONE!

How can I improve my workflow? thanks a lot

06 June 2002, 09:55 AM
Well, your method is quite a long and unusual one, but there is nothing really wrong with it.
Personally, I'd just use a UV unwrap and tweak it rather than going this whole route for a head (some objects though HAVE to use this method - for instance, I was texturing a gargoyle, and it had a curly tail which was impossible to unwrap unless we flattened it out).
But I always say it's good to stick to a method with which you are comfortable :)
It would probably have been quicker to just do a straight cylindrical unwrap on this head, but I personally also prefer planar projections (more predicatable results), so if it works, use it :thumbsup:

06 June 2002, 06:14 PM
In the end, it took a bit more than an hour to assign uv coords to the head using the flattened mesh method. This seems like a rather short amount of work for such a distortion-free result.

Thanks for the reasurance Leigh. I just want to make sure I'm not being rundandant somehow. BTW; I have tried using max's unwrap and have frustrating results and no success in completing. I get frustrated because (in my experience) unwraps end up with overlapping vertices which are a huge pain to select and move within an unwrap modifier. Is there some plug in or software to do this a bit better? I work in MAX 4.

Here is a picture of the textured head. It needs a hairline and some hair which I'll be working on finishing in the next hour and a half.

Critique please. How are my colors? Specular reflections?


Kim Oravecz
06 June 2002, 10:55 PM
He's a very cute little model! I think you have a great start to the texturing.

First thing I would do - depending on how realistic you are trying to go - is to get pictures of small children and really examine the facial textures. When I look at yours I'm thinking perhaps you should have a bit of redness to the end of the nose and maybe just a tad on his chin. Also, along the edges of his ears you may want to give a red hint to.

And I'm thinking the area around his eyes, the eyelids and underneath, should be a different color than the rest of his skin. Maybe a darkish almost slight bluish tint under the eyes. Of course, since I'm not around children I could be totally off base here - I'm basing this on an adult face (and an aging one at that! :rolleyes: )

Again - studying pictures of small children would be your best bet. Just study and try to imitate all the nuances in your texture map. Of course, if you can find an actual small child to study, all the better!

Oh - and I also believe his lips should be a bit redder as well. They look to be too close the the fleshtone of his skin.


. . . Kim

06 June 2002, 02:53 AM
Thanks for the advice. Here's a new image with hair. Can you believe it?!? This is only three days start to finish!

Please critique. What could be done better? Are the colors good? Should there be more blemishes? Are his lips not shiny enough? Too shiny? How is his hair?

06 June 2002, 02:52 PM
It looks like there's a bumpmapping error: seems like his eyebrows are sunk into his head instead of coming out of it.

06 June 2002, 04:47 AM
You're absolutely right! I had accidentally forgotten to hide the eyebrows layer when I exported the bump map image file from PS.

Here's a 175Kb loopable DivX movie of the character. I begain boning him tonight and decided to put the rig through it's paces a bit. Check it out! This is my first test render and I'm SO happy with the result! :beer:

This is the furthest I've ever brought a model to life. I modeled in the free Rhino betas since the first year they were released so I had no polygon mentalitity and thus couldn't really do much. However I begain modelling in Sub-D surfaces several months ago and things have come so far since then! It's such an exciting place to be! AHH!

Here's the animatin link (I'd appriciate any feedback) WARNING; don't mind his nudity, his clothing isn't connected to his bone system yet.

Kim Oravecz
06 June 2002, 02:34 AM
Yep - he's looking better!

Although I can't really answer your questions because I'm not sure what "look" you are going for. Are you going for realism or cartoony? Again, if you are going for realism then you need to look at some reference material and imitate that. I'm not sure how many blemishes childrens faces really have.

For cartoony then you do not need those really fine details like blemishes and stuff. At least IMHO.

The hair looks really good except for the left side along the edge of your render - there's something there kind of sticking out or something that catches my eye. But other than that - I think it looks good.

The lips look good - not too shiney at all.

He's looking really good! :applause:


. . . Kim

06 June 2002, 04:16 AM
Thanks for the feedback!!:thumbsup:

About the 'thing' jutting out of his hair. The layers of hair have a noise modifier applied to make his mop look messy. In some places it bends the polygons too far. I'll go ahead and fix the bits that stick out unnaturally.

Really, what I'm going for with his skin textures and hair is for them to look RIGHT. He doesn't have to look real, just appropriate. I think that he's totally already there at this point and that I can move on to finishing the simple textures on his body (his body only lacks textures).

Kim! Check out the test animation link I included in my previous reply post. This is the first animation I've ever done with a two-legged thing and I'm so happy with the result. He waves expectantly up at a camera looking down on him.

thanks again, I really appriciate the feedback!

06 June 2002, 11:40 AM

I use Lightwave and have the same problems flattening out the mesh (Keeping the face's proportions, to prevent distortion). If anyone know a method of doing this I would appreciate the info.


06 June 2002, 03:07 PM
For max, there is a plug-in called meshtools that, along with a lot of other things, allows you to flatten a set of vertices along one of the three axis.

This function does about 75% of the work for you and is really what makes flattening a mesh into a plane for texturing possible. I can't imagine having to move EACH vertice by hand. I would think that LW would have a function/plugin that can perform the same task.

I've found that it works really well to treat an irregular object like a cube when it comes to flattening it out. I treat the face, back of the head, and each side of the head as a seperate group and flatten these first along the plane they lay on in the 1st place. When you do this you end up with a head that looks like a box. This method retains really good polygonal dimensions along each specific side. The only place where the proportions are iffey is in the row of polygons between the flattened sides. This really cuts down on the amount of adjustment that needs to be made.

As I read the various posts, it seems a lot of people have a lot of success with lightwave. I feel quite a bit of frustration with MAX's renderer and material editor a lot of the time; maybe I'll look more closely at LW.

Actually, I wish I could just afford Pman! :shrug: I want to be able to CODE shaders. Do lightwave's renderer/shaders support scripting/coding?

06 June 2002, 03:39 PM
Quote: I would think that LW would have a function/plugin that can perform the same task. "

Set Value!! Press Ctrl+v! That flattens all the vertices along a certain axis...

06 June 2002, 04:05 PM
I meant is there an easier way of rotating the faces so the normal face dow that particular axis. At the momment I am taking a group of faces and rotating them around the vertex where they attach to the next face. Is this about the only way to do it? Once the face is in the correct orientation flattening it is not a problem.

Is there a better way or am I being lazy?

06 June 2002, 04:24 PM
Oh right. Hmmmm. Well, I guess I can't help you there, because I don't use this method :sad:

06 June 2002, 04:33 PM

How do you flatten out the mesh?

H :)

06 June 2002, 09:35 AM
I actually don't flatten it out at all - I just use a planar UV, and then edit the UV until it's perfect ;)

06 June 2002, 11:02 AM

I was playing around with the planar mapping last night. I think I see how its done.

I was using the "Menithings" method of flattening out the mesh.

I guess I need to try your method.

H :)

Kim Oravecz
06 June 2002, 05:05 PM

Just wondering if you could go into a bit more of a detailed explanation of how you planar UV map? Like could you just maybe quickly explain how you would planar map a head and the tweek the uv's?

Or do you actually select say just the facial area, planar UV map that, then select the side of the head, planar UV map that, etc?

Do those questions make sense?

Also, from something you mentioned earlier - can you explain the difference between a procedural and a shader? I've been pretty much using those terms interchangably.


. . . Kim

06 June 2002, 10:49 AM
Kim - that's EXACTLY how I planar map :) I select the front of the face, and unwrap that, and then select the sides, and then the back, unwrapping each individually. Then, in Photoshop, I just check that the seams will go together.
It is a fairly slow process, though. But it is very precise. I always like to stick to planar projections, because they produce the most predictable results.

As for the shader/proc thing - the most simple way of putting it, is that procedurals change the way the surface looks (ie they are like images that you put in your surface channels), whereas shaders change the way that light reacts to the entire surface. Examples of procedurals are obviously things like fractal noise, marble, puffy clouds, and whatever, and examples of shaders are things like Velvet shaders, Fresnel shaders (although the Fresnel effect can be cheated using opposite gradients in your reflection and transparency channels) and SSS shaders.

Kim Oravecz
06 June 2002, 05:10 PM
Thanks Leigh!

That makes sense on both counts.

Can I but you with yet one more question? You say that after you are done laying out all your UV's you got into Photoshop and make sure "the seams will go together" That's something that has always alluded me - you know, you got this object with the UV's all split up on the map and of course there are going to be some seperations in the UV'd areas, which, of course, will cause seams.

So how in the heck do you paint across UV's when they are separated like that and not have any seam problems???

I've been using Deep Paint 3D to avoid that very issue. But there are times when I would like to do a map in Photoshop but just never could figure out how to get around that seam issue without some really funky alpha mapping tricks in LW. :rolleyes:


. . . Kim

06 June 2002, 09:13 AM
Umm, well basically I just take the image I made for the section that lies next to the section I'm working on (I do each unwrap in a different Photoshop file), and put it into the image I'm working on.
In other words, if, for instance, I'm working on a colour layer, then I will take the colour layer from the adjacent area's file, and lie it alongside the seam of the area that I'm working on. That way I can use the clone tool to ensure that the 2 seams will blend together. Make sense?
Another way is to just make the seam areas completely neutral - in other words, to have just a base colour and no details along all the seams, thus ensuring that the seams will blend together perfectly.

Kim Oravecz
06 June 2002, 12:46 AM
Thanks Leigh,

Yes that makes sense. I can see cases, though, where that would be tough to do. I did a African Grey parrot and I used Deep Paint and created these individual feathers to be placed on my birdy and I'm thinking something like that would be pretty tough to do any other way than like a Deep Paint program. Then again, I guess where there is a will, there is a way! :)

Thanks again!

. . . Kim

06 June 2002, 04:58 AM
Johnny-scott- I use that mapping techniqune all the time now. I really like it and frankly it's easy to do. I can map stuff more effectively with fewer maps and I don't get texture stretching, distorting and even doubling pixels.

There are a few things I do differently. (In Max) After a spread out the object I use the scale tool to flatten it. Then I use the 'preserve' modifier. Preserve is awsome it lets you pick a target ojbect, like a morph target it has to be from the same initial object, then it preserves the edge lengths to the target object. That way I don't have to adjust the polygons myself to keep proper polygon proportions.

I call it morph-mapping. I haven't heard of anybody ealse doing it till today. But I have to say I got the idea from chilli skinner.


06 June 2002, 07:43 PM
Thanks for the tip with the preserve modifier! This is probably the answer to my problem with keeping the poly's proportions (edge lengths as you put it) the same while flattening. I'll have to give that technique a try on my next work. So preserve ships with 3ds max?

thanks a lot!

CGTalk Moderation
01 January 2006, 08:00 AM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.