PBR Textures

Physically based rendering, or PBR, is a method of producing materials in 3D applications which simulate how light interacts with similar materials in the real world. The goal of physically based rendering is to produce an end product in your 3D rendering engine that provides photorealistic results on your object's surfaces.

Modo has several base materials available which use the PBR model, such as the Principled Shader,Unity Material, and Unreal Material.

Materials that support the PBR model offer a series of inputs which control how light and surface attributes are evaluated for final rendering. Specular Amount, Roughness, and Metallic are some of the inputs you might expect to see on a PBR material.

You can control these inputs through a series of UI controls and sliders within the material in the Shader Tree, or you can import textures into the Shader Tree, where each texture map is assigned to a specific input on the material. The value of each pixel within the imported texture map controls the intensity, color, or value of the specific input.

The Unreal Material input sliders.

PBR Loader

You can use the Modo PBR loader to import textures for use in PBR materials. Click Texture > PBR > Load PBR, or click the PBR icon in the Shading tab above the Shader Tree in the Modo layout.

PBR Textures Filename Conventions

Make sure your textures follow naming conventions when importing them for PBR materials. The PBR loader in Modo assumes that the name and input type of the image are separated by an underscore ("_"). For example, myImageName_inputType.tga, inputType_myImageName.tga are both valid conventions.

The PBR loader searches the image name string and looks for any matches defined in the Shader PBR + Effects popover. You can enter definitions in the Shader PBR + Effects popover to tell Modo which Effect should be assigned to imported textures in the Shader Tree.

For example, an artist enters Diffuse in the Diffuse Color property of the Shader PBR + Effects popover and then imports a texture named myImageName_2k_Diffuse.tga. Modo identifies the Diffuse input type in the filename and assigns the imported texture a Diffuse Color effect in the Shader Tree.

Defining common input types in the Shader PBR + Effects popover.

Imported PBR textures with an Effect assigned to each in the Shader Tree based on the definitions in the Shader PBR + Effects popover.

Note:  Effect in the Shader Tree tells Modo what kind of effect the selected layer should have on the object's surface. See Layer Effects for more information.

Note:  You can assign type names for material inputs in the Shader PBR + Effects popover. These definitions are case insensitive. See PBR Textures for more information.

Importing Unreal PBR Textures with the PBR Loader

1.   From the TexturePBR menu, open the Preferences Popover.

The Shader PBR + Effects popover opens.

2.   Expand the UE4 menu and click Enable.

All definitions under the UE4 menu are enabled.

3.   Under the UE4 menu, enter a string that Modo can search for during import next to each of the texture map types you want to import.

For example, if you use the word basecolor in your diffuse map filenames, type basecolor into the Base Color property, and if you use the word normal in your normal map filenames, type normal into the Normal property.

The texture files on disk.

Definitions entered into the UE4 texture map types based on the texture filenames on disk.

Note:  These terms do not need to be case sensitive, but they need to match the exact term in the filename which has to be separated by an underscore from the rest of the filename, for example myTextureMap_basecolor.png.

Tip:  If you use several terms to define your texture maps, you can use multiple definitions for one input by separating each definition with a semi-colon. For example, Albedo;Base;Col.

4.   Under the Variables menu, select Unreal from the Create Material dropdown.

An Unreal material is created for your PBR textures once you import them.

5.   Under the Variables menu, ensure Create Folder and Use Folder Name are enabled, then close the Shader PBR + Effects popover.

A folder layer is created in the Shader Tree for your PBR textures once textures are imported, and the folder layer is named after the folder containing the textures on disk.

6.   From the TexturePBR menu, click Load PBR.
7.   Select all the textures you want to import for your Unreal material and click Open.

The textures are imported to the Shader Tree and each assigned an Effect based on the definitions created in step 3.

Tip:  Select the material folder layer and use the Polygon Tag dropdown in PropertiesTexture Layers to assign the material to a set of polygons.

The Unreal material assigned to the roof of the asset.

PBR Loader Options

Click Texture > PBR or click the PBR button in the Shading tab above the Shader Tree in the Modo layout to access the PBR loader options.

The PBR loader options.

