Materials

Materials in Omniverse are supported using MDL, an open-source material definition language developed by NVIDIA.

Omniverse Materials

Omniverse comes with several template materials, including a physically based glass; a general purpose multi-lobed material useful for dielectric and non-dielectric materials; and USD’s UsdPreviewSurface. These materials are available in Omniverse Create’s Menu Bar under the Create menu.

Material List

#

Template Name

General Use Case

1

OmniPBR

Multi-lobed physically based material for dielectric and non-dielectric materials

2

OmniPBR_ClearCoat

Adds second glossy bsdf to simulate a thin clear coating

3

OmniGlass

New Transmissive, reflective, and refractive material

4

UsdPreviewSurface

Native MDL material based on Pixar’s UsdPreviewSurface proposal.

5

OmniPBR_Opacity 1

Adds opacity controls to OmniPBR

6

OmniPBR_ClearCoat_Opacity 1

Adds opacity controls to OmniPBR_ClearCoat

7

OmniGlass_Opacity 1

Adds opacity controls to OmniGlass
1(1,2,3)

Dedicated Opacity materials are no longer necessary for objects with cutout or fractional opacity. With similar performance we recommend you use the base form of each material template. For legacy, Opacity materials are still include in Omniverse.

OmniPBR

OmniPBR is the default Physically based material available in Omniverse Create. This material can describe most opaque dielectric or non-dielectric material.

Material List

Settings

Effect

Albedo


Base Color

The diffuse color or tint of the material

Albedo Map

Allows use of a texture file for use in color. Should be an albedo map for best results.

Albedo Desaturation

Removes color saturation values through a range from 0-1. 0 is unaffected, 1 is black and white.

Albedo Add

Add (or subtract with negative vlaues) the Base Color to the Albedo Map.

Albedo Brightness

Adjusts the brightness of the albedo map.

Color Tint

Color multiplier to Albedo Map.

Reflectivity


Roughness

Isotropic roughness of the surface.
Range is 0-1, 0 = perfectly reflective surface, 1 = no reflectivity

Roughness Map Influence

Range from 0-1 mixes roughness map power over roughness value.
0 uses Pure Roughness Value
1 uses only Roughness Map

Roughness Map

Allows use of a texture file for use in roughness.

Roughness Map Color Space

Texture Gamma

Metallic amount

A range from 0-1 describing wether the surface is Dielectric or Conductive.
0 is Dielectric (non metal)
1 is Conductive (metallic)

Metallic Map Influence

Range from 0-1 mixes metallic map power over metallic amount.

Metallic Map

Allows use of a texture file for use in metallic surface designation.

Metallic Map Color Space

Texture Gamma

Specular

The specular reflectivity of the material.

Enable ORM texture

Allows use of a “packed” Occlusion, Roughness and Metallic map instead of separate maps for each.

ORM Map

“Packed” ORM map texture input.

ORM Map Color Space

Texture Gamma

AO


Ambient Occlusion to Diffuse

How much ambient occlusion influences the diffuse map in a range of 0-1.
0 is unaffected, 1 is full effect.

Ambient Occlusion Map

Allows use of a texture file for use in Ambient Occlusion.

Amibent Occlusion Map Color Space

Texture Gamma

Emissive


Enable Emission

Toggles Emission on and off.

Emissive Color

Color to emit

Emissive Color Map

Allows use of texture file for use in emission color

Emissive Color Map Color Space

Texture Gamma

Emissive Mask Map

Allows use of a texture file for use in masking out emissive areas.

Emissive Mask Map Color Space

Texture Gamma

Emissive Intensity

How bright is the emissive color

Opacity


Enable Opacity

Enable overall opacity

Enable Opacity Texture

Enables Opacity Map

Opacity Amount

Opacity value of material. Works in conjunction with Opacity Threshold and Fractional Cutout Opacity

Opacity Map

Allows mapping of opacity to a texture file

Opacity Map Color Space

Texture Gamma

Opacity Map Mono Source

Specifies opacity channel or evaluation of the map for opacity.

Opacity Threshold

Cutoff for determining object cutout opacity. If threshold is equal to 0, then use fractional opacity.
If threshold is greater than 0, then object is opaque when opacity is greater than threshold.

Normal


Normal Map Strength

Adjusts intensity of the normal map.

Normal Map

Allows use of a texture file for use in surface bumps.
For best results use the Direct X normal format.

Normal Map Color Space

