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, 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 mental ray and Iray. Chaos Group, Adobe and ESI use the MDL SDK to add MDL support to their applications.

For MDL Users

For application developers integrating MDL support

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!


Key Features

  • MDL 1.3 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, Instance and other compilation modes fitting different rendering requirements.
  • Backends for compilation of texturing functions:
    • PTX
    • LLVM IR
    • GLSL
  • 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.

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 2017

New Features:

  • 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.

Where to get MDL?

MDL Users

MDL support is used to define materials compatible with NVIDIA’s mental ray and Iray. Chaos Group, Adobe and ESI are developing applications that will incorporate MDL support for consistent look of realistic physical materials and seamless material exchange between supported applications.

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


Application developers integrating MDL

An integration SDK for application developers is available under the MDL SDK program. Membership is dependent upon review.


Request access to the MDL SDK

MDL SDK in Action

The MDL SDK is used by Chaos to support MDL in V-Ray.


NVIDIA vMaterials rendered in Chaos Group’s V-Ray

ESI/IC.IDO uses the MDL SDK to add MDL support to both GLSL as well as Optix based rendering solutions.


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.