🖥️Modo
Modo is a polygon and subdivision surface modeling, sculpting, 3D painting, animation and rendering package.
Last updated
Modo is a polygon and subdivision surface modeling, sculpting, 3D painting, animation and rendering package.
Last updated
Modo natively supports GLTF, read more about it here.
Note: Steps 1 – 2 will need to be followed for both file format exports
Set all mesh components’ Object Type to “Mesh”.
An easy way to identify the object type is by the geometry icon color:
Grey denotes Static mesh
Blue denotes Mesh
Pink denotes a mesh instance
To convert to Mesh, select the asset in the scene hierarchy
Then, right click on the selected asset and selectChange Type → Mesh
Setting the geometry component to “Mesh” will ensure the geometry is exported.
After we have ensured that we have mesh components we need to make sure that any mesh smoothing applied in the surfaces properties is applied via a mesh operation. The Mesh Smoothing applied in the surface properties is equivalent to a mesh smooth approximation. The geometry isn’t really created so it can not be exported. The freeze command also fails to capture these details. In order to capture the smoothing operations applied in the surface properties we must apply a mesh smoothing operation for every smoothing level found in the surface properties.
In order to be able to export the smooth mesh, the subdivision must be applied via a Mesh Operation. Before we add the Mesh Operations it is recommended to change the subdivision to 0. Be sure to make a note of the subdivision level prior to setting it to 0. This number will be the number of Mesh Operations we need to apply to the mesh component. The Mesh Operations window can be found by right clicking on your component and selecting “Add Mesh Component”.
In the Mesh Operation window search for “Subdivision” and select Mesh Operation/ Polygons Subdivide. We must add a subdivision operation for every subdivision level found in the mesh surfaces properties. This operation is stackable and editable, until the freeze operation is applied. Modo allows you to keep the original modifier stack via the duplicate and freeze operation.
After we have frozen and applied the subdivision operations we are ready to move on to the next step!
In order to export complex materials successfully, we must bake out the maps per component. The texture maps rendered during the bake operation are Diffuse, Normal, Roughness, and Metallic.
Note: Baking will be required if complex materials are used (i.e. Blending Textures, Recoloring, Texture Transforms, and/or Blending texture against a materials input value).If complex materials are not used, please proceed to the desired file format recommended material section.
A) Select the mesh component:
Select the mesh component for baking from the Scene Outliner.
B) Bake Texture Channel:Then right click on the same component and select Bake → Bake Texture Channel from the context menu.
C) Apply Bake Settings:A dialog menu will open. Use the below settings for baking:
Use Current UV – only use if the component has UVs laid out that are not overlapping.
If “Use Current UV” is not enabled, the UV name will be the name of the UV channel to be created.
Generate Atlas UV – will atlas our UVs ensuring no overlaps.
Packs UVs – packs into 0-1 space.
Add Image Maps to Shader Tree – will place bakes in the Modo Shader Tree.
Bake – Baking will not occur if not enabled. This can be useful if you are seeking to lay out the UVs.
Channel – select the channel to bake out. Using this tool, we can bake out our Diffuse, Normal, Roughness, and Metallic maps.
Once all settings are applied, select OK.
D) Save Location: A dialog window will open. Input the location to save the folder to and select OK.
Modo will perform the bake operation on the desired channel. Once baking is completed, we will see a new folder in the Shading Tree called “Baked” that contains an item with the components name.
Modo will save each channel after each bake within this item group.
E) Adjust Layer Effect: Once baking is complete, change the Layer Effect type to the same type listed in the new component name within the Bake item group.Example:Object_1_rough (component name) = Roughness (layer effect)Object_1_metallic (component name) = Metallic (layer effect)
Note: if you are using tiled materials and do not want to atlas your objects. You can create a plane in the viewport and assign your material to that. Baking from the plane will create a Tiled texture based on texture transforms and blending effects applied. Apply the textures in the same way outlined below. After each bake ensure to rename the plane to avoid saving over previous bakes.
If your mesh components have multiple UV sets or you’re using displacement that you would like to convert into a normal map, we will need to use Modo’s Baking Wizard to bake out our materials.
Note: Avoid using Dynamic Material layers. Dynamic Layers include any material layer that is sourcing scene information. A good example of this is the gradient layer. The input parameter can be set to something that uses camera information, like Incidence, which will not bake out. It is recommended to set this to use the Group Mask or another non-dynamic input parameter.
Gradient Layer set to Incidence:
Gradient Layer revised to Group Mask:
After we ensure no dynamic layers are not used, we can move onto the bake process. Below are the baking steps.
Duplicate the mesh component and rename it (as seen below).
Clear the UV Channels on the duplicated mesh.
Create new UVs for the duplicated component.
Layout the UVs. Below are the automated steps to layout the UVs.
Use the UV Projection Tool to quickly layout the UVs (result pictured below). This tool allows us to easily get non-overlapping UVs, however, using this tool can potentially create UVs that will produce bake errors. It is recommended to manually layout your UVs for the best results.
UV Project Tool used to auto unfold the component:
Then use Fit within the Modify tool group to maximize the UVs within the space. The default settings should be suitable.
Without Fit tool used:
With Fit tool used:
Then use Pack within the Modify tool group to maximize the texel density of the mesh component. Default Settings should be suitable.
Without Pack tool used:
With Pack too used:
Then, clear UV Vertex Maps from the Source mesh (as seen below).
Next, adjust the Render Settings for the Diffuse and Roughness maps to the below settings. These settings need to be set before starting the bake process.
Reflection Samples: 32
Refraction: 32
Subsurface: 32
Direct Light Samples: 32
Shadows: Off
Micropoly Displacement: Off
Adjusted settings within the Settings panel:
Adjusted settings within the Global Illumination panel:
Then, adjust the Render Settings for the Normal maps to the below settings. These settings need to be set before starting the bake process to ensure any displacement is baked into the normal map.
Reflection Samples: 32
Refraction: 32
Subsurface: 32
Direct Light Samples: 32
Shadows: Off
Micropoly Displacement: On → this will increase bake time
Global Illumination: Off
Adjusted settings within the Settings panel:
Adjusted settings within the Global Illumination panel:
Hide all mesh components.
Use the Bake Wizard to bake out each mesh component. This is time consuming.
Once the Baking Wizard is activated, the Baking Wizard window will open. Use the below recommended bake settings:
Resolution:
Width: 2048
Height: 2048
UV: Select the UV channel of the target UV set.
Cage: None
Target Material: None
Bake Hidden Target Meshes: Enabled
Bake Hidden Source Meshes: Enabled
Bake Hidden Outputs: Enabled
Use Current Normal Map Preset: Enabled
In the Next Step, set the Source and Target meshes:
Source mesh: The original mesh component
Target mesh: The mesh we duplicated and created a new UV channel for
In the Next Step, set the Texture outputs. We will need to perform 2 different bake operations for each mesh component, which are outlined below. Each bake operation will have unique render settings.
Bake Operation 1:
Set the New Texture Output by selecting the below channels:
Diffuse, Roughness, Group Mask, & Metallic.
We will have Displacement turned off in this bake pass to save on time.
Bake Operation 2:
Set the New Texture Output by selecting the below channels:
Normal, Group Mask
We will have Displacement turned on in this bake pass to capture the surface detail.
Once all texture outputs are set, select Bake Only to begin the bake process for each mesh component.
Depending on the assets UVs there may be bake errors that need to be cleaned up. It is recommended to fix this issues in Photoshop prior to moving onto the next step.
If exporting as a .GLB the baked textures from steps 1 – 2 need to be applied to materials before exporting. Below are the texture preparation and material creation steps.
A) Combine Roughness and Metallic
Before we create the material, we must first combine our Metallic and Roughness Maps in an image editing software (i.e. Photoshop).
Since these maps have no color information, we can put them into a color channel per the glTF spec:
Ambient Occlusion – Red
Roughness – Green
Metallic – Blue
Alpha – Alpha
After you have packed the texture, re-import the texture into Modo and duplicate it as many times as you plan to use it.
B) Add glTF MaterialAdd a glTF material to the material stack. This can be done by clicking Add Layer from the Shader Tree menu.
This can be found by navigating to Custom Materials → glTF Material
The glTF Material will be added to the Shading Tree above the current selection. Move it above the scene material.
C) Change the Layer EffectNow we can change our Layer effects to:
glTF Base Color – Diffuse Color
glTF Roughness – Roughness
glTF Metallic – Specular Color/ Metallic
glTF Normal – Normal
D) Enable Swizzling
In our Metallic and Roughness channels enable “Swizzling”. This will ensure a packed texture per the glTF spec is exported.
For the Roughness, enable Swizzling and set the channel to Green:
For Metallic, enable Swizzling and set the channel to Blue:
After all, materials have been set up a .GLB can be exported.
Navigate to File → Export As and select .GLB from the drop-down menu.Select Save.