Texture Gamma

Detail Normal Strength

Adjusts intensity of small surface detail.

Detail Normal Map

Allows use of a texture file for use in small surface detail.
For best results use the Direct X normal format.

Detail Normal Map Color Space

Texture Gamma

UV


Enable Project UVW Coordinates

Enables Projection

Enable World Space

Toggles World or Object based projection.

UV Space Index

Allows selection of UV coordinate space to be used for mapping the material

Translate

Allows offsetting the position of the material

Rotate

Allows texture rotation

Scale

Adjusts the scale of the texture

Detail Texture Translate

Allows detail texture offset

Detail Texture Rotation

Allows detail texture rotation

Detail Texture Scale

Allows detail texture scale

OmniPBR ClearCoat

OmniPBR_ClearCoat is similar to OmniPBR but with an additional glossy bsdf layer. Ideal for car paint or any surface with a thin clear finish.

Material List

Settings

Effect

Albedo


Base Color

The diffuse color or tint of the material

Albedo Map

Allows use of a texture file for use in color. Should be an albedo map for best results.

Albedo Desaturation

Removes color saturation values through a range from 0-1. 0 is unaffected, 1 is black and white.

Albedo Add

Add (or subtract with negative vlaues) the Base Color to the Albedo Map.

Albedo Brightness

Adjusts the brightness of the albedo map.

Color Tint

Color multiplier to Albedo Map.

Reflectivity


Roughness

Isotropic roughness of the surface.
Range is 0-1, 0 = perfectly reflective surface, 1 = no reflectivity

Roughness Map Influence

Range from 0-1 mixes roughness map power over roughness value.
0 uses Pure Roughness Value
1 uses only Roughness Map

Roughness Map

Allows use of a texture file for use in roughness.

Roughness Map Color Space

Texture Gamma

Metallic amount

A range from 0-1 describing wether the surface is Dielectric or Conductive.
0 is Dielectric (non metal)
1 is Conductive (metallic)

Metallic Map Influence

Range from 0-1 mixes metallic map power over metallic amount.

Metallic Map

Allows use of a texture file for use in metallic surface designation.

Metallic Map Color Space

Texture Gamma

Specular

The specular reflectivity of the material.

Enable ORM texture

Allows use of a “packed” Occlusion, Roughness and Metallic map instead of separate maps for each.

ORM Map

“Packed” ORM map texture input.

ORM Map Color Space

Texture Gamma

AO


Ambient Occlusion to Diffuse

How much ambient occlusion influences the diffuse map in a range of 0-1.
0 is unaffected, 1 is full effect.

Ambient Occlusion Map

Allows use of a texture file for use in Ambient Occlusion.

Amibent Occlusion Map Color Space

Texture Gamma

Emissive


Enable Emission

Toggles Emission on and off.

Emissive Color

Color to emit

Emissive Color Map

Allows use of texture file for use in emission color

Emissive Color Map Color Space

Texture Gamma

Emissive Mask Map

Allows use of a texture file for use in masking out emissive areas.

Emissive Mask Map Color Space

Texture Gamma

Emissive Intensity

How bright is the emissive color

Opacity


Enable Opacity

Enable overall opacity

Enable Opacity Texture

Enables Opacity Map

Opacity Amount

Opacity value of material. Works in conjunction with Opacity Threshold and Fractional Cutout Opacity

Opacity Map

Allows mapping of opacity to a texture file

Opacity Map Color Space

Texture Gamma

Opacity Map Mono Source

Specifies opacity channel or evaluation of the map for opacity.

Opacity Threshold

Cutoff for determining object cutout opacity. If threshold is equal to 0, then use fractional opacity.
If threshold is greater than 0, then object is opaque when opacity is greater than threshold.

Clearcoat


Enable Clearcoat Layer

Enables clear coat layer.

Clearcoat Tint

Base color of the clearcoat layer.

Clearcoat Transparency

Weighted blend between the material and the clearcoat.
0 is clearcoat
1 is base material with clearcoat on top

Clearcoat Roughness

Isotropic roughness of the clearcoat. Usually 0.

Clearcoat Weight

The specular reflectivity of the clearcoat layer.

Clearcoat Flatten

Blends between the smooth normal and the bumped base normal.

Clearcoat IOR

Index of Refraction of the clearcoat layer.

Clearcoat Normal Map Strength

Scalar mulitplier of the Clearcoat Normal Map.

