Optimizing your Mesh
This doc is an overview of the documentation within the category covering different ways to optimise your assets.
As MONA works on WebGL/Browser it is important to get your asset polygon count as low as possible while keeping it looking the quality that you would like. There are many ways to do this depending on the 3D Tools you have access to and willing to learn, as well as the time you have to do it.
The tutorials within this category will go over various approaches to optimising your assets.
Retopology is the approach of basically tracing the high polygon asset manually and creating a low polygon model. You have complete control where every polygon goes and you can make it 'neatly' with good edge loops so you can add/reduce polygons as needed much more easily. This also makes it much easier to unwrap for texturing.
This approach is basically required for characters as posing and animation usually plays a part, and the edge loops play an important role in how easy it is to rig, or apply to a skeleton, as well as how good it looks when posed or animated. So keep this technique in mind if you are looking to create VRM Avatars.
The simplest way to do this is by creating a separate model, a simple box or a single polygon plane for example, and then use the snap tools to place and extend polygons over the high polygon manually. This does take longer but the results are also much better and cleaner than using decimation or remesh tools.
As this is a more complicated approach, I will add two videos below. One is reducing a curved asset made in Rhino in Blender, and the other is one of the Workshops that cover optimizing Photogrammetry.
In some cases you may just want a lower polygon asset, but in other cases you may want to project they high polygon information onto the low polygon asset as a normal map texture, basically a texture that implies bump detail. This is covered in more detail in the next tab.
Baking will take the detail of the high polygon asset and project them onto the low polygon texture. This way the polycount can be considerably lower, while keeping the quality of the high polygon asset at the cost of filesize (due to the texture).
There are many ways to do this in several different applications such as Blender (free), Substance Painter (Adobe subscription or on Steam) and Marmoset Toolbag.
The following tutorial will go over using Blender.
Prerequisites
High polygon Assets such as a sculpt or subdivided mesh.
Can be single or multiple meshes.
Low polygon asset for use in the Mona space.
Has to be a Single mesh.
UVs should be unwrapped correctly.
Blender or Substance Painter.
Baking In Blender
In your blender scene you should have all your high polygon assets and your low polygon asset. The low polygon asset can only be a single mesh, so join your meshes into one asset if you need to.
Setting up the Texture and Material
First, we need to create a material and texture for us to bake onto. This could be done first or before baking.
Select the low polygon asset.
Go to the 'Material Properties' panel in Blender.

Assign a new material.
With the asset selected, go to the Shading menu at the top of the window.
In the Shader Editor or node graph section, go to 'Add / Texture / Image Texture' to add a new Image Texture node. Place it in the node graph.
You do not need to connect this node to anything unless you want to see the result in Blender.
Select '+ New' in the Image Texture node to make a new texture. Set to 1024x1024 or below (as a power of 2. eg. 512x512, 256x256 etc.)
Make sure the Image Texture node is selected on this Material before Baking later in the process.
Baking the High poly asset onto the low poly

Go to the Render Properties tab at the bottom right.
Change the renderer to 'Cycles'.
Blender defaults to using 'Eevee'.
This will enable the Bake tab in the options below.
Change the 'Device' to 'GPU Compute' if you have a good Graphics Card as this may be faster.
Expand the Bake tab in the Render Properties section.
Change the bake type to what you would like to bake from the high polygon assets.
'Diffuse' or 'Normal' are two common examples but depends on what you need for asset creation.
'Combined' is good to bake all the information into a single texture.
Select if you would like Direct or Indirect lighting. This considers the lighting in the scene.
Enable the 'Selected to Active' property, then expand the tab.
This bakes all of the selected high polygon assets into the last selected objects (such as your low polygon asset) texture that we created previously.
Adjust the 'Extrusion' and 'Max Ray distance' as needed.
These depend on your asset sizes, and adjust how the information is projected.
If the settings are incorrect you may get passthrough or incorrect bake information.

Select all your high polygon assets using 'shift' or 'ctrl'.
Select your low polygon asset last using 'shift' or 'ctrl'.
Select the 'Bake' button at the top of the Bake section in Render Properties.
Go to the Shading Menu and select the Image Texture Node (if you haven't already) you should see the bake results.
If you get any baking issues or mismatches, you can adjust the Extrusion and Max Ray Distance to improve the result.
Make sure that the high and low poly Normals are facing the right direction. You can check this by enabling the 'Face Orientation' option in the 'Overlays' menu at the top left of the viewport. Blue is the correct facing color.
Make sure that your low poly asset is smoothed.
If creating a single asset with a single texture, make sure that your low poly asset only has one Material. The bake will only apply to the selected Image Texture Node. You can utilise this for multi object/materials if needed.
Once you are satisfied with the results, go to the Image Editor in the bottom left window, and select the three lines at the top to show the 'View | Image' pulldown.
Go to 'Image / Save as...' in order to save your baked image to edit in your Image Creation software.

If you want to see the textures on your asset, connect the nodes to their respective parameter in the 'Principled BSDF' node.
Note if you are connecting the Normal map, you will need to add a 'Normal map ' node between the texture and the Normal parameter. This can be found in the 'Add / Vector/ Normal Map' menu.
Make sure to set the Viewport Shading to 'Material' or 'Rendered' at the top right in the Viewport to see the material result.
Many 3D Creation tools have added these features in one way or another. Zbrush, Blender, even Rhino (since version 7.0 with the Quad Remeshing tool) have tools that allow you to quickly reduce the amount of polygons on a mesh. The main issue with this approach is that the result is not 'clean'. So in some cases texturing or modifying the asset may be more difficult, and the result is possibly not as optimised as it could be.
So it depends on how important and big is the asset (at least to start) and how much time you are willing to spend on it.
The Decimate and Remesh modifier can be applied in the Modifier panel in Blender after selecting the model in Object mode. Once applied you can play with the large number of parameters to get the best effect on your mesh.

Decimate Modifier examples
Here are some examples of what Decimate modifier does to simple shapes.

Remesh Modifier Examples
And some more examples using the Remesh Modifier.

Remesh Examples (Object Data Properties panel)
The Remesh tool is in the Object Data Properties panel after selecting the mesh you'd like to remesh. it is sometimes more accurate than using the Remesh modifier.

Note the Sphere on the Remesh tool doesn't look any different as this asset did not work with the Remesh method. The state of the original asset will usually decide which method is the best to use.
Decimation/ Remesh Summary
These basic shapes are not the best examples of assets you would want to Decimate or Remesh, but they do show the results very clearly. And each asset requires it's own approach. There is rarely one method that suits all assets. The goal is the same however, your want the polygon count as low as possible, while keeping the shape of your asset.
Last updated
Was this helpful?
