Asset Preparation

How to prepare your 3D model for uploading to Simulon.

Simulon currently supports three formats: .glb, .usdz and native .blend.

The following steps are required to have your 3D asset function correctly;

  1. Ground Contact

  2. Origin

  3. Scale

  4. Backface Culling

  5. Single Image UV's

For this tutorial we will use this awesome robot model by Uliszs.3d

1. Ground Contact

Ensure your asset correctly touches the ground, as this determines its spawn position in Simulon relative to the real-world surface.

If you are in Blender, use the X-axis line as your ground/surface reference. In orthographic view, position the base of your mesh directly over the X-axis line.

2. Origin

The asset should be positioned and centered at the world origin. In Blender, this is where the x (red) and y (green) axis lines intersect.

If the 3D cursor is set to its default location, you can set the origin of the asset to 3D cursor in Object Mode by using Object > Set Origin > Origin to 3D Cursor.

Tip

If the 3D Cursor is not in it’s default position, you can reset it by using the Shift+C shortcut.

3. Scale

Simulon’s scale is based on real-world values. Using the Measure tool, make sure your asset has the correct real-world scale.

In Simulon, assets are initially auto-scaled based on screenspace and distance to prevent unusable sizing from the creator's perspective. To see the asset at its original size, double-tap it or select "Scale 1:1" when the asset is highlighted.

4. Backface Culling

Some meshes have exposed backfaces that are not closed off. With backface culling enabled, these backfaces are hidden, which is not advisable. Disable backface culling to ensure faces are double-sided.

5. Single Image UV's

Support for UDIM textures in Simulon is experimental, so it's recommended to use single image UVs. This means mapping a section or the entire mesh to a 0-1 UV space, corresponding to a single image texture.


Materials

This guide focuses on a standard metallic/roughness PBR workflow and the setup with Blender's Principle BSDF shader. For more complex materials, refer to our Advanced Material Guide.

The standard PBR workflow supports the following channels:

  1. Base Color

  2. Roughness and Metallic

  3. Normal Map

  4. Baked Ambient Occlusion (only used in the on-device realtime preview)

  5. Emission

  6. Specular

  7. Clearcoat

  8. Sheen

  9. Alpha

  10. Transmission

  11. IOR

  12. Volume

1. Base Color

When you connect an Image Texture node to the Base Color input of the Principled BSDF node, that image becomes the base color for the static 3D asset.

If no image texture is connected, the color specified on the Base Color channel will be used as the base color.

2. Roughness and Metallic

The Roughness and Metallic channels can also be controlled using an image texture. However, they differ from the Base Color channel in that they use a Non-Color Color Space. Always ensure the Color Space is set to Non-Color in the Image Texture node when using Roughness and Metallic images.

Optionally, you can pack roughness and metallic maps into the same image, with roughness in the green (G) channel and metallic in the blue (B) channel of an RGB image. In Blender, it's recommended to connect the Image Texture node to a Separate RGB node. This separates the channels, allowing you to connect the Green channel to the Roughness input and the Blue channel to the Metallic input of the Principled BSDF node.

If no image texture is connected to these channels, the Principled BDSF node will display sliders with values between 0.0 and 1.0 to control these channels.

3. Normal Map

When using a normal map, connect the Image Texture node containing the normal map to a Normal Map node, then connect this to the Normal channel of the Principled BSDF node. To adjust the normal map's strength, use the settings in the Normal Map node. Set the Color Space of the normal map's Image Texture node to Non-Color, similar to the roughness and metallic Image Texture nodes.

4. Baked Ambient Occlusion

Using a baked ambient occlusion map is optional and does not contribute to final renders in Simulon. Baked ambient occlusion differs from the standard method of connecting an Image Texture node to a Principled BSDF node channel. To ensure correct ambient occlusion functionality, create a custom node group named "glTF Material Output" with an Occlusion input channel. Then, connect the Image Texture node containing the baked ambient occlusion image texture to the occlusion channel of this custom node group.

Tip

To create the custom node group for baked ambient occlusion, begin by grouping an Ambient Occlusion node. Enter the node group, delete the Ambient Occlusion node, and remove all group output channels. Next, delete all group input channels except the Color channel and rename it to Occlusion. Exit the node group and rename the entire node group to "glTF Material Output."

The ambient occlusion won't appear in Blender because it uses a different method for showing ambient occlusion that is incompatible with glTF. However, when using the custom node group named "glTF Material Output," the ambient occlusion will be correctly included in the glTF upon export. Like with roughness and metallic Image Texture nodes, ensure the Color Space is set to Non-Color.

