Transferring textures from high poly meshes to low poly meshes
- Start with a high resolution textured mesh and position the low poly mesh in the same position, matching as close as possible.
- If needed, attach a rig to the low poly mesh for accurate positioning. Apply the rig when close, and fine tune the mesh position by editing vertices.
- Select the low poly mesh, and create a new UVMap, new Material, and new Image Texture. In the Shading tab, add the new empty Image Texture to the material, and attach the new UVMap node to the vector of the Image Texture node.
- To transfer correctly, the receiving mesh needs to be larger than the original. A quick solution is to add a Solidify Modifier to the low poly mesh, and adjust the thickness just enough so none of the original high resolution mesh is visible. Increasing the offset helps to reduce the amount of thickness.
- Select the original high resolution mesh, and in the Shading node panel, select the Image Texture you want to transfer.
- Shift-click on the low poly mesh, and select the new Image Texture.
- Go to Render Properties, set the Render Engine to Cycles, and scroll to find Bake. For Bake Type, choose Diffuse. Influence should just have Color checked. Check the box next to Selected to Active.
- Hit the Bake button.
- *IMPORTANT – Go to UV Editing tab and remember to save the image you just created. it will not save automatically.
TIPS:
If the mesh has been modified, be sure to recalculate the outside normals, and flip normals if required.
If you receive a circular error, disconnect the Image Texture on the low poly mesh, and reconnect when Bake is complete. The error won’t effect anything either way.
If excessive posing and manipulation of the mesh is required to get a proper texture transfer, go back to an unadulterated mesh and use the texture you just created.
Important: Mesh receiving texture must be slightly larger than original mesh. This can be achieved by using a solidify modifier on complex objects.
Baking multiple objects on to one texture map AKA trim sheet or texture atlas:
Overview: Create a new material, texture and UVMap and add to all the materials in your meshes, join the meshes, then bake.
- Select all of the model parts in Object Mode, and join them (CMD-J).
- Add a new UVMap in the Object Data Properties tab. Select, but do not make active.
- In Edit Mode, unwrap your model. Try using Smart UV Unwrap, or Project From View and be sure to add approx. 0.003 for the islands. It is best to resize the various parts of your model’s new UVMap at this stage to provide the best resolution for each part. You can select the individual pieces of your model and Unwrap (u), then resize and reposition the individual parts within the new UVMap.
- In Object Mode, add a new material with a new image texture, ie: TextureBake, and add a UVMap node, but do not plug the UVMap into the Image Texture node. Select both the Image Texture node and UVMap node in the Shading tab, and copy them.
- Select each material in your model and while in the Shading tab, paste the Image Texture node and UVMap node.
- In Object Mode, add a new texture, and select ‘Image or Movie’ as type, with your new image (ie:TextureBake) selected.
- Choose Cycles as the Render Engine, and scroll down to the ‘Bake‘ section
- Choose Diffuse as Bake Type; under Influence uncheck Direct and Indirect Contributions; make sure ‘Selected to Active’ is unchecked as well.
- Go into Object Mode. Make sure the UVMap is selected (but not active) and the new material with new Texture Image are selected in all of the materials. Click ‘Bake‘.
EXPORT
Exporting as a gltf: Select only your new baked material and UVMap, and if the new UVMap is plugged in to the texture shader node, unplug it to prevent export issues.
Join objects and combine UVMaps
When joining objects, your materials may disappear or turn black. This is probably a result of mismatched UVMap names. Fortunately the fix is easy. Just be sure the UVMaps have the same name when you join them.
Leave a Reply