Nvidia MDL Support in Unreal

Hello,
I read on your page Universal Scene Description in Unreal Engine | Unreal Engine 5.0 Documentation
about the possibility of Nvidia MDL Support in Unreal. USD Shader Attributes | NVIDIA Developer
I have tried this with various permutations of seemingly-correct USD schemas
for MDL materials but simply cannot get it to work - it always gives me an error in the log that it cannot convert the MDL material.

The log message is following:
Ignoring material ‘/Scene/Materials/Volume5Mdl’ bound to prim ‘/Scene/Volume5’ as it contains no valid surface shader source for render context ‘unreal’

Is there a working example with MDL material that can be connected with usd material prim?

A .usda file example excerpt that defines an MDL material looks as follow:

def Xform Scene
{
def Mesh “Volume5”
{

rel material:binding = /Scene/Materials/Volume5Mdl>

}
def “Materials”
{
def Material “Volume5Mdl”
{
token outputs:mdl:displacement.connect = </Scene/Materials/Volume5Mdl/Volume5.outputs:out>
token outputs:mdl:surface.connect = </Scene/Materials/Volume5Mdl/Volume5.outputs:out>
token outputs:mdl:volume.connect = </Scene/Materials/Volume5Mdl/Volume5.outputs:out>

                def Shader "Volume5"
                {
                     uniform token info:implementationSource = "sourceAsset"
                     uniform asset info:mdl:sourceAsset = @Volume5.mdl@
                     uniform token info:mdl:sourceAsset:subIdentifier = "Volume5"
                     token outputs:out
                }
          }
   }

}
USDA and MDL files have been created with 3D Coat and are located in the same directory.
I have uploaded the files here: Question_MDL - Google Drive

1 Like