PDA

View Full Version : The Maps


Ozoka
08-15-2005, 09:52 AM
whats the difference between normal maps, bumb maps and displacement maps?

BazC
08-15-2005, 10:30 AM
A bump map is used to create a rendering effect to give the illusion of surface detail, it doesn't change the geometry consequently the silouette of your model will not alter.

A normal map has the same effect but it's much more convincing. Bump maps are greyscale and can easily be painted in Photoshop for example. Normal maps need to be generated by special software often by comparing a low resolution model to a high resolution model and generating a difference map.

Both bump and normal maps work independently of mesh resolution when applied to your model.

A displacement map looks just like a bump map but is used to move geometry so it does alter the outline of the model but in most apps the detail which you can displace is dependent on the resolution of your geometry.

Hope that helps! - Baz

Ozoka
08-16-2005, 08:02 AM
can lightwave 8.3 do displacement maps?

ThE_JacO
08-16-2005, 08:16 AM
A bump map is used to create a rendering effect to give the illusion of surface detail, it doesn't change the geometry consequently the silouette of your model will not alter.

A normal map has the same effect but it's much more convincing. Bump maps are greyscale and can easily be painted in Photoshop for example. Normal maps need to be generated by special software often by comparing a low resolution model to a high resolution model and generating a difference map.

Both bump and normal maps work independently of mesh resolution when applied to your model.

A displacement map looks just like a bump map but is used to move geometry so it does alter the outline of the model but in most apps the detail which you can displace is dependent on the resolution of your geometry.

Hope that helps! - Baz

the difference between normal and bump maps doesn't have much to do with the final result's quality.

both maps bend normals during the shading process to give the illusion of a surface different from the geometry, but the limit surface isn't changed (unlike with displacment)

a normal map contains RGB channels, R, G and B represent X, Y and Z of the new normalized vector that will become the normal, that will then be assigned to the texel , it's also known as explicit normal bending (more would need to be said about relative and absolute normals storing, but then the explanation would be even more confusing :) ).
they have the advantage to be univoque and settings independant, they also require nearly no CPU cycles at all to compute, as the RGB channels are dumped directly or almost directly into normal vectors.

the disadvantages are that they are more memory expensive then bump maps, they are not humanly readable and therefore not paintable (they are usually generated computing the difference between a high-res mesh and a low-res mesh) and most important, the normals are an explicit result, therefore you can't change the elevation.
they are basically the result of a baking procedure.



a bump map works in a different way, it representa an elevation map, therefore you can change the "thickness" or distance of the displacment, and once that's computed new normals are calculated at each texel based on its intensity and the intensity of the neighborhood.

the advantages are that bumps can translate directly into displacment, they are humanly readable and paintable, they can be converted into normal maps more easily then the other way around, and the elevation can be changed and even inverted at any time. they are also more memory inexpensive then normal maps as even a 16bit elevation map is smaller in memory footprint then an 8bpc RGB normal map.

the disadvantage is that they require CPU cycles to translate from map into normals (which is why they are shun away in games and normal maps are used in their place).



with a good engine though there's no difference in quality of results between normal and bump maps, none depending from the format at least, the difference between the two is only how they generate the resulting bent normals.

BazC
08-16-2005, 08:35 AM
Thanks for the explanation though I didn't understand all of it lol!

You clearly know a lot more about this stuff than me so I'm certainly not going to argue with you but in my experience bump maps, when viewed up close or at shallow angles show their true nature, fake. Normal maps can still look convincing under these conditions. Of course it may depend on the skill with which the textures and renders are made and maybe the renderer too! - Baz

ThE_JacO
08-16-2005, 08:50 AM
Thanks for the explanation though I didn't understand all of it lol!

You clearly know a lot more about this stuff than me so I'm certainly not going to argue with you but in my experience bump maps, when viewed up close or at shallow angles show their true nature, fake. Normal maps can still look convincing under these conditions. Of course it may depend on the skill with which the textures and renders are made and maybe the renderer too! - Baz

a lot depends from the rendering engine.

if it doesn't average the bent normals between steps in a bumpmap you will get those strairstepping artifacts.
Normal maps computation is commonly averaged between the textels, so it will look smoother, even upon close inspection, in nearly all its implementations currently out there.

it really is down to the shader and to the engine to make the best possible use of the informations, and in the case of bumpmapping also down the map (normal maps tend to be as good as a CPU can make them from surfaces difference, painted bumpmaps often lack the fine details that would make them perfect, resizing up, blurring a bit and then resizing back usually helps a bit in those cases).

BazC
08-16-2005, 09:43 AM
Thanks for the info!

[Sanaloria]Snake
08-16-2005, 03:50 PM
Hi all,

Several tricks are possible to modify a normal map, for example inverting the X, Y or Z axis. If you want (for example) to invert Y (vertical) axis, usually in green levels, just add (or substract) the color 000 128 000 to the normal map (in RGB mode). This means you just invert the green channel. To invert the X axis just do the same with the red (and with the blue for Z).

This works fine for tangent space normal maps, I think it's ok for world space/object space too.



These three modes are different :

