Sorry your browser is not supported!

You are using an outdated browser that does not support modern web technologies, in order to use this site please update to a new browser.

Browsers supported include Chrome, FireFox, Safari, Opera, Internet Explorer 10+ or Microsoft Edge.

3 Dimensional Chat / Normal Mapping

Author
Message
Game maker wannabe
17
Years of Service
User Offline
Joined: 30th Mar 2007
Location: Dorset, ooh arr!
Posted: 4th Aug 2008 23:06
Hello, I'm a tad confused...

Please would someone be so kind as to point me in the right direction with normal mapping.

I would like to know what it actualy IS
And what is it for?

And finaly, how would I go about normal mapping

Thankyou in advance

H

Venge
18
Years of Service
User Offline
Joined: 13th Sep 2006
Location: Iowa
Posted: 4th Aug 2008 23:46 Edited at: 4th Aug 2008 23:48
A normal map is usually a grayscale equivalent of a diffuse texture, but with added details like ridges or bumps. It makes models look more detailed than they really are without increasing the poly count.

For example (from google):


The model on the left is the base mesh. On the right is the mesh with a normal map texture applied. As you can see, it looks a lot more realistic and detailed, but the poly counts are the same.

As far as creating normal maps, several modelling programs have the ability to "bake" the normals of a texture in a certain lighting setup (Blender, for one) but I haven't had much experience in texturing yet, so you'll have to ask someone else for specifics.

I have CDO. It's like OCD, but the letters are in alphabetical order, like they should be.
Alucard94
17
Years of Service
User Offline
Joined: 9th Jul 2007
Location: Stockholm, Sweden.
Posted: 5th Aug 2008 00:10
What Venge is talking about is more of a Bump map, which is a grayscale image which uses the greyscale values to determine how to process the normals.
The other type is the more colorful normal map, as you might have seen, the ones with the crazy purple'ish colors to them, and they use the entire RGB values to determine how to process the normals.
And the latter is usually better as it gives it a bit more detail.
I could probably go into more detail, but someone a bit more experienced will do that for me


Anonymous User
16
Years of Service
User Offline
Joined: 21st Feb 2008
Location:
Posted: 5th Aug 2008 00:15
Bump maps create bumps
Normal maps affect lighting (normals)

At least I think.

???
Venge
18
Years of Service
User Offline
Joined: 13th Sep 2006
Location: Iowa
Posted: 5th Aug 2008 00:18
Ah. I meant bump maps. Didn't know there was that big of a difference, lol.

I have CDO. It's like OCD, but the letters are in alphabetical order, like they should be.
Game maker wannabe
17
Years of Service
User Offline
Joined: 30th Mar 2007
Location: Dorset, ooh arr!
Posted: 5th Aug 2008 00:23
Is Mudbox used for this?

Ok, so it's a texture?

Ok I'm starting to get this.

Seppuku Arts
Moderator
20
Years of Service
User Offline
Joined: 18th Aug 2004
Location: Cambridgeshire, England
Posted: 5th Aug 2008 00:54 Edited at: 5th Aug 2008 00:56
It's a texture and they look like this (from my other thread) - the colours essentially determine depth - someone said to me to think of r,g,b as x,y,z. With the way light effects a normal map you model will look more detailed.





Mudbox should be able to make normal maps. A good way is to have a low polygon model - you game model, then use one of those sculpting programs (like mudbox, or even the one in the thread I recently made) then sculpt in your extra detail on a higher polygon version of the mesh - then you'll be able to convert that data onto an image that works like a texture (of course your object will need to be UVMapped first)

Also, 'the other thread' I'm talking about is to do with a cheap $120 program I recently found that does this sort of thing:

http://forum.thegamecreators.com/?m=forum_view&t=134684&b=3

"Experience never provides its judgments with true or strict universality; but only (through induction) with assumed and comparative universality." - Immanuel Kant
Game maker wannabe
17
Years of Service
User Offline
Joined: 30th Mar 2007
Location: Dorset, ooh arr!
Posted: 5th Aug 2008 01:19 Edited at: 5th Aug 2008 01:21
Thankyou all for your help

