Normal mapping
by Erik Madison · in Torque Game Engine Advanced · 08/29/2004 (3:39 am) · 8 replies
While looking for info, I ran across a forum post of interest. I'm copying it here, in case the original doesn't last. Credit goes to someone registered as HeliosDoubleSix.
//--------------------------------------------------
Normal Maps like in Unreal Engine 3
I have collected a bunch of resources on normal mapping like used in unreal engine 3, doom 3 and Farcry.
For those curious about normal mapping
For those that haven't seen Unreal Engine 3 yet
unrealtechnology.com/html/technology/ue30.shtml
Read this one before doing any of the other tutorials this tutorial will help you to understand what a normal map is
www.monitorstudios.com/bcloward/tutorials_normal_maps1.html
Zbrush 2 and Normal Maps
209.132.69.82/zbrush/zbrush2/displacement.html
ZbrushCental Forum Normal Map posts
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011260
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=015376
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011757
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011894
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=4&t=000789
ATI Tools
www.ati.com/developer/tools.html
www.ati.com/developer/sdk/radeonSDK/html/Tools/ToolsPlugIns.html
NVidia Tools
developer.nvidia.com/page/tools.html
Drones tutorials
www.drone.org/tutorials/normal_maps.html
www.drone.org/tutorials/displacement_maps.html
www.drone.org/tutorials/displacement_maps_mental.html
www.drone.org/tutorials/rayDisplace_workarounds.html
www.drone.org/tutorials/rayDisplace_mental.html
Tutorial on creating Normal Maps in 3DS Max
www.pinwire.com/article82.html
Generating Normal maps for wall textures with Cinema
members.shaw.ca/jimht03/normal.html
Lightwave and normal maps
amber.rc.arizona.edu/lw/normalmaps.html
FarCry game that uses normal maps
www.crytek.com/screenshots/index.php?sx=polybump&px=poly_02.jpg
Maps made using a program called PolyBump which generates normal maps from geometry, optionally including height-map bump maps. Includes 3ds max and Maya plugins. Includes code for integrating the effect into your real-time 3D engine. Includes standalone viewer.
www.crytek.de/polybump/index.php?sx=polybump
A PC Program for dealing with them
www.mankua.com/
Mike Bunnell's modification of ATI's tool that uses OBJ files instead of ATI's NMF format. Optionally creates a sub-division surface for you. Creates displacement maps. Supports 16-bit TIFF. Etc.
subd.4t.com/normalmapper/
ORB is another normal map generator, converts 3D models into normal maps. Also generates displacement maps, diffuse maps, vertex-color maps. Imports ASE/OBJ/LWO formats. Previewer included.
www.soclab.bth.se/practices/orb.html
Texporter can create a normal map from high-res geometry, as long as the UVs are there. Although I should point out it is a world-space normal map, thus you shouldn't rotate or deform the final model that has the normal map on it, because the shading will be horrible. World space normals are best for static objects in your game.
www.cuneytozdas.com/software/3dsmax/#Texporter
Gary Pate (a.k.a. Ionized) has a great tutorial using 3ds max and ATI's normal mapper.
www.ionization.net/tutsnorm1.htm
XSI normal mapping
be3d.republika.pl/howto_d3_normalmap.html
Blender normal mapping
reblended.com/www/alien-xmp/Tutorials/NormalMap/NormalMap.html
Edit: hyperlinked for your clicking pleasure
(continued next post)
//--------------------------------------------------
Normal Maps like in Unreal Engine 3
I have collected a bunch of resources on normal mapping like used in unreal engine 3, doom 3 and Farcry.
For those curious about normal mapping
For those that haven't seen Unreal Engine 3 yet
unrealtechnology.com/html/technology/ue30.shtml
Read this one before doing any of the other tutorials this tutorial will help you to understand what a normal map is
www.monitorstudios.com/bcloward/tutorials_normal_maps1.html
Zbrush 2 and Normal Maps
209.132.69.82/zbrush/zbrush2/displacement.html
ZbrushCental Forum Normal Map posts
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011260
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=015376
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011757
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=1&t=011894
www.pixolator.com/zbc-bin/ultimatebb.cgi?ubb=get_topic&f=4&t=000789
ATI Tools
www.ati.com/developer/tools.html
www.ati.com/developer/sdk/radeonSDK/html/Tools/ToolsPlugIns.html
NVidia Tools
developer.nvidia.com/page/tools.html
Drones tutorials
www.drone.org/tutorials/normal_maps.html
www.drone.org/tutorials/displacement_maps.html
www.drone.org/tutorials/displacement_maps_mental.html
www.drone.org/tutorials/rayDisplace_workarounds.html
www.drone.org/tutorials/rayDisplace_mental.html
Tutorial on creating Normal Maps in 3DS Max
www.pinwire.com/article82.html
Generating Normal maps for wall textures with Cinema
members.shaw.ca/jimht03/normal.html
Lightwave and normal maps
amber.rc.arizona.edu/lw/normalmaps.html
FarCry game that uses normal maps
www.crytek.com/screenshots/index.php?sx=polybump&px=poly_02.jpg
Maps made using a program called PolyBump which generates normal maps from geometry, optionally including height-map bump maps. Includes 3ds max and Maya plugins. Includes code for integrating the effect into your real-time 3D engine. Includes standalone viewer.
www.crytek.de/polybump/index.php?sx=polybump
A PC Program for dealing with them
www.mankua.com/
Mike Bunnell's modification of ATI's tool that uses OBJ files instead of ATI's NMF format. Optionally creates a sub-division surface for you. Creates displacement maps. Supports 16-bit TIFF. Etc.
subd.4t.com/normalmapper/
ORB is another normal map generator, converts 3D models into normal maps. Also generates displacement maps, diffuse maps, vertex-color maps. Imports ASE/OBJ/LWO formats. Previewer included.
www.soclab.bth.se/practices/orb.html
Texporter can create a normal map from high-res geometry, as long as the UVs are there. Although I should point out it is a world-space normal map, thus you shouldn't rotate or deform the final model that has the normal map on it, because the shading will be horrible. World space normals are best for static objects in your game.
www.cuneytozdas.com/software/3dsmax/#Texporter
Gary Pate (a.k.a. Ionized) has a great tutorial using 3ds max and ATI's normal mapper.
www.ionization.net/tutsnorm1.htm
XSI normal mapping
be3d.republika.pl/howto_d3_normalmap.html
Blender normal mapping
reblended.com/www/alien-xmp/Tutorials/NormalMap/NormalMap.html
Edit: hyperlinked for your clicking pleasure
(continued next post)
About the author
#2
EDIT: They removed the bumps from the package, since they didnt need them anymore. I've emailed the group, hoping they still have copies.
08/29/2004 (5:09 am)
And here is the most awesome link of all www.quake.cz/winclan/qe1/ These guys are remaking the original quake textures from scratch with bumps, normals, etc. They are creditware, so you are welcome to use them with only a mention of thanks in your credits. I personally have always hated the quake texture look, but I really want some good basic bricks and wood for the stronghold mission, and I can't see remaking all of that in 3dsmax just to get a good normal.EDIT: They removed the bumps from the package, since they didnt need them anymore. I've emailed the group, hoping they still have copies.
#3
08/29/2004 (11:32 am)
Great stuff, thanks for sharing it Erik!
#4
08/30/2004 (11:27 am)
Wow, nice references, you might want to submit that as a resource. Good work.
#5
11/26/2005 (6:38 pm)
Question: How to make a normal _ bump from say an existing player skin?
#6
You can fake a bumpmap from an existing diffuse map pretty easily using some photoshop trickery, but it may not look very good. (You basically use something like an edge detection algorithm to get a vague notion of height deltas and turn that into a normal/bump map.)
11/26/2005 (9:17 pm)
Good info to put in the TSE section of TDN. :)You can fake a bumpmap from an existing diffuse map pretty easily using some photoshop trickery, but it may not look very good. (You basically use something like an edge detection algorithm to get a vague notion of height deltas and turn that into a normal/bump map.)
#7

