NVIDIA MDL SDK - Get Started



Key Features and Components

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

Requirements

Operating System

Windows 10 - 64-bit, Linux and Mac OS

Development Environment

C++ Compiler


MDL SDK 2020.0.1

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.


By downloading this SDK, 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 open source version is licensed under the BSD-3 clause.

MDL SDK 2020.0.1 (April 2020)

Enhancements:

  • Code generation for hair bsdf added
  • Example for cuda rendering now supports hair materials
  • Runtime support for user scene data added to HLSL backend
  • Example for DXR rendering now supports user scene data (primvars)
  • Example for DXR rendering now supports UDIM textures

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

MDL SDK 2020.0 (March 2020)

Enhancements:

  • Code generation for hair bsdf added
  • Example for cuda rendering now supports hair materials
  • Runtime support for user scene data added to HLSL backend
  • Example for DXR rendering now supports user scene data (primvars)
  • Example for DXR rendering now supports UDIM textures

MDLMDL SDK 2019.1.1 (June 2019)

Enhancements:

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

MDLMDL SDK 2019.1

Enhancements:

  • 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

MDLMDL SDK 2019

Enhancements:

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

MDLMDL SDK 2018.1.2

Enhancements:

  • 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


MDLMDL SDK 2018

Enhancements:

  • 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


Additonal Resources