Loading PBRs

You can load PBR textures by clicking the Load PBR option. This options allow you to select an image or multiple images to import. Once an image is selected, the loader imports the image and any image in the same folder that has the same name into the Shader Tree. If multiple files are selected, it loads just those in without searching for others.

For example, the PBR loader assumes myimagename_2k is the name of the texture, and looks for other files in the same folder with myimagename_2k in the filename: myimagename_2k_diffuse.tga.

If you only want to import a single PBR texture, click Load Single With Effect. This option does not search for other textures in the same folder with the same name.

Each imported image is then assigned an Effect in the Shader Tree based on the input type defined in the file name. In the following example, the PBR loader assumes diffuse is the input type: myimagename_2k_diffuse.tga.

Note:  You can define input types in the PBR Textures.

Setting Effects

You can assign Effects to existing layers in the Shader Tree using the Set Effects options. These layers do not have to contain image clips, and depending on which Set Effect option you select, Modo searches either the layer name or the image clip name for the name and PBR definition.

To set effects to existing layers in the Shader Tree:

1.   Click TexturePBR > Preferences Popover and make sure the Shader PBR + Effects popover is populated with the PBR definitions you require.

See Importing Unreal PBR Textures with the PBR Loader and PBR Textures for more information.

2.   Select a layer in the Shader Tree you would like to automatically assign an Effect to.

Note:  The image clip in the layer or the layer name must use the PBR naming conventions based on the definitions you set in the Shader PBR + Effects popover. See PBR Textures Filename Conventions.

3.   Click Texture > PBR > Set Effects (Selected Layers) if you'd like to automatically assign an effect to only the selected layer based on the layer's image clip, OR

Click Set Effects (Selected and Related) if you'd like to automatically assign effects to the selected layer and all layers sharing the same image clip name, OR

Click Set Effects (Whole Tree) if you'd like to automatically assign effects to all layers in the Shader Tree based on each of the layer names, regardless of whether the layer contains an image clip or not, OR

Click Set Effects (Selected, Item Name) if you'd like to automatically assign effects to the selected layer and all layers sharing the same layer name, regardless of whether the layer contains an image clip or not.

PBR Loader Preferences

Click Texture > PBR > Preferences Popover, or click the PBR button > Preferences Popover in the Shading tab above the Shader Tree in the Modo layout to access the PBR Loader preferences. This opens the Shader PBR + Effects popover.

The Shader PBR + Effects popover.

Variables

Variables settings affect the way PBR textures are imported into the Shader Tree.

Create Folder

When enabled, a single folder layer is created in the Shader Tree for the textures imported with the PBR loader.

Use Folder Name

When enabled, the folder created with Create Folder is renamed to match the name of the folder on disk to which the imported textures belong to.

Create Texture Locator

When enabled, a single texture locator is created and each imported texture is assigned to it.

When disabled, each imported texture is assigned to its own texture locator.

Set Normal To No Colorspace

When enabled, any normal maps imported with the PBR loader have their Colorspace property set to None. When disabled, the Colorspace of imported normal maps is set to default.

Auto Set Type on Rename

When enabled, a listener is added to listen for item rename operations, and when a texture layer is renamed in the Shader Tree, the appropriate Effect is assigned to the item in the Shader Tree.

For example, if a texture layer is renamed to myImageLayer_Normal, the Effect is set to whatever Normal is defined as in the Preferences Popover.

Create Material

Select one of the following options from the Create Material dropdown to add the selected material to the bottom of the group of imported textures in the Shader Tree:

None - Adds no material layer.

Physically Based - Adds a Material layer with the Shading Model set to Physically Based.

Principled - Adds a Material layer with the Shading Model set to Principled.

Unreal - Adds an Unreal Material layer.

Unity - Adds a Unity Material layer.

GLTF - Adds a glTF Material layer.

Common

Common definitions add PBR effects commonly used by shaders such as diffuse maps to the imported textures. These effects can usually be found in the Basic Channels menu in the Effects column of the Shader Tree.

Note:  Definition names are case insensitive.

Enable

Enable all Common definitions. Common definitions are used during the import of texture files through the PBR loader.

Disable

Disable all Common definitions. No Common definitions are used during the import of texture files through the PBR loader.

Diffuse Color

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Diffuse Color effect to the imported texture if it is found.

For example, entering diffuse into the property means any texture imported using the PBR loader with diffuse within the filename, separated by an underscore ("_") are assigned the Diffuse Color effect in the Shader Tree.

Bump

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Bump effect to the imported texture if it is found.

For example, entering bump into the property means any texture imported using the PBR loader with diffuse within the filename, separated by an underscore ("_") are assigned the Bump effect in the Shader Tree.

Displacement

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Displacement effect to the imported texture if it is found.

For example, entering displacement into the property means any texture imported using the PBR loader with displacement within the filename, separated by an underscore ("_") are assigned the Displacement effect in the Shader Tree.

Normal

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Normal effect to the imported texture if it is found.

For example, entering normal into the property means any texture imported using the PBR loader with normal within the filename, separated by an underscore ("_") are assigned the Normal effect in the Shader Tree.

Specular Amount

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Specular Amount effect to the imported texture if it is found.

For example, entering specAmt into the property means any texture imported using the PBR loader with specAmt within the filename, separated by an underscore ("_") are assigned the Specular Amount effect in the Shader Tree.

Roughness

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Roughness effect to the imported texture if it is found.

For example, entering rgh into the property means any texture imported using the PBR loader with rgh within the filename, separated by an underscore ("_") are assigned the Roughness effect in the Shader Tree.

Diffuse Amount

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Diffuse Amount effect to the imported texture if it is found.

For example, entering diffAmt into the property means any texture imported using the PBR loader with diffAmt within the filename, separated by an underscore ("_") are assigned the Diffuse Amount effect in the Shader Tree.

Principled

Principled definitions add Principled PBR effects to the imported textures. These effects can usually be found in the Principled menu in the Effects column of the Shader Tree.

Enable

Enable all Principled definitions. Principled definitions are used during the import of texture files through the PBR loader.

Disable

Disable all Principled definitions. Principled definitions are not used during the import of texture files through the PBR loader.

Metallic

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Principled > Metallic effect to the imported texture if it is found.

For example, entering mtl into the property means any texture imported using the PBR loader with mtl within the filename, separated by an underscore ("_") are assigned the PrincipledMetallic effect in the Shader Tree.

Specular Tint

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Principled > Specular Tint effect to the imported texture if it is found.

For example, entering specTint into the property means any texture imported using the PBR loader with specTint within the filename, separated by an underscore ("_") are assigned the PrincipledSpecular Tint effect in the Shader Tree.

Sheen

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Principled > Sheen effect to the imported texture if it is found.

For example, entering sheen into the property means any texture imported using the PBR loader with sheen within the filename, separated by an underscore ("_") are assigned the PrincipledSheen effect in the Shader Tree.

Sheen Tint

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Principled > Sheen Tint effect to the imported texture if it is found.

For example, entering shnTint into the property means any texture imported using the PBR loader with shnTint within the filename, separated by an underscore ("_") are assigned the PrincipledSheen Tint effect in the Shader Tree.

Flatness

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Principled > Flatness effect to the imported texture if it is found.

For example, entering flat into the property means any texture imported using the PBR loader with flat within the filename, separated by an underscore ("_") are assigned the PrincipledFlatness effect in the Shader Tree.

Anisotropic

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Principled > Anisotropic effect to the imported texture if it is found.

For example, entering anis into the property means any texture imported using the PBR loader with anis within the filename, separated by an underscore ("_") are assigned the Special EffectsAnisotropic effect in the Shader Tree.

UE4

UE4 definitions add Unreal PBR effects to the imported textures. These effects can usually be found in the Unreal menu in the Effects column of the Shader Tree.

Enable

Enable all UE4 definitions. UE4 definitions are used during the import of texture files through the PBR loader.

Disable

Disable all UE4 definitions. UE4 definitions are not used during the import of texture files through the PBR loader.

Metallic

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Metallic effect to the imported texture if it is found.

For example, entering mtl into the property means any texture imported using the PBR loader with mtl within the filename, separated by an underscore ("_") are assigned the Unreal Metallic effect in the Shader Tree.