Sorry if the first post sounded demanding.

I feel in such a rush to be a know-all/ expert modeller, but i'm in no rush at all, haven't even started my GCSE's yet

@Seppuku Arts - Yes I saw your thread on that but thought not much of it. But now I want it. I will try out the trial.

Woolfman
17
Years of Service
User Offline
Joined: 19th Sep 2007
Location: Cave
Posted: 5th Aug 2008 04:54 Edited at: 5th Aug 2008 05:00
Here is a model that I made in ZBrush some time ago. It has from Right to left. Wireframe/Poly Model/Normal Map/Bump Map/Diffuse Map/
Baked Normal/Diffuse Map.

I have to say that I really like Normal and Bump maps

Model
QuothTheRaven
22
Years of Service
User Offline
Joined: 2nd Oct 2002
Location: United States
Posted: 5th Aug 2008 05:39
A normal map in games is applied as a SHADER, not a regular TEXTURE. The normal map itself is an image but it is applied as a shader. This is very important to realize. There is no "baking" of the normal map into the object in game.

Every vertex drawn in a 3d program has a normal, which is the way the vertex is "pointing." Every triangle drawn has 3 points, aka 3 verticies. If all the normals are pointing the SAME WAY, let's say they're all perpendicular from the triangle, it will be flat shaded. This is why when you see something with the "normals flipped" it looks almost inside out, because the program is pointing all the triangles / normals the wrong direction.

Have you ever seen a sphere which looks blocky versus one that looks smooth? Take these two examples:

Flat shading, bad normals


Smooth shading, good normals


Technically that last one is phong shading, but don't worry about that. Those two spheres have IDENTICAL geometry and textures, but one looks better. The normals for the flat sphere are all pointing straight out from each face. (It may help to imagine a "normal" as an arrow pointing straight up from each corner of the triangle) The normals for the smooth sphere are all angled slightly away from the triangle face, so there is a perceived smoothness in the shading. Put another way, on the bad sphere, where every triangle meets another, the normals aren't pointing in exactly the same direction so there's a clear visual difference in shading. On the smooth sphere the normals at meeting points all point in the same direction, so the same shading / light calculation is applied to that area.

Now back to a normal map. All a normal map does is tell the program how to shade your object, where the perceived areas of highlight and detail are. Just like you can trick the computer into drawing a smooth sphere, you can trick it into drawing veins, scars, little hairs, or any kind of detail that would otherwise be too fine to display on a game model.

Gaurenteed all modern indsutry games use normal map shaders (amongst many others) on their models because it adds a huge amount of detail without much of a performance decrease. Doom 3 was one of the games that did this very well, using extremely detailed normal maps to make very simple models look very complex. It wasn't the first, but it did it well. Since then normal mapping has become an integral part of model design.

Hopefully that all makes sense and helps you get started in the right direction.

Game maker wannabe
17
Years of Service
User Offline
Joined: 30th Mar 2007
Location: Dorset, ooh arr!
Posted: 5th Aug 2008 23:33
Wow, thanks everyone thats brilliant, and has cleared alot up for me thanks.

dark coder
22
Years of Service
User Offline
Joined: 6th Oct 2002
Location: Japan
Posted: 11th Aug 2008 09:01
Going off what QuothTheRaven said, the normal map essentially adds the encoded normal vector to each pixel on the mesh, a default normal map that doesn't alter the lighting uses a value of (0.5,0.5,1.0) which when scaled and biased becomes a normal vector of 0.0,0.0,1.0. The way normal-mapping is typically calculated is in tangent-space(Seppuku Arts showed a world-space normal-map above), this basically means that if my normal is currently facing upward, I need to rotate it down 90 degrees to face forward, so I rotate the sun, or whatever light source(s) around the vertex 90 degrees, then to calculate the lighting I just dot-product the normal-map normal vector with the new vertex-to-light vector.

Login to post a reply

Server time is: 2024-11-25 15:46:58
Your offset time is: 2024-11-25 15:46:58