Clearcoat Normal Map

Normal map for the clearcoat layer.

Clearcoat Normal Map Color Space

Texture Gamma

Normal


Normal Map Strength

Adjusts intensity of the normal map.

Normal Map

Allows use of a texture file for use in surface bumps.
For best results use the Direct X normal format.

Normal Map Color Space

Texture Gamma

Detail Normal Strength

Adjusts intensity of small surface detail.

Detail Normal Map

Allows use of a texture file for use in small surface detail.
For best results use the Direct X normal format.

Detail Normal Map Color Space

Texture Gamma

UV


Enable Project UVW Coordinates

Enables Projection

Enable World Space

Toggles World or Object based projection.

UV Space Index

Allows selection of UV coordinate space to be used for mapping the material

Translate

Allows offsetting the position of the material

Rotate

Allows texture rotation

Scale

Adjusts the scale of the texture

Detail Texture Translate

Allows detail texture offset

Detail Texture Rotation

Allows detail texture rotation

Detail Texture Scale

Allows detail texture scale

Clearcoat Texture Translate

Allows clearcoat texture offset

Clearcoat Texture Rotation

Allows clearcoat texture rotation

Clearcoat Texture Scale

Allows clearcoat texture scale

OmniGlass

OmniGlass is an improved physical glass model that simulates light transmission through thin walled and transmissive surfaces.

Material List

Settings

Effect

Color


Glass Color

The color or tint of the glass

Glass Color Texture

Texture File input to drive color

Volume Absorption Scale

Controls how much light is absorbed through the surface

Roughness


Glass Roughness

The amount of reflectivity a surface has.
Range is 0-1, 0 = perfectly reflective, 1 = no reflectivity

Roughness Texture Influence

Range from 0-1 mixes roughness map power over roughness value.
0 uses Pure Roughness Value
1 uses only Roughness Map

Roughness Texture

Allows use of a texture file for use in roughness.

Roughness Texture Color Space

Texture Gamma

Refraction


Glass IOR

Incidence of Refraction controls how much the light is “bent” when passing through a surface.

Thin Walled

Toggles thin glass adjustments on and off.

Reflection


Reflection Color Texture

Allows use of a texture to map the reflection color of the glass.

Reflection Color Texture Color Space

Texture Gamma

Reflection Color

The reflected color of the glass.

Normal


Normal Map Texture

Allows use of a texture file for use in surface bumps.

Normal Map Color Space

Texture Gamma

Normal Map Strength

Adjusts intensity of the normal map.

Opacity


Enable Opacity

Enable overall opacity

Enable Opacity Texture

Enables Opacity Map

Opacity Amount

Opacity value of material. Works in conjunction with Opacity Threshold and Fractional Cutout Opacity

Opacity Map

Allows mapping of opacity to a texture file

Opacity Map Color Space

Texture Gamma

Opacity Map Mono Source

Specifies opacity channel or evaluation of the map for opacity.

Opacity Threshold

Cutoff for determining object cutout opacity. If threshold is equal to 0, then use fractional opacity.
If threshold is greater than 0, then object is opaque when opacity is greater than threshold.

UV


Enable Project UVW Coordinates

Enables Projection

Enable World Space

Toggles World or Object based projection.

UV Space Index

Allows selection of UV coordinate space to be used for mapping the material

Translate

Allows offsetting the position of the material

Rotate

Allows texture rotation

Scale

Adjusts the scale of the texture

UsdPreviewSurface

UsdPreviewSurface is based on the proposal from Pixar and is natively supported in Omniverse. It is designed to be flexible and artist friendly and because UsdPreviewSurface is built into USD, scenes do not require any additional references to MDL making it very portable in your USD pipeline.

Diffuse Color

The color of the material

Emissive Color

The emissive color of the material.

Use Specular Workflow

Uses Specular workflow instead of Physical workflow.

Specular Color

Tint color for specular reflections.

Metallic

A range from 0-1 describing wether the surface is Dielectric or Conductive.
0 is Dielectric (non metal)
1 is Conductive (metallic)

Roughness

The amount of reflectivity a surface has. Range is 0-1
0 = perfectly reflective surface
1 = no reflectivity

Clearcoat

Adjusts how “thick” the clearcoat is.

Clearcoat Roughness

The amount of reflectivity a surface has. Range is 0-1
0 = perfectly reflective surface
1 = no reflectivity

Opacity

