Enables quick integration of physically-based materials into rendering applications


The NVIDIA MDL SDK is a set of tools to integrate MDL support into rendering applications. It contains components for loading, inspecting, editing of material definitions as well as compiling MDL functions to GLSL, HLSL, Native x86, PTX and LLVM-IR. With the NVIDIA MDL SDK, any physically based renderer can easily add support for MDL and join the MDL eco-system.

The NVIDIA Material Definition Language (MDL) is a programming language for defining physically based materials for rendering. A rich vocabulary of material building blocks based on bidirectional scattering distribution functions (bsdf) allows creation of a wide range of physical materials such as woods, fabrics, translucent plastics and more. The language is flexible enough to allow applications to add support for popular material models without additional changes in a renderers core shading code, examples would be the Epic’s Unreal physical material model or the material model used for in X-Rite’s SVBRDF model. MDL is defined in a way that it's abstract enough to allow renderers of various architectures to support it. A C-like language for defining texturing functions allows the implementation of custom texturing workflows, texture projections and procedural textures.

The MDL SDK API is a comprehensive C++ API for integration and customization tasks, which can be dynamically loaded and linked to visualization applications at runtime. The API allows applications to load MDL modules, analyze and understand the structure of a material so it can build a UI for material editing and render the results.

MDL can be used to define materials compatible with NVIDIA’s Iray. Chaos Group Vray, Adobe Dimension and ESI IC.IDO use the MDL SDK to add MDL support to their applications.

Join the NVIDIA Developer Program

Get access to the latest software releases and tools and receive notifications and invites to join special developer events, early access programs and educational webinars. The program is free-to-join and open to all developers.

Sign up now!

For application users

MDL support is used to define materials compatible with NVIDIA’s Iray. Epic Unreal Studio 4.20, Allegorithmic, Chaos Group Vray, Adobe and ESI also incorporate MDL support for consistent look of realistic physical materials and seamless material exchange between supported applications.

Please contact your application developer of choice to inquire about support for MDL.

For application developers

MDL SDK 2019.2

Windows / Linux
Agree & Download

By clicking the "Agree & Download" button, you are confirming that you have read and agree to be bound by the SOFTWARE DEVELOPER KITS, SAMPLES AND TOOLS LICENSE AGREEMENT for use of the SDK package. The download will begin immediately after clicking on the "Agree & Download" button below.

Open Source version
of the MDL SDK


The open source version is licensed under the BSD-3 clause.

Key Features

  • MDL 1.5 Compatible.
  • Database view on the imported MDL package space.
  • MDL editing. Create instances of functions and materials and connect them to create new materials with new interfaces.
  • Compile materials into DAG's, including inlining, dead code elimination, and complete evaluation of uniform subgraphs, allowing renderers to inspect the material model.
  • Class and Instance compilation modes fitting different rendering requirements.
  • Backends for compilation of texturing functions as well as full materials:
    • Native x86
    • PTX
    • LLVM IR
    • HLSL
    • *GLSL (no material compilation yet)
  • *Distill from the MDL source to the capabilities of the render engine.
  • C++ component-based API, and plugin architecture for extensibility.
  • SDK code examples for best practice use of the SDK.
  • For use on GPU as well as CPU.
  • Support for MDL's module system. Import and export of MDL modules including dependencies.
* feature not included in open source version

Learn more about MDL SDK Architecture

Operating System Windows 7, 8, 10 (64-bit only), Linux and Mac OS
Development Environment C++ Compiler

MDL SDK 2019.2 (Dec 2019)


  • Multi-scatter extension for glossy BSDFs
  • New sheen BSDF for velvet-like materials
  • Access to user data on geometric primitives (aka primvars)
  • More freedom for choosing filenames/UTF8 filenames
  • New tint modifier for hair
  • New transmission tint modifier to independently color reflections and refractions

For a complete list of changes and fixes please see the release notes shipped with the SDK

MDL SDK 2019.1.1 (June 2019)


  • Support for annotations on annotation declarations
  • Configurable parameter folding in class compilation related to ternary operators
  • Performance improvements for MDLE files

For a complete list of changes and fixes please see the release notes shipped with the SDK

MDL SDK 2019.1


  • New HLSL backend including full material compilation
  • DXR rendering sample using HLSL
  • MDL 1.5
    • MDL encapsulated file (MDLE)
    • New BSDF: measured_factor
    • Localization (final)
    • New type hair_bsdf and interface for chiang_hair_bsdf

For a complete list of changes and fixes please see the release notes shipped with the SDK

MDL SDK 2019


  • New distilling target supporting anisotropy, volume, glossy transmission with refraction
  • MDL 1.5 feature preview: MDL encapsulated file format

For a complete list of changes and fixes please see the release notes shipped with the SDK

MDL SDK 2018.1.2


  • First pre-release draft of the NVIDIA Material Definition Language 1.5: Appendix E - Internationalization has been added to the documentation set.
  • New standalone tool to manage MDL archives has been added (mdlm).
  • Support for removal of MDL modules from the database has been added.
  • Support for automatic derivatives for 2D texture lookups has been added to the PTX, Native x86 and LLVM IR backends.
  • support for more distribution functions (DF) (spot EDF, measured EDF, measured BSDF) has been added to the PTX, Native x86 and LLVM IR backends.

For a complete list of changes and fixes please see the release notes shipped with the SDK

MDL SDK 2018


  • Supports MDL 1.4
    • Supports UDIM, simplifies texturing workflows by blending multiple textures into a single UV space.
    • Color weights for BSDF layering allows for easier modelling of realistic colored coatings
    • Complex ior: accurately render metals by specifying their complex index of refraction
  • Improved performance on PTX/LLVM code
    • Better state interface reducing setup time
    • Improved code generation with better optimization
  • New API + sample for discovering MDL content on disk
  • New Samples
    • Sample implementation of the surface bsdf/whole material model. MDL SDK can now create code for evaluating the material using LLVM/PTX
    • Sample showing distilling to UE4 material model including texture baking
    • Rendering samples for Optix and CUDA using the sample material implementation
    • GLSL rendering sample with distilling using glsl code or baking for texturing functions
    • MDL Browser Sample

UDIM support
Complex IOR
New samples

MDL SDK 2017


  • Ease the integration of MDL in an OpenGL, DirectX or Vulkan renderer
  • Distill from the MDL source to the capabilities of the render engine
  • Gracefully and consistently adjust the material appearance for a common appearance across tools


MDL materials represent all the physical parameters needed to accurately reproduce a material in CGI.

Accuracy is important in design applications as the renders can drive design decisions.

Many of these parameters do not directly translate to real-time engines but the distiller allows customers to keep the original high fidelity material definition as reference while adapting or distilling the look with as much fidelity as possible to the real-time engine.

MDL SDK in Action

Chaos Group V-ray

NVIDIA vMaterials rendered in Chaos Group’s V-Ray


Comparing GLSL rendering (left) to Optix based rendering (right) in ESI’s rendering solution

Developer Forums

Our forum community is where Developers can ask questions, share experiences and participate in discussions with NVIDIA and other experts in the field.

Check out available forums here.