Creating normal maps from diffuse map

Started by
7 comments, last by spek 14 years, 10 months ago
Hi all, I'm looking for a program that can take in the texture for a model (the diffuse map) and create a normal map, specular map, and displacement map. The only program I can find (which seems to do it perfectly btw) is PixPlant : http://www.pixplant.com/ The only problem is that it costs $175 (although it can be used as a stand alone program, and not just a photoshop plugin) Does anyone know of a free program that can do the same? It cannot be a plugin for photoshop as I do not have photoshop. Ideally I want just a drag texture here, click here and maps are generated. Most likely too much to ask, but no harm in it :) I tried : MapZone but can't get that to load a texture, just generate procedural ones. ATI's normal mapper, but I can't get it to work. and xNormal but that doesn't seem to generate good results (although maybe i've not looked into it enough to figure out the right parameters) If no-one knows of any programs out there, does anyone know how I would go about creating normal, specular, and displacement maps from a diffuse map/texture (not sure about the terminology on that one) Thanks! [Edited by - p0is0n on June 4, 2009 4:38:14 PM]
Advertisement
CrazyBump is pretty damn awesome, but isn't free.
I'm moving this over to Graphics Programming and Theory.

Wielder of the Sacred Wands
[Work - ArenaNet] [Epoch Language] [Scribblings]

Quote:Original post by p0is0n
If no-one knows of any programs out there, does anyone know how I would go about creating normal, specular, and displacement maps from a diffuse map/texture (not sure about the terminology on that one)
Note that generating normal/displacement/specular maps from a diffuse map generally yields very poor results.

Normal and displacement maps are best generated from a high resolution (and more detailed) copy of the 3D model, while specular maps should be artist-created at the same time as the diffuse map.

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]

@MJP
CrazyBump does look pretty awesome. Plus it is a lot cheaper. Thanks for the link. If no-one comes back with any others that are cheaper or free I might have to go for it.

@ApochPiQ
Thanks for moving it. I wasn't quite sure where to post this.

@swiftcoder
Thanks for the info. However at the moment I am willing to sacrifice quality in the normal and displacement maps for simplicity and progress. As for the artist creating the specular map. I understand why it should be that way but I am using free models and most of them do not have this data.

I think that xNormal was making the normal map from the model itself as swiftcoder said it should be made, but I ended up with garbage results. Maybe I put some wrong values in, or the normal map needs to be wrapped to coincide with the diffuse texture coordinates ... idk. Either way even following a tutorial I couldn't get it to work.

Thanks for the replies!!
I use ShaderMap Pro. I think it's $20 or something.

http://shadermap.renderingsystems.com/
ShaderMap Pro looks pretty good. Plus the price is about right :)

Although I really did like the look of CrazyBump it could even give me a model preview on 3ds models, strange as it wasn't listed as a supported format, but a good strange lol. Just a shame it costs $100 (well $99 but still).

I'll probably get ShaderMap Pro in the morning. I know the command line version is free, but I've never liked command line programs.

Thanks a lot for all your help!!
As swiftcoder says, creating a normal map from a diffuse map isn't the ideal solution. That being said, I have ShaderMap Pro and it does a fair job of creating a normal map and specular map from a diffuse map or photo (it creates height maps and ambient occlusion maps as well). As sybixsus says, it's about $20 ($19.95 actually).
For quick&dirty maps, I ussually convert the diffuseMap to a grayscale image. You can do this with MS Paint... Now you have a heightMap, sort of (certainly not correct in all cases, but hey, don't use diffuseMaps at all in that case!). Anyhow, white=high, black=low, gray=middle.

Maybe you need to invert the colors for a better representation. If you have somewhat better paint tools (Paint Shop Pro, Photo Shop, or try the free Gimp/Paint.NET), use "Contrast Enhancement" to make the height differences stronger or softer. If your normalMap is very noise, take down the contrast. Also applying a (Gaussian) blur on the heightMap often helps reducing artifacts. If you are really into creativity, you can also adjust the grayscale map by hand of course, or add a fine "grain" for small details.

When your heightMap is ready, there are several (free) tools that convert it to a normalMap. Look at the nVidia website for a Photoshop plugin. I thought ATI has a "height to normalMap convertor" as well. Plus I found another free tool somewhere on a Doom3 development forum.


As for specular maps, ussually the diffuse grayscale map works here as well. Again, use contrast enhancement, blur, de-noise and/or other filters to get a proper map. Really, you don't have to be an artist to create somewhat proper maps. On the other hand, don't expect superb normalMaps either. You often need a creative hand for creating the more complex maps, and the free tools might miss some features in specific cases.

Greetings,
Rick

This topic is closed to new replies.

Advertisement