PDA

View Full Version : The impossibility of combinig weight maps



Thomas M.
05-14-2007, 01:01 PM
I have a normal map (zBrush, blueish type) and bump maps (procedural) turned to a normal map (Info node, subtract, normalize). I can't bring them together (add node) without the brightness changing. Both maps on themselves work great, but together the surface seems to get brighter. This happens also in areas where the zBrush normal map doesn't carry any information (RGB 128,128,255).

Also I can't find a proper way to blend in parts of the zBrush normal map. E.g. a weight map plugged into the vector scale node renders all parts of the object black where the weight value is 0%.

Why doesn't the mixer node work with vectors?

Any clue would be welcome.

The tip with combing both maps with the add node and scale it down 50% afterwards doesn't bring any better results. The surface still seems to be brighter than without the combined maps.

Cheers
Thomas

Thomas M.
05-14-2007, 01:17 PM
Sorry, it's of course NORMAL maps I want to combine.

Dodgy
05-14-2007, 02:18 PM
Normal maps have to be normalised, that is R^2+G^2+B^2=1 so if you're going to add two normal maps and not have them go brighter, feed the add node into a Normalise node(vector).

Thomas M.
05-14-2007, 03:34 PM
Thanks dodgy,

works in some ways.

Problem is I can't change the intensity afterwards. Whether I use the multiply or scale node, the normal (bumpiness) stays the same. Only if I use 0% or 0 vector my object turns black, otherwise I can use any input, the bumpiness stays the same.

Something is a bit wrong in LW the way normal maps can be combined. Image maps, bump maps and weight maps are wonderful to work with and easy to combine, but normal maps are horrible. Alone mask of an area without UVs seems to be impossible. The border between UV mapped polygons and polygons missing in the UV map is always visible, even if the intensitiy of the normal map is 0%. Probably a bug.

Any more guess of how this stuff easily works? BTW, the normalize way Dodgy described reduces the amount of bumpiness each normal map on it's own would show on the mesh. I'm really looking for a true ADD way which preserves the influence of each map. Hard to achieve? So far I would say yes.

Cheers
Thomas

Dodgy
05-14-2007, 04:16 PM
The problem is normal maps don't work the same way as other maps. They're vectors which are added to the surface normal to get the shading. So it's a bit more complex than just adding things together.

Dodgy
05-14-2007, 04:56 PM
You can Increase the Amplitude of a map using the setting within the normal map panel. To mix two maps, you'll have to do a

weightmap*NMap1+ (1-weightmap)*NMap2

Thomas M.
05-14-2007, 11:33 PM
What would be the 1? Smoothed normal subtracted by the weight? Or is it the inverted the weight map? Combining in this sense would be more like stitching them together with a overlapping area, rather than getting the maximum bumpiness from each map. Why does it work with bumps, but not with normal maps?

Probably my question is something which could/should be explained in the manual. As said before, working with any map in LW node editor is a pleasure, working with normal maps is hell.

Thanks so far Dodgy.

Dodgy
05-15-2007, 03:19 AM
It's called a linear interpolation, as you fade in one normal map with a weight map, replacing another normal map's values. It's the only way to mix two normal maps correctly and try and keep the most important details of each.

I'd be interested if you've found another package which allows you to mix normal maps in ways which give you perfect details without averaging.

It works with bumps because using bumps is taking one mountain range and dumping it on another, you get the heights added together. Normal maps are directions, so just adding them makes the surface brighter, because you have a larger normal which the 3d package uses to calculate the shading on. Hence you have to normalise it back to the right length.

Thomas M.
05-15-2007, 04:45 AM
Thanks for the explanation. Makes sense.

Although I don't like what I hear or better what results out of this is.

My thought: As the normal map is kind of a fake displacement shouldn't there be a way to transfer the normal map in some kind of displacement/bump map, combine them in which way ever and transfer them back into a normal map or leave the result as a bump map? I can transfer the procedural bump maps from LW into a normal maps, so the other way round should be possible or do I still miss a point?

dpont
05-15-2007, 07:03 AM
Normal to Bump is something like:
(Vector) Bump = SmoothedNormal - ModifiedNormal

Denis.