Base Color

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Base Color effect to the imported texture if it is found.

For example, entering color into the property means any texture imported using the PBR loader with color within the filename, separated by an underscore ("_") are assigned the Unreal Base Color effect in the Shader Tree.

Roughness

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Roughness effect to the imported texture if it is found.

For example, entering rgh into the property means any texture imported using the PBR loader with rgh within the filename, separated by an underscore ("_") are assigned the Unreal Roughness effect in the Shader Tree.

Specular

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Specular effect to the imported texture if it is found.

For example, entering spec into the property means any texture imported using the PBR loader with spec within the filename, separated by an underscore ("_") are assigned the Unreal Specular effect in the Shader Tree.

Emission

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Emissive Color effect to the imported texture if it is found.

For example, entering emisCol into the property means any texture imported using the PBR loader with emisCol within the filename, separated by an underscore ("_") are assigned the Unreal Emissive Color effect in the Shader Tree.

Normal

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Normal effect to the imported texture if it is found.

For example, entering norm into the property means any texture imported using the PBR loader with norm within the filename, separated by an underscore ("_") are assigned the Unreal Normal effect in the Shader Tree.

Bump

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Bump effect to the imported texture if it is found.

For example, entering bump into the property means any texture imported using the PBR loader with bump within the filename, separated by an underscore ("_") are assigned the Unreal Bump effect in the Shader Tree.

Ambient Occlusion

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Ambient Occlusion effect to the imported texture if it is found.

For example, entering AO into the property means any texture imported using the PBR loader with AO within the filename, separated by an underscore ("_") are assigned the Unreal Ambient Occlusion effect in the Shader Tree.

Subsurface Color

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Subsurface Color effect to the imported texture if it is found.

For example, entering srfCol into the property means any texture imported using the PBR loader with srfCol at the end of the file name are assigned the Unreal Subsurface Color effect in the Shader Tree.

Clearcoat

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Clearcoat Amount effect to the imported texture if it is found.

For example, entering clr into the property means any texture imported using the PBR loader with clr within the filename, separated by an underscore ("_") are assigned the Unreal Clearcoat Amount effect in the Shader Tree.

Clearcoat Roughness

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Clearcoat Roughness effect to the imported texture if it is found.

For example, entering clrRgh into the property means any texture imported using the PBR loader with clrRgh within the filename, separated by an underscore ("_") are assigned the Unreal Clearcoat Roughness effect in the Shader Tree.

Opacity

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unreal Opacity effect to the imported texture if it is found.

For example, entering opacity into the property means any texture imported using the PBR loader with opacity within the filename, separated by an underscore ("_") are assigned the Unreal Opacity effect in the Shader Tree.

Unity

Unity definitions add Unity PBR effects to the imported textures. These effects can usually be found in the Unity menu in the Effects column of the Shader Tree.

Enable

Enable all Unity definitions. Unity definitions are used during the import of texture files through the PBR loader.

Disable

Disable all Unity definitions. Unity definitions are not used during the import of texture files through the PBR loader.

Metallic

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Metallic effect to the imported texture if it is found.

For example, entering mtl into the property means any texture imported using the PBR loader with mtl within the filename, separated by an underscore ("_") are assigned the Unity Metallic effect in the Shader Tree.

Albedo

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Albedo effect to the imported texture if it is found.

For example, entering albedo into the property means any texture imported using the PBR loader with albedo within the filename, separated by an underscore ("_") are assigned the Unity Albedo effect in the Shader Tree.

Smoothness

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Smoothness effect to the imported texture if it is found.

For example, entering smooth into the property means any texture imported using the PBR loader with smooth within the filename, separated by an underscore ("_") are assigned the Unity Smoothness effect in the Shader Tree.

Emission

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Emission effect to the imported texture if it is found.

For example, entering emis into the property means any texture imported using the PBR loader with emis within the filename, separated by an underscore ("_") are assigned the Unity Emission effect in the Shader Tree.

Normal

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Normal effect to the imported texture if it is found.

