after hours of hard work, creating a low poly mesh from high poly, and tweaking every single vertex and tackle the UV phase, we are excited to go to the fun phase which is texturing. well, that’s not quite the case we have to pass the final boss to unlock the trophy and the last nerve-racking boss is the normal maps, and getting perfect flawless normal maps is takes a lot of practice and knowledge and a bit of luck ;). keep that in mind the lower our polygon budget the harder bake will get but we can easily get around most errors and by following these 9 steps.
these are 9 steps with tips and tricks that I learned over the years. in this article, I’m not going to get technical and talk about projection and how ray works and… .its all about baking perfect normal maps in substance painter and get the job done ASAP.
1.CREATING GOOD LOW POLY MODEL:
low poly should match the silhouette of the high poly. support all the curves and circular shapes and stay as close as possible to high poly and make low poly a little bit bigger than high poly just little over the surface of the high poly and after creating the low poly mesh its time for clean up look for border and open edges any flaw in the mesh flipped normal use tools like mesh cleanup in Maya and always merge all the vertices all by low value.and in 3ds max use xview and check for overlapping vertices and open edges and delete any floating vertices.
2.BEVEL THE EDGES
if we can afford additional polygon to our low poly model and if we dealing with the cylindrical shape we should consider chamfer the border edges and add additional edge loop and make them a little bit around this would help the shading as well as baking normal maps and edges of the low poly object reflect the light so much better in the engine.
3.DETACH THE ELEMENTS :
now then we don’t need to explode our objects for baking normal maps. we using a naming convention for substance painter low poly suffix _low and high poly suffix _high if we get this part wrong our normals will be completely black and if we got an object that contains little parts inside we have to separate them because this cause problem and they give black shading to the normal map. detach it in both low poly and high poly and give them a new name and when we finish with baking we can attach and weld all the vertices again.
4.UNWRAPPING AND SMOOTHING :
when we unwrap and creating UV shells in the UV editor all the edges of the mesh can be smooth but when we harden the edges in Maya or put the faces to a different smoothing group in 3ds max we must split the UVS and create new UV shell if we don’t do that we get artifacts at the seams, in general, every time we get bad shading or our face normals has 45 degrees angle we have to harden the edges and therefore split the UVS as well so if it’s a hard edge put seem on it and split the UVS.
the fastest way is to use Textools this tool creates a smoothing group base on the UV shells, go to tools and select smoothing groups from UV shells know that every time we change the smoothing group we have to bake new normal map.
5.MAKE A ROOM IN UV:
nowadays with AAA video games, we tend to pay extra attention to details especially on the small parts of the object .why? because it will catch audience eyes so we need to make room for those UV shells that are important to us so we give them more space and the details can be visible and sharp otherwise it will be blurry. a very important note here is that we don’t sacrifice anything UVS should have consistent texel density throughout the whole model but we can reduce the size of UV shells that is hidden or far from the camera view and or mirror the UV shells and with extra space, we increase the size of the UV shells that matters the most in our model and player will see it up close.
In the end, it’s all about resolution and fitting UV shells in UV space and always use more than at least 70 percent of the UV space u can check UV statistics in maya>view>heads-up display>uv statics and hit apply the percentage of used UV space shows at the bottom of the UV editor.
it’s better to export both high poly and low poly mesh in FBX because it can carry more information and FBX export way faster than obj but in some rare cases u better off with obj.
we have to sync our workflow to substance painter our desire engine for example in marmoset or unity their normal map format is OpenGL so when exporting the mesh from MAX or Maya… we have to check tangents binormals as well as smoothing groups and triangulate it, with this setting in painter we just chose the default setting: uncheck compute tangent space per fragment and change normal map format to opengl.but if our engine normal formate is DirectX like unreal engine 4: uncheck tangents binormals and check compute tangent space per fragment in substance and choice DirectX as normal map format.keep that in mind when exporting textures we can change configuration and normal format as well.
7.objects shifted in substance painter :
after baking sometimes normal map seems to be shifted and not in the right place this happens mostly when the objects are too complex and go through a lot of tweaking rigging testing and has set keys and animation and if try to import the low poly and high poly object as one Fbx in the engine or 3d packages software everything seems to be fine but if imported both high poly and low poly objects as one Fbx file in painter you can see low poly and high poly objects are no longer aligned and have been moved.
the solution is going to your 3d package software select all the object in the scene and freeze the transform delete history and reset the Xform in 3ds max .and unlink the model to any rig even delete the set keys.if the problem still existed create new primitive like a cube and attach the problematic model to the cube and rename it and export it again.it should solve this mind-boggling problem.
sometimes details on normal map stretched this is a minor issue and many artists don’t mind it and the player will never notice it, especially if the model should be rusty and old. the reason this is happening is that there are very few edges on low poly to support the details of the high poly and when we adding additional edges we will have a perfect clean normal map.
after baking, we can delete the extra edges that we add to the low poly but this one is tricky because geometry and UVS should remain the same to match the normal map we just baked.
9.common Baking errors:
after baking, if the model has miners baking errors like dark shading and lines this occurs mostly because of overlapping polygons in UV. we can check the UVS by going to the UV editor and hit ((select overlapping polygons)) and be sure all the UVS are in the 0 1 space. another common mistake is substance painter completely ignores baking some objects in the scene this happens for 2 reasons number 1 is either low poly model has 1 texture set but has multiple materials applied to it or the naming convention isn’t right .be sure all the parts of the low poly share the same material for the same texture set and use suffix _low _high for naming the high poly and low poly.
the last step is to get our hands dirty cause sometimes few artifact and errors in some place of geometry are inevitable especially in corners and tight areas where faces are angular and are very close to each other like the image below.so its time to import normal map image to photoshop and get rid of the baking errors and artifacts.
in substance go to shelf<project<export resources and save the normal map and open the image in photoshop now its time to find the errors and fix it because of its weird color changing in normal map finding the error should be easy.
there are two ways we can fix this errors in photoshop one way is using smudge tool with 100 percent strength and work like clone stamp but more fluent and then blur the lines for smoothness and another way is going to each color in channel box and blend the black and white color and get rid of weird shading and color-changing .going through each channel is more flexible but it is time-consuming as well.
now save the new normal map and drag and drop it to our project shelf and drag and drop it to our texture set normal map.
following these 10 steps should help you to get a perfect bake inside of the substance painter. cheers 😉