Mon, Dec 23, 8:46 AM CST

Renderosity Forums / Poser - OFFICIAL



Welcome to the Poser - OFFICIAL Forum

Forum Coordinators: RedPhantom

Poser - OFFICIAL F.A.Q (Last Updated: 2024 Dec 23 8:11 am)



Subject: Resolving bump map confusion.


AntoniaTiger ( ) posted Tue, 11 March 2008 at 4:44 AM · edited Wed, 11 December 2024 at 11:46 PM

I don't know if it continues in Poser 7, but Poser 5 and Poser 6 have provision for two different sorts of Bump Map. Bump is a greyscale, and works in the firefly render engine. Gradient Bump, at least according to the manual, is a compatibility mode which allows use of P4 bumpmaps when rendering the the P4 render engine. But what do bump maps actually do? I've seen various descriptions, but some of those descriptions seem broken. For instance, changing the direction of the normal. You have the normal vector, a direction in 3D space, and to shift that you need two numbers, whether polar coordinates or local cartesian. And a greyscale only gives you one. So is there a more technical description, preferably not depending on math equations, which can tell us what actually happens. (And why do people just greyscale the texture and use that as a bumpmap?)


ghonma ( ) posted Tue, 11 March 2008 at 7:29 AM · edited Tue, 11 March 2008 at 7:31 AM

Quote - For instance, changing the direction of the normal. You have the normal vector, a direction in 3D space, and to shift that you need two numbers, whether polar coordinates or local cartesian. And a greyscale only gives you one.

They don't change the normal directly. Instead the image you load for the bump acts as a height map, ie the renderer uses the 2D pixel field and calculates slopes between adjacent pixels. This gives you a vector that you can use to reproduce the same 'bump' in the set of normals of your surface. You control the amount of bump by controlling the magnitude of this vector.

As for gradient bump, that's just poser's way of doing normal maps. Normal maps are colored vector maps, with each pixel (RGB) storing the vector (xyz) of a normal. The renderer then just reads the normal from the file and pastes it on the surface. This way you get the same result as a bump but with far less calculation. The limitation being that since the vector is fixed, you cant change the amount of bumpiness easily.

People greyscale textures because people are lazy, even though the map you get this way is often wrong/inverted.


EnglishBob ( ) posted Tue, 11 March 2008 at 7:31 AM · edited Tue, 11 March 2008 at 7:32 AM

Gradient Bump is intended to take the old Poser 3 / 4 style .BUM maps. I don't believe these are quite the same as normal maps, since normal mapping requires three colour channels and .BUMs have only two. The blue channel is unused; or rather, it produces unusual results if you hack one to add stuff to it. There is a lot of confusion over bump maps. It is basically a "perturbation" in the surface normal, which gives the illusion of surface features; or to put it another way, it's affecting the way the lighting hits the surface. Any more detail would probably require equations, and having spent last evening trying to help my son with his maths homework, I feel unwilling to go there.

Quote - And why do people just greyscale the texture and use that as a bumpmap?

I deleted my first answer since it would have required a language advisory. :) Possible answers are: - Because "everybody else" does it, so it must be right. - Because it doesn't look unreasonable, in some circumstances, so it must be right to do it all the time. - Because they want to fill up your disk with useless files. :) ----- Edited to say: Bah. ghonma typed faster than I did. :P


ghonma ( ) posted Tue, 11 March 2008 at 7:34 AM

Quote - I don't believe these are quite the same as normal maps, since normal mapping requires three colour channels and .BUMs have only two. The blue channel is unused; or rather, it produces unusual results if you hack one to add stuff to it.

I suppose they are local normal maps, ie instead of storing the full 3D normal they just store the delta normal in local space. In which case you wouldn't need the 'z' component cause its not as if you can move a normal perpendicular to the surface.


jancory ( ) posted Tue, 11 March 2008 at 8:15 AM

so what's the proper way to make a bumpmap?


lost in the wilderness

Poser 13, Poser11,  Win7Pro 64, now with 24GB ram

ooh! i guess i can add my new render(only) machine!  Win11, I7, RTX 3060 12GB

 My Freebies



Dizzi ( ) posted Tue, 11 March 2008 at 8:51 AM

The difference between regular bump and gradient bumps is that the later are generated according to special light conditions and thus will not really reflect your scene's current lighting. P4 was kind of faking real bump rendering using those precalculated gradient bumps.



ghonma ( ) posted Tue, 11 March 2008 at 9:03 AM

Quote - so what's the proper way to make a bumpmap?

IMO if you do want to base it on your color map, you should separate it out into various things like pores, pimples, wrinkles etc. Then you correct/invert them to the right values of bump, layer them and then test and adjust the layers till it looks ok in a render.

Or you can use only the fine wrinkles and pores of your color map as both of those are easily separated with the high pass filter. The rest of the larger details can be painted by hand. If it's not a human or you dont have a lot of refs to work from you can generate a basic noise/pore map in your texturing tool and do everything else by hand.

All depends on how much time/effort/quality you can afford of course, but you will generally get a much better result then just taking a texture and desat-ing it.


stewer ( ) posted Tue, 11 March 2008 at 11:58 AM

Quote - Gradient Bump is intended to take the old Poser 3 / 4 style .BUM maps. I don't believe these are quite the same as normal maps, since normal mapping requires three colour channels and .BUMs have only two.

The blue channel in a normal map is redundant. Since normals are 'normalized' vectors of a length of 1, you can derive the absolute value of the third coordinate from the other two, and it is positive by definition. So blue = sqrt(1 - redred + greengreen). The reason the third coordinate is saved in a normal map is because calculating it would be too expensive for real-time use like in games (which is the main application for normal maps - if you do quality rendering, you'll get much better results from displacement maps).

The main difference between normal maps and gradient maps is how they're being used - gradient bumps are being added to the existing surface normal where normal maps completely replace them.


Angelouscuitry ( ) posted Fri, 14 March 2008 at 10:44 AM

Privacy Notice

This site uses cookies to deliver the best experience. Our own cookies make user accounts and other features possible. Third-party cookies are used to display relevant ads and to analyze how Renderosity is used. By using our site, you acknowledge that you have read and understood our Terms of Service, including our Cookie Policy and our Privacy Policy.