View Full Version : Displacement and Bump map HELP Please.

10 October 2005, 05:09 PM
Hey, I've posted on this subject several times before but I havent really gotten any help. I know I should be posting this in the texture forum but no one really responds. I'm modeling a town and I'm trying to make the shingles and bricks pop out. Right now they are just flat and thats not very realistic. If any of you know any tutorials or can help my yourself about, bump and displacement I would be very excited and apprecheative. Thanks alot, I'm looking forward to some responses.

10 October 2005, 05:15 PM
Here is one pic of what I'm talking about. From the front the shingles look good, but from the side or any other angle, they look flat and blured. I have a bump map, and I want them to stick out like real shingles would. Thanks

10 October 2005, 05:22 PM
this blurryness depens on mipmaps, you should use a better texture quality option in your game/modeling program to test these things

10 October 2005, 05:35 PM
Yeah, switching to anisotropic texture filtering will help the blurriness a lot. Anisotropic filtering's gains are best seen in a situation like you show here, where you are staring down a nearly-perpendicular plane to the camera.

If you want to actually change the silhouette you will need to use displacement maps for sure. There is a whole ginormous pinned thread here about normal mapping; almost everything in there would apply to displacement maps too. Good luck!

10 October 2005, 08:08 PM
Hey guys, Its not blurry cause of anastropic, its blurry from the side angle. My main point is that I have no clue how bump and displacement maps work. Do you guys know.

10 October 2005, 08:24 PM
Viewing stuff from the side like this is the weakness of bump and normal mapping. It's why non-realtime rendering still uses geometry rather than normal maps (for the most part).

The reason bump and normal maps don't add real depth is that the appearance they give of a high poly model model, works on altering the brightness of different parts of the model's surface, based on the light direction, so that you get additional shadows and highlights and it looks like there's actually bumps on the surface. The one thing it doesn't do though is occlusion, so when you're looking at something straight on, none of the details in the normal map need to occlude any of the other details in the normal map and everything looks fine, but as soon as you look at the model from the side you see that the bumps in the foreground aren't blocking the bumps in the distance, because there's actually no bumps there.

Displacement mapping will work, but displacement maps actually raise or lower your existing geometry away from the surface, so it's not like normal or bump mapping where you're getting the appearance of a higher polygon model but only rendering a low poly model, with displacment mapping you actually have to have all those polys.

One thing that games have only very recently started to use (Unreal Engine 3 supports it), is parallax mapping. Some people also refer to this as "virtual displacement mapping" or "occlusion mapping". The idea with parallax mapping is that aswell as your normal map, you use a height map, which offsets each pixel by a certain amount depending on the camera angle, so that pixels which are closer are offset more than those in the distance, and you get occlusion. It's not a perfect solution, because it still has issues with stuff like silhouettes, but it does handle occlusion alot better than standard bump or normal mapping.

As far as I understand it's not yet supported by the 3D apps (at least not as standard), although I think it may be implemented as a pixel shader, in which case you could probably get it working but only in the viewports (most 3D apps won't render out hardware shaders).

Beyond that i'm not sure what to tell you. Getting depth to textures without massive poly counts, is just one of the issues which game developers are trying to solve, so for now you may just have to live with your roof looking like that.

Hey guys, Its not blurry cause of anastropic, its blurry from the side angle.
That's what people are saying. Anisotropic filtering is a way of stopping the blurryness and preserving the detail in a texture when it's rendered at a steep angle.

10 October 2005, 08:28 PM
I think you misunderstood my post or something. Anisotropic texture filtering will make the "side angle" blurriness go away. It is a more accurate method of texture display than a straight mip map. A mip map just looks at the visible area of a face and then uses that to decide what size texture to display. Side-on angles or faces have a very small visible area, and thus display a very small mip map, resulting in a blurry image. Anisotropic filtering uses a different method and circumvents that problem at the expense of the CPU and GPU.

Here are some quick definitions for you to help you get started:

1 - Bump map - an 8-bit texture that is interpolated to calculate changes in the lighting normal based on the face normal. This is the simplest way of adding extra detail to a given face, and also the least realistic. Lots of older PC titles used these, but they tend to look kind of cheap/lame, IMO. It's all about subtlety and presentation though.

2 - Normal map - a 24-bit texture that stores full 3d vectors for normals at each pixel. Because it is not interpolated and the normals can be generated from a high res model, you can get a very good surface detail effect. Half-Life 2 and DooM3 both put these to use in cool ways.

3 - Displacement map - a 24-bit texture similar to a normal map, but the renderer actually displaces the surface on a pixel by pixel basis to create a very detailed and realistic silhouette. LOTR used these to GREAT effect. AFAIK no games actually use these, because they are pretty hard to render in real-time, and the usefullness is limited because the displacements can not really be used for collisions in an efficient way, so the effects would be limited anyways.

If you are trying to get a bumpy silhouette on your roof, then you need to generate a displacement map for it. I believe displacement maps must be projected onto a surface though, they can't simply be tiled the way a bump map can.

It would do you good to track down some app-specific tutorials about these processes. You will learn better that way, and I don't think anyone will take the time to present a step-by-step walkthrough of a fairly complicated process that is perfectly tailored to your needs. Search the forums and I think you will be able to find some very helpful tutorials!

CGTalk Moderation
10 October 2005, 08:28 PM
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.