Baking bump map difficulties

Can anyone tell me why when an ‘image’ is used as a bump map to texture an object, using the ‘orco’ mapping input, it doesn’t seem to bake very well at all.

I’ve found using a procedural texture (such as ‘wood’) to create a bump map which is then baked has much better results than using your own image. Is there some special treatment I need to apply to my image before trying to use it to create bump maps or is Blender just not capable of baking accurate bump maps that come from an image?

I’d really like to know an answer to this. Can anyone help me?

What exactly is the output that your image is causing? Is it because the image is not large enough in pixels or is it not working at all? I think with procedural textures, there is a better chance of getting a smooth and detailed output depending on your settings and scaling because it isn’t relying on the number of pixels to work but the actual math behind it.

Can you give a screen grab or a blend to show the bad output and the good example from procedural that you are trying to replicate with your image?

Yes! A reply!

Thank you craigomatic.

Please look at my previous thread, where apart from fort ash, I was basically talking to myself. It has examples of what i’m trying to explain. Both images and a simple .blend file to help illustrate the problem.

http://blenderartists.org/forum/showthread.php?t=137623

I’m not trying to replicate any of the proedural textures with an image. I’m just pointing out that - compared to using a procedural texture, images used for bump mapping don’t seem to bake very well at all, in comparison with the procedurals.

Sorry, I must be doing a really bad job of trying to explain myself. Hope I’m making a little sense though.

Maybe I’m just being impatient, but I feel like i’m not getting much response here. Surely lots of blenderartists are used to baking their textures and would have at least a few suggestions for me.

I’ve never done any normal texture maps before. Does anyone know if I would be better off learning how to create this simple texture as a normal map instead of a bump map? I thought simple textures such as this plaster effect I’m trying to achieve were best done with simple bump maps. Am I wrong?

Please! Somebody! Anybody!

The basic procedure for using a baked image as a bump map is to UVunwrap the model, then bake the Procedural texture to a new image. Afterward, you create a new texture with the created image, and you map it to the UV coordinates, not to ORCO.
Normal maps look better than bump maps, so, once you created the image, you can open it in Gimp, and apply the normal map filter. That will turn the gray scale bump map into a normal map. You save the file, and you set the texture to use the newly created normal map.

Hope it helps.

I’m NOT mapping the new texture to ORCO. And I’m not trying to use the baked image to make a bump map. I’m mapping the baked texture (which surely should have the bump mapping baked into it, therefore making it unnecessary to map it to the ‘nor’ again) to the UV coordinates of the unwrapped model.

I just want to know why the baked texture of the bump map isn’t accurate after the baking process?

If you could perhaps look at the blend in my previous thread for a really basic example of what i’m trying to explain.

Thank you

This may be where your assumptions are causing problems, if I understand correctly what you are trying to do. AFAIK, baking a full render does not create or record normal modulations, as these are view-dependent and baking them would “freeze” them in a particular mapping to the object. Same for specular lighting effects.

Bump maps and normal maps modulate the surface normals of an object so they appear to have relief features, but this modulation changes with view, as it’s supposed to, so the “bump map effect” would not be recorded in a full bake. To do so would “lock” the visual effects of the bump mapping into a single view orientation (and how would you choose that?) that would not look right as soon as the camera moves significantly.

You can bake the normals of an object to a new image but they still need to be re-applied via the Nor channel in order for the normal modulations to be calculated and applied.

BTW, sorry I can’t look at your .blend, but my comp’s too full of ongoing stuff right now, maybe later.

Thank you so much for the reply chipmasque. I feel like I’m getting somewhere now.

Ok so… when you do a full render bake the bump map modulations of a material won’t be stored. However, in my baked texture I can see all of the diffuse shading effects caused by the original material (which had an image mapped to orco for bump mapping). And this “baked in texture” effect doesn’t match up accurately with how it appeared in the original material (see the attached image at the top of my previous thread that I have linked to). Should I be disabling the original materials bump map before baking and then reapplying it to the baked image afterwards?

I’m trying to animate a simple camera rotaion around an object. The object and lights stay fixed in place. But as you say the texture will look wrong as soon as the camera moves.

Essentially the idea is to composite a baked model with a copy of itself used for the speculars and reflections. What is the correct way to get bump maps into this process?

Sorry I’m not great at being clear and concise, but I think I almost getting there. Thanks for being of help.

OK, I looked more closely at the images in the other thread, and from what I can see, it looks as if it may be a matter of the difference between procedural and image textures.

To my knowledge, procedural textures (which you baked out to image initially, right?) are not represented internally as a flat texture applied to a surface, but rather as a three-dimensional “texture medium” in which the model exists, and its effects are applied at the surface of the model based somewhat on the model’s “position” in this textural medium.

Gawd, this is getting too arcane. It boils down to there being a fundamental difference between a procedural (mathematically described) texture and an image (generated by pixels from wrapped 2D plane) texture. The former sort of permeates the model, the latter wraps around it. So when you bake a procedural and reapply it, it’s no longer being applied in exactly the same manner. At least that’s what it looks like to me. I have time to look at your .blend now and will see if it provides any more info.

EDIT________
Crap, I just re-read your other thread an realized I had misread it at first, you aren’t using procedurals. I’ll get back after looking at the file.

Thank you chipmasque. I really appreciate your help. I’m still quite inexperienced even after a year of using blender, but I hope to finish my first proper project with some half decent results. So, thanks again for the help.

