Prevent a bump map from creating depressions

  • How can I make sure a bump map does not go below the surface? For instance, if I create a bump map using something like noise, clouds, or turbulence. How can I prevent it from creating depressions in the surface? All I want is raised areas from the surface upwards or outwards.

    Unless I'm getting things confused again, because 127, 127, 127 is 0 or the surface correct? So anything darker than 127, 127, 127 will cause an indentation right?

  • Assuming Firefly/PoserSurface...

    With the Displacement value in the PoserSurface set to a positive value, say 1", then my understanding is that plugging any node that produces only positive (or zero) output values into it will give you only displaced areas raised above the actual geometry surfaces, no depressions. If you're not sure whether your bump map produces negative values then you could insert a Math_Functions>Abs (which makes any negative input values positive) or Math_Functions>Clamp node (which makes any negative input values zero) to prevent negative values.

    However, if you're using the Bump channel then I don't think that the question is really valid (assuming I understand correctly the way that bump works... and I still have my doubts about that! ;o). Since the surface isn't actually displaced then no part of the surface is really raised or depressed - it's simply the surface normals being modified. I did some quick tests in PP2014 and it appears that (for a given 'bump map' and a fixed Bump value in the PoserSurface) the absolute values being fed into the Bump channel are unimportant! It's the relative values that are important. E.g. if you have a node that produces an output in the 0 to +1 range, and you plug it into Bump via Input_1 (set to 1.0) of an intermediate Math_Functions>Add node, then regardless of what you set the Input_2 value to (positive or negative) the render will be the same.

    Hopefully that makes some sort of sense, and hopefully it's correct...

  • Yes that made sense, and I am using the Bump Channel.

    Possibly I am getting an old post from BB about displacement confused with Bump. The reason I asked though is the following behavior that I was witnessing in Poser Pro 2014 Game Dev when I posted the other day:

    I was working on a top and trying to add basically horizontal stretch marks across it. I used a Turbulence node and plugged it into the Bump Channel with a pretty low setting (.003). This gave me the effect that I wanted, but it also seemed to be revealing the underlying skin of the person wearing the shirt in places.

    However, I was also playing with transparency on the shirt so I can't say that the Bump Map is purely at fault for that.

    That is why I posted to ask though, to make sure that the Bump Map was not in fact causing negative displacement.

  • Using the Bump channel shouldn't make any difference to what 'pokes through', so I'd guess what you're seeing is due to the Transparency.

    Regarding mid-grey on a bump-map being the surface (or 'no bump') I do remember reading that about bump images, some time way back. It's only when I was posting here, and trying some tests, that I realized that it doesn't seem to matter...

  • Poser Ambassadors

    I'm away from home with only an iPad so I can't demo or even link you to other threads. But I wanted to agree that the desired effect of a bump map is not altered by an non zero average across the field. Mid gray average, or black average, either way a bump effect has only to do with modulating normals and cannot change poke through.

    However, you can get artifacts by using the wrong neutral value, I.e. Mid gray is not neutral and if you apply a large multiplier to a mid gray bump map on a crevice like beside a nostril, it will produce a black, unrenderable surface. By analogy, I can eat spaghetti with either hand and food will reach my mouth, but with my left hand, some will also color my shirt.

  • @3dcheapskate and @bagginsbill Thanks guys! All good now. :D

    I tried to find your old thread BB that I was thinking of, but to no avail. :P

  • Poser Ambassadors

    Bump, Normal and Displacement maps.

    1. Bump and Normal maps are "fake" 3D. They DO nothing in 3D. Not to the inside not to the outside, they go no-where.

    2. Displacement maps are the ONLY maps that actually "move" pixel sized parts inside or outside. They are "texture maps" and work at pixel level. LARGE maps => SMALL pixels sizes, brings fier details possible.

    In POSER ! ! ! ! ! ! And Poser is an exception here.
    Poser Bump and Displacement maps work so that true BLACK does NOTHING, and WHITE gives maximum effect. => In theory, you can ONLY go to the OUTSIDE.

    But using a Math_Functions Substract node and substracting 0.5 from a map you can get MIDDLE Grey at 127-127-127 to become the neutral. (If your maps was build like that in the first place.)

    = Bump and Normal maps are fake 3D and DO nothing in 3D.
    = Only Displacement maps "DO" Pixel size displacement
    = Default Poser is that BLACK is nothing/neutral and WHITE in maximum effect.

    Forgot to add :
    FireFly can do Bump, Normal, and Displacement
    SuperFly can only do Bump and Normal => No Displacement in SuperFly yet.

  • Poser Ambassadors

    Vilters -- you went to far in your explanation, and don't even realize you're contradicting what I said.

    The calculation of a bump is done in 3D space, although the results are not applied that way. What it does is PRETEND to move the vertices, and then take the derivative of the resulting surface. In a concave 3D situation, the displacement can result in one side of the dip "crossing" the other side, resulting in a negative first derivative. Basically it makes the surface turn inside out. When that happens the effective normal points the other way and the renderer acts like you're looking at the "back facing" polygon, instead of the front facing one it is trying to render.

    The result is black.

    So -- it is very important to not "cross" the virtual displacement from one side of a depression to the other side. This requires that you actually take into account what the 3D surface WOULD be if you really displaced it, because even though it won't move any vertices, it WILL invert the normal to point backwards, into the surface, resulting in a visual artifact that will fail the rendering equation.

  • @vilters Yep! I did understand that difference. Bump and normal maps don't actually alter the geometry of the object. Never hurts to repeat it though. I was probably using poor language in my question.

    Thanks! :)

  • @vilters said in Prevent a bump map from creating depressions:

    SuperFly can only do Bump and Normal => No Displacement in SuperFly yet.

    SuperFly supports displacement. What it doesn't support yet is micropolygon displacement, so whether you get your desired result depends on mesh topology and/or level of subdivision.