The opacity of the surface in a range from 0-1.
0 = No Opacity or “See Through”
1 = Fully Opaque

Opacity Threshold

The opacity threshold is a clamp that cuts opacity to 0 if opacity is below the threshold amount.

Index of Refraction

Incidence of Refraction controls how much the light is “bent” when passing through a surface.

Displacement

Shifts the rendered surface by the displacement amount.

Occlusion

Artificially adds shading to the surface.

OmniPBR_Opacity

See OmniPBR.

Note

OmniPBR_Opacity was similar to OmniPBR but with the added support of opacity and opacity mapping. It is no longer needed and we recommend you use OmniPBR.

OmniPBR ClearCoat Opacity

See OmniPBR ClearCoat.

Note

OmniPBR_Clearcoat_Opacity was similar to OmniPBR_ClearCoat but with the added support of opacity and opacity mapping. It is no longer needed and we recommend you use OmniPBR_Clearcoat.

OmniGlass Opacity

See OmniGlass.

Note

OmniGlass_Opacity was similar to OmniGlass but with the added support of opacity and opacity mapping. It is no longer needed and we recommend you use OmniGlass.

Color Space

Texture Slots in Omniverse Apps contain a dropdown allowing the selection of color-space. Choosing the correct color space is critical to correct visual output and should be set to match the Color Space of the image being used. As a general rule, data images like Normal, Roughness, Metallic, etc are best using RAW while full color images like Base/Diffuse Color should be set to sRGB. Auto can be used to help guess the color space but should be used cautiously as it can guess incorrectly based on several factors.

Color Space

Result

Auto

Assigns the Color Space based on metadata or bit depth of the image.
Checks for gamma or color space metadata in the texture file. If the
texture is 8-bit or has 3 channels or if it is 8-bit and has 4
channels, the image is read in sRGB. Otherwise read the image in RAW.

sRGB

Applies sRGB to Linear color transformation.

RAW

Uses texture data as it’s read from the file.

Applying Materials

In order to assign a material to an object, the material must be added to your stage. This can be accomplished several ways. Using drag and drop, you can drag your material to an empty part of the Viewport or to the Stage panel. If you wish to use one our the Omniverse materials, you can use the Create menu.

Material List

Once a material is in the scene, the material can be assigned to any location. With your object or scene location selected, you can assign the material by going to the Details panel and selecting your material in the dropdown under Materials on selected models. If an scene has multiple material, a searchable list box will open so you can select the appropriate material to assign. You can scroll through the list of materials or type the name or partial name of your material.

Apply a Material to a Mesh

  1. Select the mesh you want to apply a material to.

  2. In the details panel look for the heading “Materials on selected models”

  3. In the dropdown under that heading select the material you wish to apply.

  4. At this point your material is applied to the selected mesh and adjustment of the material inputs should present themselves as changes occur.

Search Material List

Sometimes the dropdown list can become exhaustive in length, a search widget found at the top of the dropdown can help alleviate this issue.

../_images/kit_ui_material-search.gif

While menu dropped down:

  1. Select Search bar at top top of drop-down panel.

  2. Type character string in material name.

  3. Select appropriate material.

Drag and Drop Assignment

In Omniverse Create, materials can be dragged from the stage and dropped onto assets or prims based on the selection mode you are in.

  • If you have Object Selection Mode enabled, dragging a material from the stage onto an object will replace the material of ALL prims that make up the selected asset.

  • If you have Prim Selection Mode, dragging a material from the stage to an object will replace the prim where the material is dropped.

Creating Materials

Materials can be easily created in Omniverse Create using the Create > Materials menu.

Creating materials can be done in 2 common ways. #. Create a material on a mesh : This method is when you want to create a material in your scene AND apply it to selected meshe(s). #. Create a Material in a scene : This method simply creates a material inside the scene’s look folder but does NOT apply it to a mesh.

Note

IF your model does not have UVs, you will need to enable “World Space UV” to display textures.

Create Material on Mesh

For a quick easy way to apply a new material to your mesh you can create and automatically apply the material by simply selecting a mesh or several meshes before creating a new material.

  1. Select the mesh you want to apply a material to.

  2. Select Create > Material > Omni PBR, Omni Glass, etc.

  3. In the status bar (bottom right of screen), you will likely see a 0% bar for a few moments. Wait until it completes and disappears to confirm it is fully loaded.

  4. In the Stage window, Select the Looks folder and Find the shader you selected (ie: Omni PBR). Feel free to rename this as desired.

  5. If the material is fully loaded, you should see inputs for the material in the Details panel.

  6. At this point your material is applied to the selected mesh and adjustment of the inputs should present themselves as changes occur.

