Announcement: MDL SDK 2018.1.1 released

Get the update on https://developer.nvidia.com/mdl-sdk or the sourcecode directly at https://github.com/NVIDIA/MDL-SDK

Changes compared to previous version (excerpt from the full release notes shipped with the SDK):

MDL SDK 2018.1.1, build 307800.2890
Added and Changed Features
General

  • A new API function mi::neuraylib::ILink unit::add material has been added to translate multiple distribution functions and expressions of a material at once.
  • A new API function mi::neuraylib::IMdl backend::translate material has been added to translate multiple distribution functions and expressions of a material at once.
  • A new function mi::neuraylib::ICompiled material::get connected function db name has been added.
  • A new function IImage api::create mipmaps has been added.
  • A new parameter has been added to the functions mi::neuraylib::ITarget code::execute* to allow passing in user-defined texture access functions.

MDL Compiler and Backends

  • Diffuse EDFs can now be translated to PTX, Native x86 and LLVM IR.
  • Support for passing custom texture access functions has been added to the Native backend. The builtin texture handler can be disabled via the new backend option "use builtin resource handler". M

Distiller and Baker

  • The distilling of some materials with colored transmission has been improved.

MDL SDK examples

  • The example df cuda example now features simple path tracing inside the sphere to enable rendering of transmitting BSDFs.
  • To allow loading of multiple materials within a module, a wildcard suffix "*" is now supported in the material name command line parameter of the example df cuda example.
  • The example df cuda has been updated to illustrate the use of the new function mi::neuraylib::ILink unit::add material.
  • The example execution native has been extended to illustrate the use of user-defined texture access functions.
  • The example mdl browser can now be built on Mac OS.

Fixed Bugs
General

  • The handling of archives containing a single module has been fixed in the mi::neuraylib::IMdl discovery api.
  • The handling of relative search paths has been fixed in the mi::neuraylib::IMdl discovery api. MDL Compiler and Backends
  • Various fixes have been applied to the code generated for BSDF’s:
    • The computation of the evaluate() function for glossy refraction has been fixed (df::simple glossy bsdf, df::microfacet*).
    • The sample() functions for layering and mixing now properly compute the full PDF including the non-selected components.
    • The implementation of df::color clamped mix() has been fixed (the PDF was incorrect and BSDFs potentially got skipped).
    • All mixers now properly clamp weights to 0..1.
    • Total internal reflection is now discarded for glossy BSDF (df::simple glossy bsdf, df::microfacet*) with mode df::scatter transmit, as defined in the MDL spec.
  • Incorrect code generation for math::normalize() with the atomic types float and double has been fixed.
  • The generation of function names for array index functions for modules in packages has been fixed.
  • In rare cases, compilation of a df* function could result in undeclared parameter names (missing param X error). This has been fixed.
  • The compilation of MDL presets of re-exported materials has been fixed.
  • In rare cases, the original name of a preset was not computed, which has been fixed.

MDL Distiller and Baker

  • Weights in nvidia::distilling support::average are now clamped to fix issues with distilling when layering and mixing weights exceed [0-1] and rely on clamping in the bsdf evaluation.