1
$\begingroup$

I am creating game ready assets using Blender. I heard that it is a good practice to create both the high poly mesh and the low poly mesh for the asset, but instead to using a high poly mesh, one should bake the details of the high poly mesh to the low poly mesh. But I don't know the procedure of doing that.

The Problem

Here, I wish to create a piece of deformed wood in blender. So, I created a low poly cube and gave it a basic shape of a wood (no deformation) The Low Poly Mesh

Now, I created a high poly mesh and subdivided it a few times and then added a displace modifier with a cloud texture with 0.010 strength, which gave it a deformed kind of shape. Then I manually deformed it a bit using proportional editing which gave me this result. The High Poly Mesh High Poly Mesh Displace Modifier Now, is there any way to bake these details of the high poly mesh to the low poly mesh and if not, then how can I give that low poly mesh a deformed shape (like the high poly mesh), without too many polygons?

Just a side note, I use Unreal Engine for game development.

EDIT: I tried using the bake normals option in blender but it is producing several artefacts of mostly red, green and purple colours. Normal Map Those 'holes' in the lower right corner are causing artefacts in my low poly mesh. Is there any way to solve that? Otherwise the distorted portions are appearing fine.

Example of its Use Usage

@hatinacat2000 The requested .blend file

Result I think @Christopher Bennett's method is the best. I was able to get this result using it. It's only 306 faces. There is a shading issue there, but it's just me bevelling wrong, leading to a triangle. Otherwise, its perfect. 306 faces is much better than 5000. Result

$\endgroup$
  • $\begingroup$ It's absolutely possible - however it might be too much to write as an answer. I recommend watching some tutorial videos on the process such as this one - youtube.com/watch?v=BOYRCI-dtjU - and for more detail on the process of normal map baking try this - youtube.com/watch?v=TYouRv2td6M. Unfortunately the first one is for pre-2.8, but the process is mostly the same. Try finding one that has what you need but is more recent. $\endgroup$ – Christopher Bennett Jul 24 at 5:15
  • $\begingroup$ So, from your comment, I guess the process to do this is to bake the normal map. $\endgroup$ – Swastik Bhattacharyya Jul 24 at 5:20
  • $\begingroup$ Yeah, the gist of it is that you make a high poly and a low poly of the same model, make sure the two objects are in the same place, make sure the low poly is UV unwrapped, create a new image (2k should be sufficient -make sure to check the 32-bit float box) and add it as a new image texture on the same graph as your object's material (but not connected - it must be selected though). Then select the high poly object, then the low poly (so it is the active selection), then go to bake settings, pick normal as bake type, check "selected to active" and bake. $\endgroup$ – Christopher Bennett Jul 24 at 5:38
  • $\begingroup$ However, this process is not always as easy as it sounds. Sometimes differences in the size and shape between the two models in certain areas can yield ugly artifacts on the result. A way to overcome this is to use a "cage bake", which often helps, but is not flawless. Unless your bake is extremely simple, you may be in for a bit of tinkering and frustration, I'm afraid. My best advice is to find the best guide(s) you can and spend a while messing with it. $\endgroup$ – Christopher Bennett Jul 24 at 5:41
  • $\begingroup$ It's not really working, I even used a cage following Grant Abbit's tutorial, however there are some red and green lines in my normal map, resulting in artefacts. $\endgroup$ – Swastik Bhattacharyya Jul 24 at 6:19
0
$\begingroup$

just posting this so I can post the pic. Would it be acceptable to you to use a procedural texture to generate a "normal" from something like a noise texture?

Bump1

Then you could bake that to a normal map from the texture.

Bump2

Then, you can connect your baked normal back up, and mix whatever colors or effects you want (such as roughness) in the shader.

Bump3

EDIT - Different approach...

Now that I see your usage example, I'm not sure how much this high poly, low poly business is necessary. Given the look, you can probably get away with minimal deformation. You can even delete the back faces that won't be seen, leaving a very acceptable number of faces.