Create Material in Scene

There are times when you may want to pre-build a series of MDL’s and you do not want to select the meshes each time as a needed step. In this case, you can simply create the materials first, fill them in, and later apply the materials to selected objects.

  1. Deselect all by left clicking a blank area in either the Stage or the Viewport.

  2. Select Create > Material > Omni PBR

  3. In the status bar (bottom right of screen), you will likely see a 0% bar for a few moments. Wait until it completes and disappears to confirm it is fully loaded.

  4. In the Stage window, Select the Looks folder and Find the shader you selected (ie: Omni PBR). Feel free to rename this as desired.

  5. If the material is fully loaded, you should see inputs for the material in the Details panel.

  6. You can now fill in the materials input properties as needed to set it to your desired materials look however it has not been applied yet and will not display.

Material Selection

As materials are an intricate part of the visual process, Omniverse Create has several selection methods for working with Materials.

Looks

Whenever a material is added to a scene, it will be stored in a “looks” directory in your Stage. This is where all material references are shown and managed.

Note

When a USD is nested, it will carry it’s looks folder with it. Therefore it is possible to have several looks folders in the appearing in stage, one for each imported USD is possible.

Scene Material Quick Linking

../_images/kit_materials_locate_material.png

With an asset selected, Click the arrow to right of material input to “jump” to the bound material.

Tip

You can use click the shader ball in lieu of the Arrow for quicker clicking!

../_images/kit_materials_locate_material_2.png

Users now can easily edit the attached material.

Locate MDLs on your Nucleus

Floating MDLs (MDLs existing in a reachable Nucleus Path) can be quickly located from the stage.

Select a Shdader in the scene and locate the Details panel.

../_images/kit_materials_find_mdl.png

Select the Right Arrow next to the module will quickly jump the Content Browser to the MDLs location on the nucleus.

../_images/kit_materials_find_mdl_2.png

Tip

Using the Folder icon will allow reassignment to a different MDL.

Note

Locating MDLs with this method only works if your material exists on the Nucleus, therefore materials generated from the “Create” panel will not by located by this method as they exist as direct system references and not a particular location.

Finding Objects attached to a Material

Selecting all objects bound with a specific material in your current scene can be quite useful at times.

../_images/kit_materials_locate_objects_from_material.png

In the Stage, Right Click on a material and choose “Select Bound Objects”.

../_images/kit_materials_locate_objects_from_material_2.png

Material Swap

Allows you quickly swap one material for another while maintaining any USD connections for the target material.

Omniverse Web Layout

Choose a Target Material

To use the material swap tool, simply select a material you wish to replace in your content browser, then while highlighted, select “User Selected”. The Material to replace input window should now reflect the path to the material you expect to replace.

Choose a Source Material

Next, choose a material in your browser you wish to use to replace. Press User Selected again to populate the input with the path to the source material.

Swap

Once swapped, the target material should now have the same properties and settings as the source material. Any assets using this material will be updated.

UDIM Support

Overview

Omniverse Create has UDIM support done in a way that is both convenient and powerful. By using the standard naming conventions used in a typical UDIM scenario, you simply replace the UDIM number with <UDIM> on ANY texture file input to invoke UDIM support.

Using UDIM’s in Omniverse Create (Video)

Example

If you have a sequence of textures slated for use in a UDIM prepared mesh like this…

my_texture.1001.png

my_texture.1002.png

my_texture.1003.png

Simply replace the number with <UDIM> in any MDL texture input dialogue.

my_texture.<UDIM>.png

Note

Using UDIMs instead of multiple material assignments can benefit larger scenes/meshes by easing the assignment of a multitude of textures by its naturally automated process.

Expanding Your Library

You can expand your library of MDLs by writing your own custom MDLs and importing them. You can also use Substance Designer to develop MDLs using a visual interface.

For more information on Writing your Own MDLs

NVIDIA MDL Language Specification

For more information on Substance Designer and MDL

Substance & MDL

MDL in Substance (Video)

These videos show how to begin your journey into creating MDL files in Substance Designer. Once created they can then be used in Omniverse Create by copying the created MDL into your Omniverse Server.

Part 1

Part 2