For example, entering normal into the property means any texture imported using the PBR loader with normal within the filename, separated by an underscore ("_") are assigned the Unity Normal effect in the Shader Tree.

Bump

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Bump effect to the imported texture if it is found.

For example, entering bump into the property means any texture imported using the PBR loader with bump within the filename, separated by an underscore ("_") are assigned the Unity Bump effect in the Shader Tree.

Ambient Occlusion

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Ambient Occlusion effect to the imported texture if it is found.

For example, entering AO into the property means any texture imported using the PBR loader with AO within the filename, separated by an underscore ("_") are assigned the Unity Ambient Occlusion effect in the Shader Tree.

Detail Mask

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Detail Mask effect to the imported texture if it is found.

For example, entering detailMask into the property means any texture imported using the PBR loader with detailMask within the filename, separated by an underscore ("_") are assigned the Unity Detail Mask effect in the Shader Tree.

Detail Albedo x2

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Detail Albedo x2 effect to the imported texture if it is found.

For example, entering detailAlbedo into the property means any texture imported using the PBR loader with detailAlbedo within the filename, separated by an underscore ("_") are assigned the Unity Detail Albedo x2 effect in the Shader Tree.

Detail Normal

The PBR loader looks for the name entered here in the filename of imported textures and assigns the Unity Detail Normal effect to the imported texture if it is found.

For example, entering detailNormal into the property means any texture imported using the PBR loader with detailNormal within the filename, separated by an underscore ("_") are assigned the Unity Detail Normal effect in the Shader Tree.

GLTF

GLTF definitions add glTF PBR effects to the imported textures. These effects can usually be found in the glTF menu in the Effects column of the Shader Tree.

Enable

Enable all GLTF definitions. GLTF definitions are used during the import of texture files through the PBR loader.

Disable

Disable all GLTF definitions. GLTF definitions are not used during the import of texture files through the PBR loader.

Metallic

The PBR loader looks for the name entered here in the filename of imported textures and assigns the glTF Metallic effect to the imported texture if it is found.

For example, entering mtl into the property means any texture imported using the PBR loader with mtl within the filename, separated by an underscore ("_") are assigned the glTF Metallic effect in the Shader Tree.

Base Color

The PBR loader looks for the name entered here in the filename of imported textures and assigns the glTF Base Color effect to the imported texture if it is found.

For example, entering color into the property means any texture imported using the PBR loader with color within the filename, separated by an underscore ("_") are assigned the glTF Base Color effect in the Shader Tree.

Roughness

The PBR loader looks for the name entered here in the filename of imported textures and assigns the glTF Roughness effect to the imported texture if it is found.

For example, entering rgh into the property means any texture imported using the PBR loader with rgh within the filename, separated by an underscore ("_") are assigned the glTF Roughness effect in the Shader Tree.

Emission

The PBR loader looks for the name entered here in the filename of imported textures and assigns the glTF Emission effect to the imported texture if it is found.

For example, entering emis into the property means any texture imported using the PBR loader with emis within the filename, separated by an underscore ("_") are assigned the glTF Emission effect in the Shader Tree.

Normal

The PBR loader looks for the name entered here in the filename of imported textures and assigns the glTF Normal effect to the imported texture if it is found.

For example, entering normal into the property means any texture imported using the PBR loader with normal within the filename, separated by an underscore ("_") are assigned the glTF Normal effect in the Shader Tree.

Ambient Occlusion

The PBR loader looks for the name entered here in the filename of imported textures and assigns the glTF Ambient Occlusion effect to the imported texture if it is found.

For example, entering AO into the property means any texture imported using the PBR loader with AO within the filename, separated by an underscore ("_") are assigned the glTF Ambient Occlusion effect in the Shader Tree.

Export Definitions

Export Definitions

Opens a file explorer for you to pick a save location to store a configuration (.cfg) file. The configuration file stores all the material definitions in the Shader PBR + Effects popover. This is useful if you need to share definitions with other Modo users.

Clear Definitions

Removes all existing definitions in the Shader PBR + Effects popover.

Bulk Enable

Disable All

Disables all definitions in the Shader PBR + Effects popover.

Enable All

Enables all definitions in the Shader PBR + Effects popover.