DeformSimple

Then you can either use the approach I outlined, or use another PBR texture to add even more detail.

DeformTexture

EDIT 2 - Here's one more with a small bevel and smooth shading. Each object is 29 faces.

Smoothed

| improve this answer | |
$\endgroup$
  • $\begingroup$ It gives a really nice detail to the model, although this doesn't serve my purpose, I think I will use this method to give it a nice texture by increasing the scale and the detail. $\endgroup$ – Swastik Bhattacharyya Jul 24 at 8:46
  • $\begingroup$ Yes, that is very very close, I think smooth shading and a bevel will help to get rid of that jagged edge. $\endgroup$ – Swastik Bhattacharyya Jul 24 at 8:57
  • $\begingroup$ I think that there are some shading issues in both the models due to the bevel. However, I fixed that issue by only enabling the bevel at certain edges which fixed the problem. I will try this method now. $\endgroup$ – Swastik Bhattacharyya Jul 24 at 9:04
  • $\begingroup$ Smooth shading can do that without the appropriate geometry. Also, I did a really dirty UV unwrap - I was aiming for speed, not accuracy. It is what it is. If you can afford a little more geometry, the shading can be better, if not, you may be better off with high-to low poly after all. $\endgroup$ – Christopher Bennett Jul 24 at 9:07
  • $\begingroup$ I was able to achieve a much better result, with a bit more geometry. $\endgroup$ – Swastik Bhattacharyya Jul 24 at 9:27
2
$\begingroup$

From experience, I and others will tell you that normal maps work best for details like bumps and crevices. They work very poorly--are unsuitable--for baking a "high poly mesh" whose silhouette is noticeably distorted compared to the original. You are not going to get anything good from that.

What you are trying to do in this example is similar to attempting to make the default cube appear as a uv-sphere (much rounder) just by turning on "smooth shading" for its 8 vertices. The problem is not just how light interacts with the object on its surface (a huge problem in this example), but that the silhouettes will not be changed with a normal map.

If you make both meshes the same shape and sculpt wood grain into the high poly mesh, that is exactly what normal maps are useful for and you can get nice results in Blender.

| improve this answer | |
$\endgroup$
  • $\begingroup$ So what exactly can I do to get that distorted shape into the low poly object? Do I have to add more loop cuts and use proportional editing ie. increase the polycount in the Low Poly Mesh. $\endgroup$ – Swastik Bhattacharyya Jul 24 at 7:22
  • 1
    $\begingroup$ You should always optimize your topology regardless of use-case. Your "high poly mesh" looks like it can be very few faces. What is this wood for? Will there be a lot of them in the scene? $\endgroup$ – hatinacat2000 Jul 24 at 7:25
  • 1
    $\begingroup$ If you want, you CAN bake the normals from the high poly to the low, and that normal map could make the wood look irregular if viewed at a very shallow angle. However, I am guessing that you want to lay these planks end-to-end and side-to-side, so the player will never see it. The effect on the top-bottom faces will work ok provided that either the high poly completely envelopes the low poly, or vice-vesa (else the void will get baked as an error) $\endgroup$ – hatinacat2000 Jul 24 at 7:33
  • 1
    $\begingroup$ I misspoke in that comment, it's hard to describe without relying on math jargon. Preferably, one object completely envelopes (contains) the other and the rays that are casted from one surface to the other are short enough so they hit every point on the other surface but do not penetrate more than once. It is all right if one does not completely envelope the other as long as there is no region where any ray will either fail to hit the other surface or punch through it more than once (a "hole"). Yes you can always retopo, your model is very simple, maybe you can reduce the number of faces. $\endgroup$ – hatinacat2000 Jul 24 at 7:46
  • 1
    $\begingroup$ Also, I'll bet your normal map is stretched. For the low-poly object, apply scale (Ctrl A) , select every edge, do Edge --> Mark Seams, then UV --> Unwrap. Bake again. $\endgroup$ – hatinacat2000 Jul 24 at 7:51

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.