- World space is a map regarding the world coordinates, this means if you rotate the object in your world (your scene), the shading of its surfaces will NOT change ! because the normals are said to be always turned to the same direction because of the world space normal map.

- Object space is nearly the same. In fact you are actually allowed to rotate the object but NOT TO DEFORM IT (with bones for example, or displacement maps), or you will get shading bugs (the same as above).

- Tangent space is the better of all, even if it needs some additionnal CPU time (but not much). You can move, rotate and deform the object as you wish. Note the main color of tangent space is blue because 128 128 255 is orthogonal to your surface (it's your triangle's normal).


There is several shaders that can render normal maps in Lightwave. The well known NormalMapShader (http://amber.rc.arizona.edu/lw/normalmaps.html) from Marvin Landis can display Object Space only but a modeler plugin can create a tangent space and world space normal map from geometry. But the only you can render in Layout is object/world space (i don't remember which of them). This plugpack is free.

Another plugin is Microwave (http://www.evasion3d.com/mw_lw_intro.html) that can do baking with normal maps (and maybe diffuse ?). But it's a commercial plugin. It can render world and tangent space, but I have a demo that render several bugs (maybe this bug is only on my computer ; in fact I don't know of anyone who have a demo since they removed it a couple of monthes after I downloaded the demo).

Another cool and free solution is the great TB_ShaderTree (http://home.att.ne.jp/omega/tabo/3dlabo/p_lwp.html), a nodal shader for lightwave. Its last version can work with bump mapping DIRECTLY USING THE NORMALS. I made a tree that can render normal maps quite well, in tangent space. I think several modifications can make the world space/object space possible quite easily, if someone is interested in this tree I can upload it.

But don't worry, Lightwave 9 is announced with normal map support, specially those from ZBrush (does both world/tangent).


Lightwave 8.3 can do displacement maps, in fact I think Lightwave 5 did this already ... It's really cool :)

Bye
Snake

Ozoka
08-17-2005, 04:46 AM
are there any tutorials or plugins i need to use displacement maps

[Sanaloria]Snake
08-17-2005, 11:46 AM
no it's integrated in lightwave, read the help I think there is a chapter about displacement maps. Look for weight maps too. Those a fun for similar stuff.

Ozoka
08-18-2005, 07:17 AM
well all it seems to talk about is script when it comes to displacement maps and anybody shoot me in the right direction

gerardo
08-19-2005, 02:52 AM
Maybe you are confusing it with this nice Normal_Displacement plugin (by Mathias Wein) (http://lynx.aspect-design.de/plugins/normal_displace_info.htm).
About Normal&Displacement maps creation, check this tutorial (http://66.70.170.53/Ryan/nrmphoto/nrmphoto.html) to make normal maps from real photographed objects (from there you can also convert it in a DisplacementMap), a very ingenious technique, I think :)



Gerardo

Ozoka
08-19-2005, 06:06 AM
u just confused me...i thought a displacement maps was just like a bumb map but it deforms the mesh...so i could use the black and white values to change an object..example like put scar on a models face..kinda like zbrush

ThE_JacO
08-19-2005, 06:12 AM
a displacement map is, like a bump map, an elevation map.

the difference is that the bump will work out normals to simulate the elevation change, a displacement map will elevate points along their normals according to the map.

you were probably thinking in the right terms.

the only gotcha is that displacement maps, with an engine that doesn't have ways to tessellate a mesh adaptively like LW's, need ridiculously dense geometry or you'll have to accept the compromise of a displacment map that only messes around with the geometry you already have.

[Sanaloria]Snake
08-19-2005, 10:31 AM
I think the plugin gerardo linked here is a common displacement map plugin (using grey scale pics), the "normal" part means the vertice are moved along their normal, as ThE_JacO said just above.

The bump map is just a shading modification when you render the model, like the normal map. The displace is a real deformation of your mesh.

gerardo
08-20-2005, 03:05 AM
u just confused me...i thought a displacement maps was just like a bumb map but it deforms the mesh...so i could use the black and white values to change an object..example like put scar on a models face..kinda like zbrush



I suppose what is confusing you is that the same words are used (bump, normal) in different tools and with different connotations in each one:


Bump Displacement and Bump Surface (btw, both use the same map)

The Bump Surface is like David MERLIN has said, a shading modification (the map applied here is a surface property and it doesn't modify the position of the object's vertexes), while the same map used as Bump Displacement, in fact displaces the vertexes of the object. It's said that the direction of this displacement is set by the normal of the object vertexes, however sometimes gave the impression that the vertexes displacement is just made from the object center toward out.


Normal Displacement and Normal Maps

LW also has Textured Displament and Normal Displacement, both are different ways to work with Displacement Maps. The Textured Displament moves the vertexes taking into account an axis (XYZ direction), while Normal Displacement displaces vertexes according to object's normals. Reason why a Normal Displacement Map shouldn't be confused with a Normal Map, which is (as the Bump map of a surface) a shading modification; a refined shading modification that can change based on the light and object's orientations&deformations according to object normals.



Gerardo

CGTalk Moderation
08-20-2005, 03:05 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.