ABI compatible with the MDL SDK 2018.1.1 (307800.2890) binary release (see https://developer.nvidia.com/mdl-sdk)
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.
- A new API function
-
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 built-in texture handler can be disabled via the new backend option
"use_builtin_resource_handler"
.
-
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 functionmi::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
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
.
- The handling of archives containing a single module has been fixed in the
-
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 modedf::scatter_transmit
, as defined in the MDL specification.
- The computation of the
- Incorrect code generation for
math::normalize()
with the atomic typesfloat
anddouble
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), which 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.
- Various fixes have been applied to the code generated for BSDF's:
- Initial open source release
- ABI compatible with the MDL SDK 2018.1 (307800.1800) binary release (see https://developer.nvidia.com/mdl-sdk)
- The following features are only available in the binary release and excluded in the
source code release:
- MDL distiller
- Texture baking (see examples/mdl_sdk/execution_cuda for example code for texture baking)
- GLSL compiler back end
- Added: MDL Core API, a lower-level compiler API in the MDL SDK (see src/prod/lib/mdl_core and doc/mdl_coreapi)
- Added: examples for the MDL Core API (see examples/mdl_core and doc/mdl_coreapi)