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.
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
Windows / Linux
MDL SDK 2018
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.
- 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
- LLVM IR
- *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.
|Operating System||Windows 7, 8, 10 (64-bit only), Linux and Mac OS|
|Development Environment||C++ Compiler|
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
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
NVIDIA vMaterials rendered in Chaos Group’s V-Ray
Comparing GLSL rendering (left) to Optix based rendering (right) in ESI’s rendering solution
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.