Normal maps?
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?
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.
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.
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).
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).
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
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.
There is a plugin for photoshop which is quite good.
http://developer.nvidia.com/object/ps_texture_compression_plugin.html
or a command line proggy
http://developer.nvidia.com/page/tools.html
http://developer.nvidia.com/object/ps_texture_compression_plugin.html
or a command line proggy
http://developer.nvidia.com/page/tools.html
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..
This topic is closed to new replies.
Advertisement
Popular Topics
Advertisement