MaterialX and
MDL
Video captions: In VRED 2024, we started to modernize and rework the complete user interface. Additionally, we added the ability to import Material x and MDL materials. This will give you a ton of more options when working with materials, as they can capture complex material definitions, as they can be procedural, but are an open standard that have been used by many applications out there for better exchangability within and beyond Autodesk.
You may want to download MDL materials from the Nvidia website and Material X from the AMD website for example. Then simply create a Material X or MDL material and then load the material definitions. Now, you will see all editable parameters available. This can improve massively your pipeline when working with materials.
Thanks for watching the video.
Example Material Libraries
Click the links below to access the following material libraries:
- NVIDIA vMaterials Library - A collection of realistic real-world materials described in the NVIDIA Material Definition Language (MDL) designed and verified by NVIDIA Material Specialists for accuracy, control, and consistency.
- AMD GPUOpen MaterialX Library - A downloadable library of ready-to-use PBR materials in the open-source MaterialX format.
- Physical Based database - A database of physically based values for CG artists.
It is not yet possible to create NVIDIA MDL or MaterialX materials from scratch in VRED, neither there is a node-based material editor.
We recommend you monitor your render performance, as some of the materials from these material libraries are huge, contain very advanced parameters or up to 16 textures, and can decrease your render performance dramatically, especially when raytracing.
If you want to write your own material files, since both MaterialX and MDL are plain ascii text files, you should be able to use an external editor to do so.
For additional resources to help understand and use MDL, see NVIDIA MDL - Handbook. It provides background, theory, and practical examples of the language.
MDL Support in OpenGL and in the Raytracers Precomputed Illumination Mode
For the Precomputed Illumination mode in the OpenGL renderer and the CPU and GPU raytracers, MDL materials are processed to a simplified model, due to real time constraints. This simplified model is based on a roughness/metalness PBR model with some modifications. The MDL material gets simplified to the general metal, specular, and diffuse layers modeled with an anisotropic/isotropic GGX BRDF. On top of those layers, there is the clearcoat layer modeled with an isotropic GGX BRDF. Specular transmission is modeled using the absorption_coefficient
and scattering_coefficients
as combined coefficients for the Beer-Lambert Law, without changing the IOR in between boundaries (no refraction or internal reflections) for OpenGL and fully taking into account the IOR between boundaries in the raytracer's Precomputed Illumination mode. Diffuse transmission in OpenGL is approximated by a simplified diffuse lit approximation of subsurface scattering. Transparency is implemented as alpha blending. Emissions don't light the scene.
The process of simplifying an MDL material produces a material as close to the original, based on the OpenGL renderer and CPU/GPU raytracer's Precomputed Illumination mode constraints. In this process, some features of the MDL will be removed or switched to a simpler forms.
Unsupported Features
These features are not supported in the OpenGL renderer and CPU/GPU raytracers Precomputed mode:
- The bidirectional distribution functions:
measured_bsdf
. - All emissive distribution functions.
- All the hair bidirectional scattering distribution functions.
- The distribution function modifiers and combiners:
measured_curve_layer
,thin_film
,directional_factor
, andmeasured_curve_factor
. - Resources: light profile files and BSDF measurement data files.
These features are not supported in only the OpenGL renderer:
- All volume distribution functions.
Partially Supported Features
These features are partially supported in the OpenGL renderer and CPU/GPU raytracers Precomputed mode:
- Supported BSDFs will be approximated as best as possible with
microfacet_ggx_vcavities_bsdf
anddiffuse_reflection_bsdf
. - Supported distribution function modifiers and combiners will be used to combine the metal, specular, diffuse, transmissive, and clearcoat layers.
Working with MaterialX and MDL Materials
VRED 2025.3 now supports the MaterialX SDK 1.39.1, which supports the OpenPBR model, and the MDL SDK 2024.0.4. If using VRED 2025.1, it supports the MDL 2023.1.4 SDK and MaterialX 1.38.9, as well as CHS/JPN/KOR character sets in node, material, output, texture, or materialX filenames when exporting as a USD file.
- Download MDL materials from the Nvidia website and MaterialX from the AMD website.
- In the Material Editor, select
> Create Material, and select either a MaterialX or MDL material.
- Double-click a MaterialX or MDL to load the material definition into VRED. Now, you will see all available editable attributes.
MaterialX and MDL Attributes
Each MaterialX or MDL will have its own unique sections, such as Transmission, Sheen, Emission, or Thin Film, along with the standard ones listed below. The Attributes section contains settings from the original material definition.
Displacement
Video captions: In VRED 2024.1, we further worked on our ongoing UI modernization to improve the customer experience. We have also added new features, which will increase your flexibility with your data pipeline and visual quality.
If you are working with Material X and MDL, I am happy to announce, that we have implemented the support for displacement maps. The displacement map will now be calculated correctly in OpenGL, CPU, and GPU raytracing. This can massively improve your visual quality.
The following is a list of the parameters for changing the displacement of a material:
Intersection Precision - Sets the precision of the displacement evaluation during raytracing. A lower value will provide a more accurate result, while a higher value will improve performance but might cause artefacts on high frequency displacement maps.
Build Precision - Sets the precision of the displacement evaluation during acceleration structure build in raytracing. A lower value will provide a more accurate match but will slow build performance, while a higher value will improve build performance but might miss peaks, if the displacement changes rapidly, causing clamped displacement.
Value Limit (OpenGL) - Sets the range limits for the displacement values in OpenGL. Values outside the range are clamped, causing the displacement to have flat plateaus. The range should, therefore, be large enough to cover the whole range of values but not too large as to limit performance.
Use Accurate Silhouettes in OpenGL - Allows you to calculate the displacement in OpenGL, like in raytracing mode. Selecting it may drastically reduce the performance.
Please note, there are currently a few limitations for displacement mapping in MaterialX and MDL materials:
- Only heightmap displacement maps are supported. For vector displacement maps, only the length of the projection onto the surface normal will be used as displacement.
- Displacement is only applied in object space, at the moment. World space displacements will be treated as object space displacements.
- In OpenGL, artefacts on transparent materials can be visible. This is a known issue.
For information on standard attributes, see the following: