Quick Reply
Search this Thread
Admin of Randomness
retired moderator
Original Poster
#1 Old 25th Mar 2007 at 8:55 PM Last edited by tiggerypum : 23rd Jul 2007 at 10:23 AM.
Default Mesh: All About Normals
This is a group effort document - primarily authored by Tiggerypum with various bits of advice and wisdom from other members. This article is going to be Milkshape/Unimesh centric, although it does also contain general information that can be applied to other programs.

What Are Normals

Normals are values attached to the vertices of the meshes that let the 3D program know how light is to shine across the faces. The normals create a smoothing effect on the mesh. Here is a visual of what normals 'do'.



When you first read in a Sims body mesh into your program (such as milkshape) it already has normals. If you are using Unimesh to edit, the normals will be preserved, although some editing might cause it to become necessary to adjust the normals.

Editing Normals

Normals can be edited by users in several ways in milkshape - they are automatically generated if 'auto smooth' is left set on (we turn it off for body editing).
  • Milkshape also has a smooth command - but it will smooth everything - which will result in seams down the sides of the body mesh if you have a body mesh loaded.
  • Demon's Tools include an 'align normals' command that will adjust the normals on vertices you select, allowing one to touch up part of a mesh without reworking the entire mesh.
  • Demon's Tools also include 'extended manual edit' which has an option for copying and pasting all sorts of values, including the normals, of vertices. This is most handy if working on a body mesh and needing to match the game's neck settings or the settings on the waistline of a top or bottom mesh.

If you are not using Milkshape, you will still see normals - and might have to do things like weld seams (which we now no longer do with the Unimesh plugin) or use the Filter Points command in XSI Modtool, for instance.

If you create new parts for the mesh and they are black when the rest of the mesh is gray - that either means you are looking at the backfaces and need to flip them, or that the faces do not have normals (or have incorrect normals, for instance, rotating part of the mesh with 'autosmooth' off will result in bad normals)

Normals and Hemlines/Edges

What happens with normals and 'smoothing' is that Milkshape tries to average the normals to make a smooth transition from one face to the next. That is great for giving the rounded effect to, say, a Sims' arm. But it can cause problems with areas like hems, where two different planes do come together and touch but really are separate.

If one takes a hemline and 'smooths' it, you'll get something like this:



That dark shadow will show up on your sim mesh, even once it has a texture.

There are a few ways you can work with normals to avoid bad shadows
  1. If possible, do not smooth hem edges
  2. Use extended edit and copy the normals from a similar area on the mesh. (but this can be crude and still not get you the results you want - unless you are replicating normals on a sim neckline or waistline)
  3. Slightly separate the vertices in question (I'll use extended edit, or select a section by the faces and move it slightly) and _then_ smooth. Then snap the vertices back together.
  4. Unweld the edge, then hide each side in turn to align the normals on the opposite side - no need to play with the values. Now if you want to be sure that the edge won't be welded again and the normals smoothed on export (I had that happen more than once), you can slightly separate the uv-coordinates on the seam. (Marvine's technique)
  5. Learn how to use Smooth Groups in Milkshape (see the next part of this article for instructions by Dr. Pixel)
Screenshots

"Undertake something that is difficult; it will do you good. Unless you try to do something beyond what you have already mastered, you will never grow." - Ronald E. Osborn

Please do NOT PM me with requests, creation questions, or game help questions. Click for help:
Game Help | Create | Content List | Where Can I Find?
10 users say thanks for this. (Who?)
Advertisement
Scholar
#2 Old 26th Mar 2007 at 3:39 AM Last edited by tiggerypum : 26th Mar 2007 at 10:33 AM.
Default How To Use Smoothing Groups
How To Use Smoothing Groups

I want to start by saying that you don't ever have to worry about this if you follow the standard procedure of not welding and not smoothing anything. However, this is good to know for those times when you do, for one reason or another, need to weld or smooth parts of your mesh.

I don't know if this really qualifies as a tutorial, but actually it's pretty simple.

First, keep in mind what Wes said, the Sims meshes do not have any smoothing group info, so be sure to always save your file as a .ms3d file too, to preserve any smoothing group info that you have added to your mesh.

Also keep in mind that the smoothing groups are not at all connected to the mesh groups - any part of any mesh group can be assigned to any smoothing groups. For example, it would be possible to have a mesh that has only one mesh group, but still make use of all 32 available smoothing groups.

Whenever you import a mesh into MilkShape, the whole thing is automatically assigned to smoothing group 1.

For the most part this would work ok, but there will often be problems where your mesh makes a sharp corner, for example where the hem of a skirt joins up with the underside of the skirt.

In the first pic, I have purposely caused a "normals" problem by welding together the edge of the skirt mesh with the flat "underside" of the skirt. Then I did a "smooth all". You can see the results, lots of darkened areas around trhe skirt hem and the upper legs.



To fix this, I am going to assign the underside of the skirt to another smoothing group. First I select only the faces of the skirt underside - actually, since that would be rather hard to do, I really selected the faces of the entire lower skirt/upper leg area - then I unselected, by vertex, all the faces above and below the skirt underside. Anyway, what I want is to see all the faces of the underside selected, and nothing else.



Next I go to the Groups tab, and in the smoothing groups section I first click the [Assign] button. Then I click the [2] button - this will assign my selected faces to smoothing group 2, leaving the rest assigned to smoothing group 1.

Now, I again use "smooth all" - but look! Now the skirt looks right, no more darkened edges!



That's really all there is to it.

The smoothing groups can be left as-is when you do your final export of your finished mesh, they won't hurt anything at all.

Additional Tips from Wes_H

In the Tools menu for MilkShape is a plugin that comes as a part of the UniMesh set called "Sims2 UniMesh Identify Split Group". This identifies all the "seams" areas on a mesh. To use it, you just run the tool, and it selects all the locations that are unwelded vertice pairs.

The purpose of the tools is not to identify where you should fix the Maxis model, because if you weld these locations, you will have smoothing problems. Instead, what it shows is the locations that Maxis' smoothing groups left unwelded. If you create smoothing groups for the imported model that run on the edges shown, you should be able to smooth all and even use autosmooth and still get properly shaded models.

I attached a screenpic of the female gardener outfit with the Split Group tool selections shown. Note this mesh has clothing and also some object meshing for the tool belt. Using smoothing groups on the tools in the right places will help keep the sharp corners sharp instead of rounded looking.

Screenshots
Locked thread
Back to top