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