Basically, normal is direction vertex/polygon is facing.


First things first. Understanding basic principles will help you to understand and solve different issues with baking, so please don’t skip this part. I will try to keep it as simple and short as possible.

Prefered method is raycasting. You can use search distance which defines maximum distance rays can be casted to or you can use a cage which is prefered method. Cage is basically exact copy of your low poly mesh, must have same topology, same UVs and also must cover both of your meshes, low poly as well as a high poly. Copy of your UVW unwrapped low poly model with “push” modifier applied works in 99% of cases. Just keep pushing it until it will cover both meshes.On baking phase, cage will cast a rays towards your meshes saving any differences between low and hi-poly as a RGB value, thus creating a normal map. As simple as described.


First apply a projection modifier to your low poly mesh. Add hi-poly mesh to the list in the projection modifier and import your cage. Go to “render to texture” menu, enable projection and follow steps on the picture. In this case we need to check “use cage” option, since we are using cage for raycasting. In the case you are not using cage just uncheck it and there’s and “offset” option next to it, which is basically a search distance (not recommended for more complex meshes). Add normal map as output file, pick resolution and save location, hit RENDER button on the bottom of the menu. You are done.

NOTE: If there will be any artifacts or white lines and pixels on your freshly baked normal map, just disable Global Supersampler and re-bake.


Normal maps are very sensitive to smoothing groups and proper UVs. On next picture you can see different results using different smoothing groups and UVs.

FIG.1: Separate smoothing groups and separate UVs. Gaps between UVs created enough space for smoothing and padding. Proper normal map. FIG.2: Separate smoothing groups one UV. We can see ugly lines on parts with hard edges because there’s no space for smoothing and padding since edges are welded together on UV. FIG.3: One smoothing group for all faces and separate UVs. Final render looks OK, but that gradients on normal map no. FIG.4: One smoothing group and one UV. Same result as FIG.3.

NOTE: For normal maps, seams on the UVs MUST be on all hard edges, but hard edges doesn’t necessarily needs to be on all UV seams. What means you must create seams on all hard edges and can but doesn’t need to create seams on soft edges. But seams on hard edges are MUST BE. Compressing normal maps with gradients can result in visual artefacts (like bad shading…etc.).


No-No .1: Easiest way to get a normal map is get an image and convert it in Adobe Photoshop to normal map. But mind that this is not proper workflow and final result will looks very bad. Photos and images can be used to create normal maps, but they need to be properly prepared first.

  • 1. Picture of the metal doors is converted to normal map straight ahead. We can see that result is horrible, some hinges are imprinted into doors instead of bumping out. Letters on paper are also imprinted into doors and overal look is awful.
  • 2. Picture was carefully prepared before conversion. Final result is much more realistic, hinges and bolts are bumping out, paper sign is a flat surface and letters are not imprinted into doors. It shouldn’t take more than 20-30 minutes for experienced Photoshop user to prepare image before conversion.
Bad vs proper workflow. We can get proper image, ready for conversion using different blending methods and bit of painting.

No-No .2: Even Vs Steep. Even edges are another no-no in normal mapping. Make them a bit more steep.

As we can see, height on normal map baked with even edges doesn’t match height of original hi-poly model. Making edges more steep will fix this issue.

No-No .3: Cilinders and round objects and how to get rid of “wave” effect on edges. Sometimes using copy of a low-poly mesh with push modifier as a cage is not enough. In this case, cage needs to be modified a bit.

Convert your cage to editable poly and push top and bottom vertices towards your mesh. Mind that cage still needs to cover both, low-poly and hi-poly mesh.


Issue .1: Normal maps are gaming related stuff, so sometimes they can cause a lot of troubles in rendering engines. Most common issue is caused by gamma correction as seen on next picture.

To fix it, simply follow steps on the image (3Ds Max only) and switch off gamma correction.

Issue .2: My normals doesn’t looks right or looks inverted. 2 ways to fix this, flip green channel in Adobe PS, or easier way, just flip green channel right in the Normal2Bump node in material editor. Depends on render engine and software used to extract normal maps, but in 95 percent of cases it’s a green channel. If you would find it doesn’t work for you, try flipping other channels.


There are holes on some parts of my normal map: If you are using a cage for projection, make sure it covers both models and it is not intersecting any part of low or high poly mesh. If you are not using cage, just set search distance to a higher value.

There is detail from other part of the model projected on my normal map: (example: A detail from upper arm is projected on side of the torso.) Make sure cage isn’t too big and doesn’t intersect with opposite polygons. If you are not using cage, search distance is too high, just set a lower value for it.


FLOATERS: If you want to add some more detail on your hi-poly before baking, there’s no need to add 50 subdivision levels and billion swift loops. Easier way is to create small detail as individual object and just keep it floating a bit above your hi-poly mesh.

Floaters, making your life easier.

Create a website or blog at

Up ↑