plug-in found here: http://developer.nvidia.com/object/photoshop_dds_plugins.html
"This installer contains two plug-ins. The first creates normal maps from height maps for per pixel rendering. The other is a DXTC texture compression plugin for Adobe Photoshop that allows you to open and save .dds files in RGB format. It reads and writes .dds files compressed or uncompressed."
Hope that helps a bit! :D
11/26/2005 (10:14 pm)
While not flawless, nVidia has a pretty spiffy photoshop plug-in for making normal maps. You're supposed to use a heightmap or sorts, but i've run normal textures through it before with rather good results:
plug-in found here: http://developer.nvidia.com/object/photoshop_dds_plugins.html
"This installer contains two plug-ins. The first creates normal maps from height maps for per pixel rendering. The other is a DXTC texture compression plugin for Adobe Photoshop that allows you to open and save .dds files in RGB format. It reads and writes .dds files compressed or uncompressed."
Hope that helps a bit! :D
#8
11/27/2005 (12:16 am)
Yea thanks. I have been using paint shop pro and Fireworks. Time to get Photoshop.
Torque Owner Erik Madison
sparks.discreet.com/download...fm?f=2&wf_id=83
Ben Lipman's gNormal plugin goes in the bump channel of a material, allowing you to use your normal map in the 3ds max renderer.
www.maxplugins.de/max5.php?search=gnormal
Nvidia has a tool they're about to release called Melody. It can create the low-res model automatically (seems pretty good, as far as auto-LOD is concerned, but of course never as good as manual) and they wrap the whole thing in a GUI.
Some opinions here:
dynamic.gamespy.com/~polycount/ubb/Forum8/HTML/002595.html
developer.nvidia.com/docs/IO/4449/SUPP/GDC2003_AllThePolygonsYouCanEat.ppt
developer.nvidia.com/docs/IO/4449/SUPP/GDC2003_AllThePolygonsYouCanEat.pdf
Peter Watje's Object Texture plugin generates a normal map from geometry and places it in a material, so you can render it with the max renderer. However, the map is tied to actual geometry in the scene, or cached in the material, but it cannot be exported into a bitmap. I just thought I'd provide a link anyhow, since it comes with full source code.
www.max3dstuff.com/max4/matObjectTexture/help.html
Mankua's Kaldera is the best so far in my opinion. Not just because I helped them develop and test it, but because it is so flexible and works right in max. Lots of control over how the normals are generated. Bakes several channels at once... diffuse, lit, lighting only, normals, height, alpha, etc. Bakes multiple objects into one, including atmospherics. Comes with a handy normal map texture plugin, for using normal maps in the bump channel with the scanline renderer (also works in Brazil a friend tells me).
www.mankua.com/kaldera.cfm
ATI and NVIDIA each use different normal map formats with their graphics chips.
Basically ATI expects the green channel to point the normal upwards, while NVIDIA expects it to point downwards.
The MetalBump shader in 3ds max uses the NVIDIA method.
Mankua's Kaldera has the option to output either ATI or NVIDIA format. I'm not sure about the other tools.
One sure-fire method to fix a map that's incompatible with your viewer is to simply invert the green channel in your image editor of choice. By inverting I mean the black pixels should be white, and the white pixels should be black.
Polycount thread containing tips about painting/editing normal maps.
dynamic.gamespy.com/~polycount/ubb/Forum8/HTML/002497.html
Polycount thread explaining World Space vs. Object Space vs. Tangent Space.
dynamic.gamespy.com/~polycount/ubb/Forum8/HTML/001876.html
Polycount thread dissecting Doom III's use of normal mapping.
dynamic.gamespy.com/~polycount/ubb/Forum8/HTML/000441.html
Digital Sculpting Forum threads about normal mapping/displacement extraction.
cube.phlatt.net/forums/spiraloid/viewtopic.php?TopicID=9
cube.phlatt.net/forums/spiraloid/viewtopic.php?TopicID=395
cube.phlatt.net/forums/spiraloid/viewtopic.php?TopicID=581
AMP II A game engine that uses normal maps
www.4drulers.com/ampdownload.html
www.4drulers.com/gore/sshots/player_wip10.jpg
These links and info have been gathered from all over, take them and repost if you like.