MDL materials and properties panel

kinda new to MDL and don’t have any real means to author one via a robust route, but I’ve been trying to play around with hacking a few files in a text editor

is there any trick to getting params to show up in the property editor like the inbuilt materials do?
I seem to be able to tweak hardcoded values in the MDL itself (and Create will reflect those changes in the viewport) but can’t work out how to persuade Create to build any kind of parameter interface in the UI when it binds the material and creates a shader instance

ok seems like yet another premature post! :)

Seems the problem was just impatience on my end, and the UI did indeed show up after 30 seconds or so (compile time I guess?)

I do have a few questions though :)

I’ve managed to hack together a half decent ubershader with SSS built in - I am actually quite surprised how well this did what I expected it to, once I had ironed out the issues with commas in the wrong place, etc. especially given I had never written any MDL before yesterday!

however my shader doesn’t work much at all in realtime mode (it’s good in pathtracing mode) - is that a limitation of externally rolled MDL’s in general currently or more a case of it only supports specific things and I’m breaking those restrictions? (the SSS uses both a diffuse transmission bsdf and a combined surface scattering and volume material as that’s apparently the only way to do it with the built in shading code)

also had some issues getting some attributes to show up in the right groups (I eventually clocked that Create will follow the annotation blocks in the MDL file for this) - you can see here that roughness and metalicity skipped the base group even though they have exactly the same grouping annotation as the ones that are:

pathtracing mode - lovely:

realtime - broken:

with indirect GI turned on extra broken:

1 Like

Additional question - what version of MDL does Create (Kit)'s compiler support exactly?

there’s some recent features I would love to use, but changing the MDL header to say 1.6 for example just led to a whole bunch of errors related to not finding core modules, so I’m assuming its at least not entirely current?

Hi @bold.stelvis
Thank you for testing Omniverse.
We’re continuing to make improvements with materials in RT mode. In the future we’ll have improved distilling so that custom materials more closely match PT mode. Currently complex materials with multiple bsdfs have issues in RT mode. But we expect improvements soon.

Thanks
@fpliu

got you - thanks!

ignore the note on MDL versions - 1.6 works fine after all, must have been some pilot error on my part

also found the issue on some material params not appearing in the expected groups - it seems using certain keywords (in my case ‘metallic’ and ‘roughness’) as variable names in the MDL export material parameter declarations causes Create to list them under ‘inputs’ rather than use the supplied group name

I think this is not an actual MDL issue itself (the compiler does not complain) but seems more like its tripping up something internal on the Create side when its parsing the MDL file

not a major issue