Archived

This topic is now archived and is closed to further replies.

MessageBox

Normal maps?

Recommended Posts

This probably seems like a stupid question. Where are you supposed to get normal maps for bumpmapping? I''ve read that you''re supposed to "encode the normals" into a texture. Where do you get these normals from?

Share this post


Link to post
Share on other sites
There are couple of sources.

1) Artists. They can create textures and normal maps for models.
2) Generated in process of Hi-poly mesh -> low poly mesh + bump map (used in DooM3)
3) For some simple testing you can generate them from color textures (some efiltering -> convert to heightmap -> convert to normal map).
4) ?

You should never let your fears become the boundaries of your dreams.

Share this post


Link to post
Share on other sites
Manually drawing normal maps is very tricky, it is much easier to draw a greyscale heightmap and have a small script convert it from this to an RGB normal map.

I think nVidia has a photoshop filter/pluging to do this on their site, but its not difficult to do the conversion yourself (perhaps even at level load time if you want).

Share this post


Link to post
Share on other sites
quote:
Original post by OrangyTang
I think nVidia has a photoshop filter/pluging to do this on their site, but its not difficult to do the conversion yourself (perhaps even at level load time if you want).


Don''t EVER do anything at load time that you could just as easily do in a pre-process. There''s simply no reason for it, and it''ll make your load times longer.

There are typically three ways that you can make a normal map:

1. Paint it by hand. This is rarely practical.

2. Paint a grayscale texture and use the nVidia Photoshop plug-in to make a normal map out of it.

3. Make a high-res model and a low-res model. Then write a tool that creates a normal map based on the high-res geometry mapped onto it''s low-res counterpart. This is quite a bit trickier, but can produce extremely nice results. I believe there are also some 3rd party tools out there that can do this for you.

-John

Share this post


Link to post
Share on other sites
quote:
Original post by Teknofreek
Don''t EVER do anything at load time that you could just as easily do in a pre-process. There''s simply no reason for it, and it''ll make your load times longer.



I''d mainly agree.. but an 8bit greyscale is much smaller than an RGB normal map, so if you''re pushed for space it might be an idea. Also its nicer if during development you don''t have to worry about the post process and can just see the changes straight away.

Share this post


Link to post
Share on other sites
quote:
Original post by OrangyTang
I''d mainly agree.. but an 8bit greyscale is much smaller than an RGB normal map, so if you''re pushed for space it might be an idea. Also its nicer if during development you don''t have to worry about the post process and can just see the changes straight away.


Agreed, and calculating the normal map with something like a 3x3 filter kernel aren''t exactly a time consuming operation. It might even be faster since you trade CPU-time for harddisk bandwidth and at load time the harddisk bandwidth is probably the more scarse resource..

Share this post


Link to post
Share on other sites