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


For application developers

By clicking the "Agree & Download" button below, 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.

Download MDL SDK 2018

Windows / Linux
Agree & Download
 

Key Features

  • MDL 1.4 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:
    • Native x86
    • PTX
    • LLVM IR
    • GLSL
  • Distill from the MDL source to the capabilities of the render engine
  • C++ component-based API, and plugin architecture for extensibility.
  • Ease the integration of MDL in an OpenGL, DirectX or Vulkan renderer
  • 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 2018


New Features:

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


UDIM support
Complex IOR
New samples

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

Distiller

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


ESI IC.IDO
   

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.

Resources