OK, I may have found a source for your problem but not necessarily a solution. It seems to have something to do with the nature of the Orco mapping used for the initial image texture application – except for one of the 6 faces of the cube in your .blend, it doesn’t seem to be stable, but instead changes based on the object rotation, at least in terms of the maps baked from it, which I didn’t expect.

What I did was use the green mat (Orco projection of the plaster) to bake 3 new maps using Full Render, with a 90 degree rotation on Z axis between each bake. Then I looked at the resulting baked images in the UV Texture Editor.

As expected, the lighting for each of the unwrapped cube faces changes with the rotation, since it’s baking the lightmap as well as the diffuse. But what I didn’t expect is that the portion of the image texture (plaster Tex) applied to each face except the top one also changes. The top face stays the same except for minor lighting shifts. I can’t quantify how these shifts are made in terms of the portion of the image texture being used on one face or the other because it’s too hard to “read” the texture accurately, so it’s hard to figure how this may be causing the probs you’re having, but it is unexpected – I would think that the same map would bake out regardless of object orientation, at least in terms of what part of the applied image texture bakes out onto which face.

EDIT____
Further testing shows that the portion of the image baked on each face is not really shifting depending on object orientation, but because the green mat is just a Nor channel bump on an RGB hue, the diffuse texture being baked out looks very different depending on lighting conditions – it took a couple of passes looking at the baked maps up close (pixel level) to see that the underlying pattern wasn’t really changing. Back to square one.

EDIT YET AGAIN_________________
Eureka (I think) – after baking out the map from the Orco material, when you re-applied it to your unwrapped cube using UV, you left the “Cube” mapping option enabled – this should be on “Flat” for UV mapping. You’ll get the diffuse only from the bake, though, so no specular will show and the shadowing from the bump will be slighty different.

Wow! You’re really investigating deep. I’m just about following along with what you’re saying. It seems much more complicated than I expected which leaves me with the question:

How do others bake bump maps? I thought it would be a fairly common thing to do yet it seems to be very troublesome when using ‘images’ as the texture inputs. I can’t be the first person trying to do this.

Please don’t let this further question distract you too much chipmasque :slight_smile:

“Bump” maps affect the normals of the surface of the object. As I mentioned, because this creates both diffuse and specular effects, a Full Render bake will record only part of the overall bump effect, the diffuse part. Specular effects change with viewing angle and so are not baked in.

To bake out the effects of a bump map you do a Normals bake, but his produces a completely different type of map than the original grayscale bump map, and it then has to be reapplied via the Nor channel, so in the case of your cube you wouldn’t gain anything by doing so.

The benefit to baking a Normal map (of type Object, World, Camera or Tangent) is that these maps often do a better job of representing the surface features than a bump map does, because they are a fundamentally different process, though the visual effect is very similar.

Just be sure to switch to Flat mapping when applying the baked map with the UV method and you should be OK, but don’t expect an image applied only to the diffuse channel (Col) to produce a bump map effect, which requires the Nor channel.

Cool! Thank you so much for your solution (although I’m not able to actually test it myself yet).

Have you tested to see if the render from the baked scene matches up with the render from the original scene using the initial material?

The specular will be composited using objects in the original scene, so that’s not a problem. Do you think it would help to reapply the bump map to the baked material as well, or would that make a mess of things seeing as it’s already affected the diffuse qualities of the baked texture?

Yes, as far as possible, and the plaster texture patterns seem to match up OK. But it’s a fundamentally different “look” to see a bump-mapped surface and a surface with just diffuse, so it’s difficult to compare. It looks right to me.

You won’t get any surface relief specularity from the plaster texture if you don’t use the Nor channel. You could paint it but why bother? Using the Full Render bake with the bump map on top will look different than the bump map of the initial material, because you’ve got additional darkening of the RGB hues in the baked texture. You be the judge of whether that’s “messing things up” :D.

Point accepted about reapplying the bump map.

However the original cube that hasn’t been unwrapped is still using the plaster image mapped to the ‘nor’ setting, so this would effect it’s specularity, which can be composited using a specular render pass over the baked cube in the baked scene. I’m pretty sure that should work.

Many thanks yet again. Thought I was going to be stuck just responding to my own threads for a while back then.

Yeah, what you say seems about right, but it also seems awfully complicated. Why the breaking out of all the passes rather than just a straight rendering with optimised material settings?

Argghhh!!!

My Apologies. I still can’t achieve the results I was expecting. I’ve just rendered the original scene and the baked scene to compare them, and to me the results aren’t really great.

I’m trying to apply the techniques i’ve learnt from this tutorial about texture baking:

Maybe baking the bump mapped textures just isn’t the direction to go in. I thought after adding in the specularity from the original scene to the baked scene in the compositor I would achieve similar results to the original render but obviously not.

Is it actually possible to speed up render times by baking textures yet still achieve a similar look to the original render before any baking was done?

Attachments



hopefully the vimeo tutorial will explain the complicated method.

Do you know of a better way of doing things?

Generally this is done only when a particular material setup is costing a lot of render time. For example, procedural textures can be slow because of the computations involved. The overall time savings of taking the time to bake out all the maps, reapply them, tweak them, plug them into a noodle (compositor setup), and then render are little to none over a simple bump-map on an RGB diffuse color.

Also, as said before, some effects like the specular part of bump mapping just can’t be baked out and re-applied as a diffuse texture. Diffuse is diffuse and specular is specular and never the twain shall meet unless it’s in an image from one single camera view on an unmoving object, in other words, a still.