Optionally, you could also pack the baked ambient occlusion in the red (R) channel of the same RGB image with the roughness and metallic channels.

5. Emission

To enable emission, connect an Image Texture node with the emission image texture to the Emission channel. However, to control the emission more effectively, link the Image Texture node to an Emission node and then combine it with the Principled BSDF node using an Add Shader node. This allows you to override the emission value in the Emission node.

6. Specular

When using a specular map, connect the Image Texture node containing the specular map to the Specular IOR Level channel of the Principled BSDF node. Set the Color Space for the specular map to Non-Color. If the specular map contains color, use a separate Image Texture node with the color specular map, setting the Color Space to sRGB. Then, connect this Image Texture node to the Specular Tint channel of the Principled BSDF node.

7. Clearcoat

You can connect an Image Texture node containing the clearcoat image texture directly to the clearcoat channel of the Principled BSDF node. The same applies to a clearcoat roughness image texture. If no image texture is connected to these channels, adjust them using sliders in the Principled BSDF node, with values ranging from 0.0 to 1.0.

For an alternative approach, pack the clearcoat and clearcoat roughness into a single RGB image for glTF. Place the clearcoat image texture in the red (R) channel and the clearcoat roughness image texture in the green (G) channel.

8. Sheen

If sheen roughness is part of your material, pack the sheen image texture in the alpha (A) channel of the sheen Image Texture node.

Set the Color Space for the sheen map to Non-Color. If the sheen map contains color, similar to the specular map, use a separate Image Texture node for the color sheen map, setting its Color Space to sRGB. Then, connect this Image Texture node to the Sheen Tint channel of the Principled BSDF node.

Note

You will notice that there is a difference between how Blender renders Sheen, compared to how glTF renders Sheen. This is due to Sheen not being fully compatible between Blender and glTF.

9. Alpha

Alpha controls the transparency of a material. To use an image texture for this, connect an Image Texture node with the alpha image texture to the Alpha channel of the Principled BSDF node. Then, set the Blend Mode to either Alpha Blend or Alpha Clip, based on your desired transparency effect. You can find Blend Mode options in the Material Properties tab under Settings > Blend Mode.

Alternatively, pack the alpha image texture in the alpha (A) channel of the base color image texture. Connect the alpha output of this Image Texture node to the Alpha channel of the Principled BSDF node.

Note

The Alpha Blend mode is complex for real-time engines to render, and often results in transparency sorting issues. This specifically happens when a singular mesh has a singular material, but shares various material properties controlled by textures.

Tip

To avoid transparency sorting issues, while using Alpha Blend mode, you could separate the mesh that uses that specific material property that requires transparency. If this is not an option, use Alpha Clip mode instead.

10. Transmission

Transmission, which simulates materials that refract light like glass, differs from alpha blending as it also allows for specular reflections, which alpha blending does not.

To control transmission using an image texture, connect an Image Texture node containing the transmission image texture to the Transmission Weight channel of the Principled BSDF node. Ensure the Color Space of the transmission Image Texture node is set to Non-Color.

If no image texture is connected to these channels, the Principled BDSF node will display sliders with values between 0.0 and 1.0 to control these channels.

Tip

If you want to enable refraction on your material, Transmission must be used in addition with Volume. Volume is covered later in the guide.

Note

Transmission is also complex for real-time engines to render. It is therefore recommended, to separate the part of the mesh that only uses Transmission, and create a material for Transmission only on that particular mesh piece.

11. IOR

IOR, or Index of Refraction, is important when using Transmission, Volume, or Specular properties. Control the IOR value by inputting the desired value that corresponds to the transmissive material you wish to replicate.

12. Volume

To use volume effects, set Transmission on the Principled BSDF node. Volume is configured by connecting a Volume Absorption node to the Volume input of the Material Output node. The Volume Absorption node allows you to control two values: Color and Density.

Volume thickness can be adjusted using a thickness image texture, which should be packed in the green (G) channel of an RGB image. Connect the Image Texture node with this thickness image texture to a Separate RGB node. Then, route the output from the Green channel of the Separate RGB node to the Thickness channel of a custom group node named "glTF Material Output node."


Pack Image Resources

For Simulon to successfully read the textures of the 3D asset's materials, textures need to be packed as resources. This can be done by navigating to File > External Data and select Pack Resources.


Native Blender Features

Using Blend files as a format, unlike glTF or USDZ, offers a much broader creative scope for creating 3D assets. Features such as modifiers, particles, physics, and more not only expand creative possibilities but also enable the creation of more technically complex 3D assets.

Note

When uploading a Blend file, make sure the scene is optimized and that there are no unwanted or additional objects that could influence the final render.


Last updated