Daz Studio Pro 4.20[.0.x] - NVIDIA Iray

rbtwhizrbtwhiz Posts: 2,171
edited April 2022 in Daz Studio Discussion

When a new build of Daz Studio includes a new version of the NVIDIA Iray renderer, the new build of the renderer comes with its own set of bug fixes, new features, adjustments to existing features, etc. Since the release of Daz Studio that followed the initial introduction of NVIDIA Iray in Daz Studio (4.8 - initial introduction, 4.9 - following release), a list of its changes have typically been made available in the posts that immediately follow the announcement. In many cases, while the information contained within the posts was/is useful to those that want/need it, it seemed to go unread by many. This same information would also then be reposted when a Public Build was eventually promoted to General Release.

To address some of these issues and bring more visibility to the changes for those who want/need it, we now split these posts off into their own thread. A separate discussion thread will remain available (linked below), but the thread itself will be closed for comment so as to avoid the information being buried by the discussion and to provide notification through regular features of the forum software.


*Note: The entries below come directly from the NVIDIA Iray release notes. Some entries, such as the mention of Iray Realtime, Linux, etc, currently have no bearing on Daz Studio itself but are included for completeness.

 


Public Build (Beta) Threads:

 

  • 4.20.0.17 (April 21, 2022)
    • 4.20.0.12 (April 8, 2022)
    • 4.20.0.11 (March 25, 2022)
    • 4.20.0.8 (March 17, 2022)
    • 4.20.0.6 (March 11, 2022)
    • 4.20.0.5 (March 9, 2022)
    • 4.20.0.4 (March 3, 2022)
    • 4.20.0.3 (February 24, 2022)
    • 4.20.0.2 (February 17, 2022)
    • 4.16.1.47 (February 14, 2022)
    • 4.16.1.43 (February 4, 2022)
    • 4.16.1.40 (January 31, 2022)
    • 4.16.1.34 (January 21, 2022)
    • 4.16.1.31 (January 14, 2022)
    • 4.16.1.21 (December 22, 2021)
    • 4.16.1.17 (December 17, 2021)
    • 4.16.1.6 (December 1, 2021)
    • 4.16.1.2 (November 22, 2021)
    • 4.15.1.96 (November 12, 2021)
    • 4.15.1.91 (November 3, 2021)
    • 4.15.1.84 (October 29, 2021)
    • 4.15.1.72 (October 7, 2021)

 


General Release Thread:

 

  • 4.20.0.17 (April 29, 2022)
    • 4.20.0.2 (February 18, 2022)

 


Previous Thread:

 

Post edited by rbtwhiz on

Comments

  • rbtwhizrbtwhiz Posts: 2,171

    Iray 2021.0.0 beta, build 344800.351

    Known Issues and Restrictions

    • Due to the lack of CUDA capable hardware and thus also lack of a modern CUDA toolkit, CUDA acceleration is now disabled on macOS builds.
    • Note that the output of normal AOV/aux buffer renderings now feature a flipped z component of the normals. This now matches the most common normal map data layouts.
    • Remove legacy mia material parameter matching from thin-walled glossy BSDF handling, i.e. don’t multiply exponent by ’7’ for thin-walled transmission. This affects df::simple_glossy_bsdf for modes df::scatter_reflect_transmit and df::scatter_transmit (bug 19598).
    • The new heterogeneous volume support of Iray Photoreal does not yet feature a CPU backend. Thus, only GPU rendering of VDB files via IndeX Direct is supported for now. CPU support will be added with one of the next minor releases.
    • The new heterogeneous volume support of Iray Photoreal does not yet support emission (via EDFs). This will be added in the next major release.

    Added and Changed Features

    • General
      • The Windows build is now built using VC142 (Visual Studio 2019).
      • Minimum driver requirement (to properly support both CUDA 11.2.2 and OptiX 7.3) is 465.89 on Windows.
      • Support for macOS on Arm is still being worked on, while Windows on Arm is not currently planned for.
      • Updated general libraries:
        • OpenSSL 1.1.1k
        • SQLite 3.34.1
        • FreeImage-3.19.x-r1859 (fixes (at least) CVE-2019-12211 and CVE-2019-12212)
        • FFmpeg 4.3.2
        • CUDA 11.2.2
        • OptiX 7.3
        • NVAPI R460
        • zlib 1.2.11 Build 339600
        • AxF 1.8.1
      • Added OpenVDB support via the IndeX Direct 1.0 library.
      • Added official support for caddon AIX files for spectral texture support (AIX 1.6.2).
      • Added NVIDIA Texture Tools (NVTT) support to the dds plugin (e.g. to support subformats BC4-7 (with/without DirectX 10 header)).
      • Added error message with details if a DDS texture can not be loaded.
      • Completed support for ICanvas_opengl.
      • New backplate_mesh_function attribute (for now limited to be picked up only by Iray Photoreal) that adds support for multiple backplates.
    • Iray Photoreal & Iray Interactive
      • Implement new (optional) high quality B-spline interpolation for bump maps (via file_bump_texture(),see MDL section).
      • MDL 1.7 support
        • Unbounded EDF mix
        • (Color-)unbounded mix for BSDFs
        • df::sheen_bsdf’s multiscatter parameter
        • df::directional_factor for EDFs
        • df::color_*_mix, df::tint and df::unbounded_mix for VDFs
      • Improved EDF support
        • Remove the restriction that only a single EDF is supported, so now any EDF hierarchy made possible via MDL will work
        • Spectral values are now fully supported everywhere (so not just the intensity slot)
        • Texturing of EDF parameters will work now (Photoreal only, Interactive still doesn’t support any texturing on lights)
      • All AOV/aux buffers are rendered progressively by default now (i.e. progressive_aux_canvas true), to aid the quality of AI denoiser, Toon and SSIM post-processing steps. In addition a warning is emitted if it is manually disabled, but one of these post-processing steps is enabled.
      • Compute preprocessing of environment importance sampling on the GPU to speed up loading/switching of environments. Note that in addition, the default baking resolution (environment_lighting_resolution) of the environment was increased to better match "modern" output resolutions (from 512 to 2048). For some simple scenes (e.g. objects in empty space) that rely on that default, rendering itself may become a bit slower due to that.
      • Support MDL materials used as environment functions.
    • Iray Photoreal
      • Support to render OpenVDB files (heterogeneous/inhomogeneous volume data) by employing the IndeX Direct library.
      • Support for better volume caustics (i.e. working caustic sampler in volumes). Note that the caustic sampler still lacks connections from SSS materials to cameras placed outside the object, improvements to this will be added to the 2021.0 final.
      • Faster interactive rendering on RTX GPUs (when running the interactive scheduling mode, and if no geometry motion blur is used), at the price of temporary/intermediate slightly biased results. This means that during the display of the progressive rendering results some pixel values can be slightly off, especially during the first iterations of rendering. Note though that the final image (i.e. being stopped by one of the criteria) will always be correct, same as before.
      • Official spectral texture support.
      • The volume stack has been extended to support priorities. An (optional) attribute volume_priority of type mi::Sint8 can be set to define which object’s volume properties take precedence in case of overlap.
      • New "white mode", i.e. the ability to render a scene (partially) with a white diffuse material via the iray_white_mode_enabled boolean scene option. Note that certain material instances can be excluded from being replaced by the white material by employing the boolean attribute exclude_from_white_mode.
      • Improved multi-tenant support
        • Added a render context option scheduling_niceness which works in analogy to, and via the same mechanism as, ui_responsiveness.
        • Extended the device throttling mechanism that is used by ui_responsiveness to all internal scheduling modes (e.g. when rendering larger resolutions, or all RTX GPUs in general). Note that this can lead to slightly reduced rendering performance when rendering on GPUs that drive displays by default, but at the benefit of better UI responsiveness.
        • Introduced a render context option device_mask for more fine grained control over device usage.
        • Introduced a render context option cluster_partition for more fine grained control over cluster usage.
    • Iray Interactive
      •  Added section capping for area lights (nvbugs 3074857).
    • Material Definition Language (MDL)
      • This release changes the naming convention used for the DB elements of modules, material definitions, and function definitions. This is necessary to avoid problems that exist with the old naming scheme when names contain certain meta-characters. See IMdl_configuration::set_encoded_names_enabled() for details. This feature is enabled by default.
      • Added the new interface IMdl_module_builder which allows incremental building of new MDL modules, as well as editing of existing MDL modules. This interface allows the definition of new struct and enum types, and of new functions and materials (including variants). It also supports references to previous entities from the same module, explicit control of frequency modifiers for parameters, and parameters without defaults. An entity can also be removed from a module (if that entity is unreferenced).
        The new interface can be obtained from IMdl_factory::create_module_builder(). See also the new example_mdl example. The method  IMdl_factory::create_variants() is deprecated and still available if MI_NEURAYLIB_DEPRECATED_12_0 is defined.
      • The API can be configured to treat materials as if they are simply functions with the return type material. This means interfaces like IFunction_definition and IFunction_call can also be used for materials. See IMdl_configuration::set_materials_are_functions() for details. This feature is disabled by default. It will be enabled by default in a future release.
      • The new method IMdl_factory::uniform_analysis() allows to check the uniform property of an expression graph.
      • Improved performance for loading of MDL modules, in particular parallel loading of modules, and reloading of modules.
      • Added force_default_gamma parameter to IMdl_impexp_api::export_canvas() and IExport_api::export_canvas() to perform an automatic gamma adjustment based on the pixel type chosen for export.
      • The implementation of IFunction_definition::get_thumbnail() and IMaterial_definition::get_thumbnail() has been changed to compute the value lazily on demand.
      • The system locale used in methods of IMdl_i18n_configuration is restricted to two-letter strings to follow ISO 639-1.
        Reduced lock scope during MDL module loading. This avoids callbacks to the entity resolver and related interfaces while holding this lock.
      • Added get_mdl_parameter_type_name(), get_return_type() and get_semantic() on IMaterial_definition for consistency with function definition. Likewise, added get_return_type() on IMaterial_instance.
      • Added IMdl_impexp_api::get_mdl_module_name() to obtain the MDL module name for a module identified by its file name.
      • Added IType_factory::clone() for type lists.
      • The MDL compiler warns now if a literal value would loose precision in a implicit (or explicit) conversion.
      • Improved half vector computation for custom-curve/measured-curve layering: assume refraction for non-thin-walled materials to loose less energy for non-physical glass materials constructed from separate BRDF and BTDF.
      • Protect custom-curve evaluations against cosines > 1 to avoid numerical corner cases.
      • base.mdl now exposes a smooth B-spline interpolation mode for base::file_bump_texture that offers superior bump mapping at little additional runtime cost.
      • Restricted several annotations to real functions (i.e. not materials): intrinsic(), throws(), const_expr(), noinline().
      • Slightly improved generated HLSL code: the HLSL optimizer can now fold constructions like vector3(a.x, a.y, a.z) into a.
      • Added support for backend option "use renderer adapt normal" to HLSL backend.
      • IMdl_backend::translate_environment() accepts now a function that returns a base::texture_return layout-compatible type (nvbugs 200714062, bug 19608).
      • Improved speed of the DAG compiler computing material hashes. (nvbugs 200700907).
      • Added some mathematical identities for math functions in the DAG optimizer.
      • Allowed annotation ui_order() on functions and materials.
      • MDL 1.7 support in libbsdf:
        • Unbounded EDF mix.
        • (Color-)unbounded mix for BSDFs.
        • df::sheen_bsdf’s multiscatter parameter.
        • df::directional_factor for EDFs.
      • Added support for MDL 1.7 distribution functions to the MDL distiller.
      • Refactored the MDL Distiller to a plugin. Using the MDL Distiller requires now that the new plugin library mdl_distiller.so or mdl_distiller.dll is loaded with the
        IPlugin_configuration::load_plugin_library() function beforehand.
    • AxF importer
      • Support for spectral color and texture data in SVBRDF, carpaint, and volumetric representations has been added.
      • New AxF 1.8 SVBRDF representations with transmission color are now supported.
    • MI importer/exporter
      • Added support for importing and exporting attributes of type Ref as ref rather than as string.
      • The .mi file format supports a new naming scheme for MDL entities. This naming scheme avoids problems with template-like MDL functions, e.g., the array constructor. It also avoids problems when names contain certain meta-characters. Import and export of that new naming scheme requires that encoded names are enabled (see IMdl_configuration::set_encoded_names_enabled()). The .mi exporter still uses the old naming scheme by default. The exporter option mi_mdl_new_naming_scheme can be used to control that behavior.
    • Deep Learning based Denoiser
      • Due to recent improvements in the NVIDIA driver, Iray now also uses the normal buffer to provide more information to the denoiser. This leads to better results, especially for lower sample rates/interactive usage, and detailed/small geometry.
      • Improve quality of denoising in general at low sample counts for detailed/small geometry.
  • rbtwhizrbtwhiz Posts: 2,171

    Iray 2021.0.0 beta, build 344800.351 (continued)

    Fixed Bugs

    • General
      • Handle case if the type of an object has changed in traversal (e.g. from a polygon mesh to a triangle mesh), which could have simply lead to a crash.
      • Speed up initial scene traversal of scenes with many materials by parallelizing MDL material compilation.
      • Fixed CUDA pixel type conversion path for some pixel types (e.g. PT_SINT32, PT_FLOAT32_3, and PT_FLOAT32_4).
      • Significantly accelerated pixel conversion to CPU canvas (if originating from GPU).
      • Fixed the rendering of camera windows on the same canvas (sometimes resetted the canvas) (nvbugs 3122569).
      • Fixed (de)serialization mismatch, leading to TCPNET net errors (nvbugs 200706898).
      • Properly track more of the internal CUDA memory allocations (does not include SSIM/render progress yet).
      • Improved performance for semi-duplicate render target canvases (like same LPE canvas with and without alpha).
      • Fixed some potential problems with updates to userdata.
      • Fixed crash in Iray Bridge client if the render target has no canvas parameters.
    • Iray Photoreal & Iray Interactive
      • More optimal/native support for the new Ampere GPUs (SM 8.6).
      • Improved rendering performance for MDL JIT materials (on the average).
      • Speed up transformation changes of object instances in scenes that feature a large number of materials (unless the affected objects materials in question make use of transformation matrices).
      • Fixed the handling of textured inputs for the roughness of diffuse materials (nvbugs 200692801).
      • Detect and output correct error messages if the wrong CUDA runtime library is used.
      • Fixed handling of math::lerp(float3, float3, float) in the material converter.
      • Fixed texture wrap mode for df::measured_factor.
      • Fixed a crash when using a non-trivial input (e.g. function call) for a parameter of a decal projector MDL function (nvbugs 200708284).
    • Iray Photoreal
      • Improved convergence while showing less temporary artifacts (’spiral’ like patterns) for the caustic sampler.
      • Changed handling of extinction in SSS materials/volumes if non-watertight meshes are used.
      • Improved rendering of SSS materials/volumes (less temporary artifacts, better convergence).
      • Fixed an issue where the ground was handled differently for volumes and surface. Now both handle the ground as solid.
      • Fixed an illegal memory access when using irradiance probes (nvbugs 200698530).
      • Consider motion time when setting up decal transformations.
      • Employed the newly revamped RTX fiber intersector via OptiX 7.3. This leads to higher performance in most fiber heavy scenes, along with slightly improved precision.
      • Slightly improved fiber geometry processing.
      • Cutouts on mesh emitters are no longer ignored by parts of the renderer, leading to more correct results.
      • Optimized common use case of only one material region per object, especially with sparse attribute arrays.
      • Fixed some wrong error handling for OptiX Prime (i.e. pre-RTX GPUs) if CPU rendering was disabled.
      • Fixed update of objects with deformation motion blur for OptiX Prime (i.e. pre-RTX GPUs) (nvbugs 200699439).
      • Fixed out-of-bounds access for very low resolution 3D textures.
      • Fixed update of objects with deformation motion blur on pre-RTX GPUs (nvbugs 200699439). 
      • Also consider backface when checking for emissive materials when updating the scene (fixes e.g. crashes/inconsistencies with auto instancing enabled when transforming emitting objects) (nvbugs 3260895).
    • Iray Interactive
      • Guard against malformed tangent space by the incoming geometry (e.g. normals (almost) aligned with the tangent vectors) (nvbugs 200720959).
      • Made Iray Interactive consistent with Iray Photoreal’s backplate behavior by using the correct background color/image/mesh when being outside a finite environment dome (nvbugs 200699016).
      • Fixed invalid tag access errors for the host caches (nvbugs 200701339).
      • Improved performance for some scene setups on pre-RTX GPUs.
      • Fixed ray-plane intersections when the ray is parallel to the plane (nvbugs 3042132).
      • Fixed handling of section capping for the UV coordinates auxiliary buffer (nvbugs 200693469).
      • Added proper tracking of tonemapper changes to force a render restart (nvbugs 3268527).
    • Material Definition Language (MDL)
      • Fixed IFunction_definition::create_function_call() for the special case of the array constructor: This function uses positional arguments. Ensure that user-supplied argument names are ignored, and instead "0", "1", and so on, are actually used.
      • Fixed the methods ILink_unit::add_material_path() and ILink_unit::add_material_df() if the path involves a template-like function.
      • Fixed checks for cycles in call graphs in IMaterial_instance::create_compiled_material().
      • Fixed the warnings about removed support for deprecation macros in include/mi/neuraylib/version.h to support MS Visual Studio.
      • Avoid optimizations while adding to link units, making it impossible to select expression paths from certain distilled materials.
      • Handle correctly auto-import of types that are used only inside struct types.
      • Fixed textures with different gamma modes being reported as one texture in ITarget_code, when resource resolving was disabled.
      • In some rare cases array constructors of kind T[](e_1, e_2, ...) were handled incorrectly when exported into an MDLE file. Fixed now.
      • Fixed scope handling for declarations inside then/else and loop bodies.
      • Disable tangent approximation in ::base::transform_coordinate() to fix a performance regression (Jira OM-26192).
      • Fixed a potential crash when an array size constant is used in a body of a function that gets inlined in the DAG representation.
      • Fixed auxiliary base normals (libbsdf).
      • Fixed handling of first component in unbounded mixers (libbsdf).
      • Reduced energy loss of df::diffuse_transmission_bsdf as lower layer of df::fresnel_layer, df::custom_curve_layer, df::measured_curve_layer (libbsdf).
      • Fixed incorrect contribution of df::diffuse_transmission_bsdf (for reflection directions) and df::diffuse_reflection_bsdf (for transmission directions) for evaluation with bumped normals.
      • Ensure that resources cloned from another module due to a default argument are included into this module’s resource table (Jira OM-23179).
      • Fixed wrong function names generated for HLSL code (contained sometimes ’.’).
      • Removed bogus error message if comparison of MDLEs returns inequality.
      • Fixed wrong return code when setting options for LLVM-based backends.
      • Use non-refracted transmission directions for non-Fresnel curve layering (libbsdf). This restores pre-2020.1.3 behavior (Jira OM-27060).
      • Fixed handling of resources in reloaded modules.
      • Fixed module builder such that MDL file paths are used for resources, not plain OS file names.
      • Fixed IBaker::bake_texture() to support all pixel types for GPU baking.
      • Fixed a crash when importing a function with texture-typed default arguments (bug 19589, Jira OM-23179).
      • Fixed a crash when df::tint(color,edf) was used in some context (bug 19579).
      • Fixed computation of derivation info for builtin functions that do not have a declaration (Jira OM-27580).
      • Fixed code generation not restoring import tables of modules (Jira OM-23343).
      • Fixed calculation of the lambda call result index in PTX backend.
      • Fixed wrong static storage modifier for functions in HLSL (bug 19588).
      • Fixed generated function names for HLSL, no more "func0" etc.
      • Fixed rare code generation failure accessing the first member of a nested compound type (HLSL).
      • Fixed material converter constant folding for math::lerp() (bug 19595).
      • Fixed the pdf computation of all microfacet BSDFs in mode df::scatter_reflect_transmit to contain the selection probability (libbsdf).
      • MDL 1.7 support
        • Unbounded EDF mix
        • (Color-)unbounded mix for BSDFs
        • df::sheen_bsdf’s multiscatter parameter
        • df::directional_factor for EDFs
    • AxF importer
      • Optimize certain materials that feature single pixel normal maps.
    • MI importer/exporter
      • Fixed an issue with very large binary vector data blocks.
      • Changed .mib importer such that it overwrites MDL modules already existing in the database (as for any other scene element).
      • Fixed .mib importer to handle prefix option correctly w.r.t. MDL elements.
      • Fixed logic error during MDL parameter expression resolution that caused an endless loop (nvbugs 200697184).
      • Fixed implementation of exporting individual elements (the shader decl file was missing and the recurse option was ignored).
  • rbtwhizrbtwhiz Posts: 2,171

    Iray 2021.0.0, build 344800.2052

    Added and Changed Features

    • General
      • Switched to static CUDA runtime, so no need to ship the CUDA runtime libs (libcudart.so/.dll/.dylib) anymore. Note that macOS still needs the dynamic libraries (for now).
      • Updated general libraries:
        • CUDA 11.3
        • NVAPI R465
        • JsonCpp 1.9.4 (this one was already used in older releases, even including 2020.0, but the version number was still at 1.9.3)
        • OpenVDB 7.2.2
      • Added new scene-option iray_texture_compression with values "off", "medium" or "high": This globally overrides texture compression options as given on the ITexture itself.
      • Added support for channel selectors for VDB-volumes defined in the texture_3d constructor inside MDL files.
      • Build openvdb_integration plugin on all supported platforms.
    • Iray Photoreal
      • Added previously missing CPU support of IndeX Direct for inhomogeneous volume rendering.
      • Added volume picking.
      • Added release of host texture-tile memory right after the internal host texture conversion, except for environment textures and backplates to avoid duplicated host texture memory usage. Note that this only works for textures that support lazy loading so that the data can be re-fetched from disk again if needed.
      • Added auxiliary ambient occlusion buffer support. Its parameters are controlled by (a subset of) existing Iray Interactive’s scene options (​but now also aliased from new options without the irt_ prefix):
        • irt_ambient_falloff
        • irt_ambient_falloff_min_distance
        • irt_ambient_falloff_max_distance.
    • Material Definition Language (MDL)
      • MDL 1.7 Language Specification
        • OpenVDB has been added as supported 3D texture format.
        • Minimum required versions have been added for OpenEXR, Ptex, and OpenVDB to conform to the VFX Reference Platform CY2021.
        • Supported texture selector string values have been added for each supported texture format.
        • Texture sequences with a sequence marker have been added to the definition of texture file paths.
        • The auto placeholder type specifier has been added for variable declarations and function return types.
        • The float type is required to use a 32-bit representation following the IEEE 754 single precision standard. Floating point operations for float and double may deviate but shall not interrupt nor terminate processing.
        • The int type is required to be a 32-bit signed integer in two’s complement form with wrap-around operations and without exceptions.
        • The restrictions on the texture types, light profile data type, and measured BSDF data type have been removed. They can now be used for local variable types, return types, field types in user defined structures, and element type of arrays.
        • A selector string parameter has been added to the texture_2d and texture_3d constructors to support texture formats with multiple data sets and channels in a file. The anno::usage standard annotation can be used on texture parameters to pre-select selector values in an integration.
        • The operators =, ==, and != have been added for the texture types, light profile data type, and measured BSDF data type.
        • Emission has been added to the volumetric material properties.
        • The return type of a material definition can have an annotation.
        • The description of various standard annotations, like in_group and ui_order, mention their wider applicability to more elements in MDL.
        • The usage standard annotation on materials is recommended to be used on the return type and not the material definition to match the recommendation for function declarations.
        • The hyperbolic trigonometric functions cosh, sinh, and tanh have been added to the standard math library.
        • The re-interpreting bit-cast functions float_bits_to_int and int_bits_to_float have been added to the standard math library.
        • The offset functions width_offset, height_offset, and depth_offset have been added to give full access to OpenVDB bounding box information.
        • The functions first_frame and last_frame have been added to give access to the texture animation bounds.
        • The transform function grid_to_object_space has been added to give access to OpenVDB bounding box information in MDL object space.
        • A frame parameter has been added to the width, height, depth, width_offset, height_offset, depth_offset, and grid_to_object_space texture functions to select frames in texture sequences.
        • A frame parameter has been added to the texture_2d and texture_3d variants of the lookup_ltype and texel_ltype family of texture function overloads to select frames in texture sequences.
        • The uniform modifier has been removed from the tint parameter of the EDF tint modifier.
        • The VDF tint modifier has been added.
        • An overloaded variant of the directional_factor modifier has been added for EDFs.
        • The sheen_bsdf has been changed to a modifier by adding a BSDF multiscatter parameter.
        • The uniform modifier has been removed from the weight field of the edf_component and color_edf_component structures and the upper limit has been removed for the weight.
        • The color_vdf_component structure and VDF overloads for the color_normalized_mix and color_clamped_mix mixing distribution functions have been added.
        • The mix distribution functions unbounded_mix and color_unbounded_mix have been added for BSDF, EDF, and VDF.
        • An Appendix F has been added defining MDL search path conventions.
      • A Python binding for the MDL SDK has been added. This binding consists of a shared library generated from the API headers using SWIG, and some additional helper functions for ease of use. In addition, there is a stub Python module to make that shared library accessible from Python code. See "Language Bindings" in the API reference for more information. Examples to demonstrate working with the Python binding are included as well.
      • In the API, the array constructor now uses –as all other function definitions– named arguments instead of positional arguments. The previously irrelevant parameter names are now enforced to be "0", "1", and so on.
      • The new naming scheme for MDL entities in the .mi file format has been enabled by default when encoded names are enabled (see Mdl_configuration::set_encoded_names_enabled()). The exporter option mi_mdl_new_naming_scheme can be used to control that behavior.
      • Added support for the "target model" compilation mode.
      • Added a context option "remove_dead_parameters" to control the removal of dead parameter in instances of ICompiled_materials. Dead parameters only survive if this options is set (enabled by default). Setting it to false produces a compatible argument block layout independent of the target material mode.
      • Avoid duplicate calls to common code for ternary BSDF operators and for distribution function modifiers to reduce the code size for HLSL after compilation by the DirectXShaderCompiler (libbsdf).
    • General
      • Fixed crash in scene update if a non-material is assigned as a material.
      • Fixed retrieval of the geometry tag for on-demand meshes.
      • Fixed crashes and data corruption when reading/writing float precision AIX files on Linux.
      • Allow to start IndeX Direct without any GPU present to properly support CPU only rendering of inhomogeneous volumes.
    • Iray Photoreal
      • Fixed CPU fallback in some out of memory situations.
      • Fixed missing rounded corners on RTX cards (nvbugs 3235236).
      • Introduced proper handling of radiance density change due to refraction effects. This makes rendering of light sources in volumes fully energy conserving. This also introduces a new option iray_correct_radiance_on_refraction, and it is enabled by default. Please avoid setting this to false (which is emulating the legacy behavior) as the setting may be removed in the near future again. Note though that this new setting may especially change the rendering of non-watertight meshes filled with volumes.
      • Fixed bias when using multiple inhomogeneous volumes.
      • Added caustic sampler connections through thin walled and invisible materials.
      • Further tweak caustic sampler sampling to avoid subtle spiral patterns in some simple scenes.
      • Fixed broken fallback to camera backplate in case mesh backplate function is not set.
      • Fixed rendering of inhomogeneous volumes in cluster/cloud mode (nvbugs 200724792).
      • Fixed texture input counting issue for emission, if cutout or textured EDF inputs along with a JIT-compiled expression is used.
      • Avoid AI denoiser issues by filtering out infinite or NaN values from the auxiliary buffers (e.g. originating from JIT-compiled code).
      • Added some subtle improvements/enhancements to matte object shadows.
    • Iray Interactive
      •  Handle invalid materials gracefully, like crashes if a non-material is assigned as a material.
    • Material Definition Language (MDL)
      • Fixed wrong handling of encoded MDL names for user-defined type names and names with suffix indicating older MDL versions.
      • Improved documentation and examples to demonstrate how to set the gamma mode, in particular when generating MDL source code via the module builder or when creating MDLEs.
      • Fixed a crash if a reserved keyword is used as a type name.
      • Fixed inlining of functions when argument expressions referenced parameters of the caller.
      • Improved error reporting on broken MDL archives and MDLEs (bug 19612).
      • Check upon archive creation that user-provided manifest keys form a valid identifier (bug 19612).
      • Fixed creation of annotations for function variants (sometimes a wrong module name was used).
      • Fixed potential crash with re-exported enable_if() annotations (bug 19592).
    • MI importer/exporter
      • Added support for reading flags on section objects and uv projectors.
      • Prevent export of (partly ancient) unsupported standard attributes on decals.
  • rbtwhizrbtwhiz Posts: 2,171

    Iray 2021.0.1, build 344800.4174

    Added and Changed Features

    • General
      • Reduced memory usage for DDS textures with subformat BC7.
      • Updated general libraries:
        • CUDA 11.4.1 (which fixes a crash/endless loop seen (at least) on T4 GPUs (nvbugs 200744281))
        • OpenVDB 8.0.1
      • Remove dependency on NVRTC libraries and so being able to remove them again from the release.
    • Iray Photoreal & Iray Interactive
      • Vastly improve texture compression: Much better quality, especially on the high setting.
      • Texture compression will now also take advantage of available GPUs for much faster compression/pre-processing.
      • Fixed/Replaced thin film factor implementation, as the previous implementation had some downsides:
        • No phase shift from reflection at higher IOR.
        • Intensity was off.
        • Only a single bounce was considered.
    • Iray Photoreal
      • Added ability to exclude scene elements from picking via the new flag picking_disabled which can exclude objects, lights, and volumes from picking.
    • Material Definition Language (MDL)
      • Reduced compilation times (Jira OM-33327).
      • Updated nvidia::core_definitions with new functionality.
      • Fixed thin film factor implementation (libbsdf, Jira OM-33639).
      • Added a new execution context option “warning” to silence compiler warnings or to promote them to errors. See IMdl_execution_context for details.
      • Disabled warnings for deprecated MDL materials and functions by default

    Fixed Bugs

    • General
      • Disabled copying of existing OpenGL image canvas contents to fix camera window copying. Note that this limits some use cases of rendering camera windows for the OpenGL case, as the content outside the window can not be kept around (nvbugs 3319637).
      • Skip on-demand meshes during displacement updates as these currently do not support displacement.
      • Catch nullptr scene string option.
    • Iray Photoreal & Iray Interactive
      • Don’t miss the tint of df::sheen_bsdf’s base in case this is a diffuse BRDF.
    • Iray Photoreal
      • Fixed crashes/regression when moving objects in auto instancing mode (nvbugs 200754744).
      • Fixed crashes on flag updates in scenes featuring volume data.
      • Fixed potential deadlock in texture loader.
      • Fixed hangs in inhomogeneous volume rendering (nvbugs 200750968). Also improves zero skipping.
      • Don’t be able to pick disabled volumes.
      • Fixed caustic sampler camera connections ignoring inhomogeneous volumes in almost all cases.
      • Fixed caustic sampler shading normal correction to be view dependent (leading to unwanted faceting).
      • Fixed caustic sampler connections through thin-walled surfaces being too bright.
      • Fixed a crash of the caustic sampler in rare circumstances (floating point precision issue).
      • Allow backplate meshes to disable picking.
      • Decals now also respect the white mode flag.
      • Fixed a rare potential crash when using thin-film/dispersion.
      • Free unused scene data on a GPU device, if the device fails. Data was previously marked as unused but garbage collection was not run until the next scene change.
      • Fixed another item count discrepancy caused by directional lights not being considered as objects (nvbugs 3343419).
      • Demote active SLI message from error to warning.
      • Fixed matte shadow intensity array size (nvbugs 3343419).
      • Improved general geometry pre-processing performance.
      • Minor optimization of fiber pre-processing.
    • Iray Interactive
      • Fixed texture issues when rendering a scene with (unsupported in Interactive) VDB volumes.
    • Material Definition Language (MDL)
      • Fixed handling of nvidia::baking annotations.
      • Fixed lambda results handling in single-init mode for non-HLSL.
      • Fixed uncomputed cosine in sheen_bsdf’s multiscatter (was broken for a transmitting multiscatter component, libbsdf).
      • Improved numerical stability in base::coordinate_projection.
      • Fixed missing color_weighted_layer() inside the transmission analysis (bug 19630).
    • AIX importer
      • Fixed crash when loading files with more than 127 data frames.
    • MI importer/exporter
      • Fixed reading of NaN and Infinity values (nvbugs 200744402).
      • Fixed a rare crash in the .mi importer.
      • Fixed a crash when the name of a scene element clashes with the name of a default of an MDL material or function definition (nvbugs  3342399/3342420/200757058).
      • Allow group flags to appear both before and after the item list(nvbugs 200759499).
      • Initialize IndeX Direct when starting .mib importer (nvbugs 3342441).
      • Export on-demand-meshes as triangle meshes (rather than just ignoring them).
    • Deep Learning based Denoiser
      • Fixed a potential issue when denoising large resolutions (8K and up).
  • rbtwhizrbtwhiz Posts: 2,171

    Iray 2021.0.2, build 344800.7839

    Added and Changed Features

    • General
      • Updated general libraries:
        • OpenSSL 1.1.1l
        • FreeImage-3.19.x-r1859-openexr-2.5.3-libtiff-4.1.0-350282 (fixes crash with certain TIFF files, nvbugs 200765028)
    • Iray Photoreal & Iray Interactive
      • Added scene option to control the color of the "white mode" global diffuse material white_mode_color.
      • Added scene option to control the color of the "white mode" global diffuse material in the AOV BSDF weight buffer white_mode_bsdf_weight.
    • Iray Photoreal
      • Added motion blur support for inhomogeneous volumes.
    • Iray Interactive
      • Added support for the "white mode" global diffuse material.
      MI importer/exporter
      • Added im/export of vector[] attributes.

    Fixed Bugs

    • General
      •  Avoid infinite recursion in some misconfiguration cases of canvas annotations (e.g. setting iray_default_alpha_lpe to an empty string, nvbug 200764440).
    • Iray Photoreal & Iray Interactive
      • Further fixed thin film factor implementation.
      • Optimized certain materials using multiple bump maps.
      • Improved consistency of bump maps on front- and backside, as bump mapping behavior was inconsistent (e.g. both sides convex or both sides concave, instead of one convex and one concave).
    • Iray Photoreal
      • Fixed caustic sampler ignoring box-typed environment domes.
      • Fixed shadow terminator related artifacts, like tessellation of geometry becoming visible or other lines or marks on curved surfaces (partially fixes nvbugs 200753581).
      • Fixed interaction of ground plane, scene bounding box, and section plane caps leading to wrong shadows (nvbugs 3342399).
      • Fixed small energy loss for df::sheen_bsdf in case the multiscatter parameter is the default df::diffuse_reflection_bsdf.
      • Fixed issue with blends if input texture is spectral by making the builtin color math function spectrally-aware (nvbugs 200763772).
      • Fixed partially ignored LPE for matte fog.
      • Fixed a change in matte object shadowing in combination with the ground plane (nvbugs 200727716).
      • Fixed hangs in inhomogeneous volume rendering.
      • Improved precision of result/buffer merges, e.g. for extremely huge sample/iteration counts (nvbugs 200761085).
      • Improved performance for object flags preprocessing.
      • Improved rendering performance for some JIT-compiled MDL materials.
      • Improved efficiency of the caustic sampler a bit
    • Iray Interactive
      • Fixed missing low-frequency contribution of the Sun & Sky environment to indirect illumination, leading to darker images (nvbugs 3263562).
      • Fixed issues with section capping with enabled ground plane (nvbugs 3357191).
      • Fixed handling of section planes and section capping for glossy ground reflections (nvbugs 3357191).
      • Fixed some potential data races and multi-threading issues which could cause use-after-free errors in the garbage collection (nvbugs 200744281).
    • Material Definition Language (MDL)
      • Fixed incorrect BSDF evaluation for df::sheen_bsdf with a transmitting "multiscatter" BSDF parameter (OM-32211).
      • Fixed df::thin_film implementation for the case material IOR < thin film IOR (libbsdf).
      • Changed an internal compiler crash to proper error reporting.
    • MI importer/exporter
      • Fixed line sizes >= 64K characters (nvbugs 200763394).
      • Exporter: Only omit global namespace prefix if we are in global scope (nvbugs 200769503).
  • rbtwhizrbtwhiz Posts: 2,171
    edited December 2021

    Daz Studio 4.15.1.91

     

    • Note: Minimum driver requirement (to properly support both CUDA 11.2.2 and OptiX 7.3)
      • NVIDIA Driver 465.89 (or newer) on Windows for CPU-only rendering
      • NVIDIA Driver 471.41 (or newer) on Windows for GPU rendering
      • See NVIDIA Driver Downloads
        • NVIDIA recommends installing Studio Drivers (SD)
    Post edited by rbtwhiz on
  • rbtwhizrbtwhiz Posts: 2,171
    edited November 2021

    Iray 2021.0.3, build 344800.8726

    Known Issues and Restrictions

    • Iray Photoreal will no longer internally duplicate materials that feature a certain dependence on MDL state transforms: Most real-world materials depend on state transforms, but the case where state transforms are used inside an uniform MDL expression is extremely rare (if used at all). So most of the time, materials were duplicated without the need for it, resulting in a significant performance loss during pre-processing/material conversion, especially for large scenes. This is a performance workaround for now and will hopefully be fixed properly later-on with improved compiler support.

    Added and Changed Features

    • General
      • Updated general libraries:
        • FFmpeg-lgpl-4.4.1-353186

    Fixed Bugs

    • Iray Photoreal & Iray Interactive
      • Fixed crashes if more than one million texture structs were created.
      • Fixed inversion of crush blacks parameter in the tonemapper that lead to saturated blue/red pixels.
    • Iray Interactive
      • Improved consistency of bump maps on front- and backside, as bump mapping behavior was inconsistent (e.g. both sides convex or both sides concave, instead of one convex and one concave), similar as Iray Photoreal in 2021.0.2.
      • Fixed the corner case of area lights with zero area, leading to infinite emission and even crashes(nvbug 3410220).
    • Material Definition Language (MDL)
      • Apply thin film only if thickness > 0.0 (libbsdf).
      • Creation of compiled materials fails now (instead of crashing) if some internal error condition is detected (OM-37446).
      • Fixed a bug in the distiller which could lead to a crash for certain materials.
    Post edited by rbtwhiz on
  • rbtwhizrbtwhiz Posts: 2,171
    edited December 2021

    Daz Studio 4.15.1.96

     

    • Note: Minimum driver requirement (to properly support both CUDA 11.2.2 and OptiX 7.3)
      • NVIDIA Driver 465.89 (or newer) on Windows for CPU-only rendering
      • NVIDIA Driver 471.41 (or newer) on Windows for GPU rendering
      • See NVIDIA Driver Downloads
        • NVIDIA recommends installing Studio Drivers (SD)
    Post edited by rbtwhiz on
  • rbtwhizrbtwhiz Posts: 2,171

    Iray 2021.0.4, build 344800.9767

    Fixed Bugs

    • General
      •  Increase web socket payload size by 10x. In the future there will be a proper API call to steer the maximum payload size.
    • Iray Photoreal & Iray Interactive
      • Fixed a potential endless loop for complicated materials (nvbugs 3430252).
    • Iray Photoreal
      • Fixed an issue with too transparent alpha channel values with SSS materials.
      • Apply thin film modifier on both sides, now consistent with Iray Interactive again (nvbugs 3444673).
      • Fixed spectral IOR component selection in thin film computation.
    • Material Definition Language (MDL)
      • Fixed incorrect handling of user-defined type names for structs and enums when encoded names were enabled.
      • Fixed non-deterministic behavior with sincos calls.
  • rbtwhizrbtwhiz Posts: 2,171
    edited December 2021

    Daz Studio 4.16.1.6

     

    • Note: Minimum driver requirement (to properly support both CUDA 11.2.2 and OptiX 7.3)
      • NVIDIA Driver 465.89 (or newer) on Windows for CPU-only rendering
      • NVIDIA Driver 471.41 (or newer) on Windows for GPU rendering
      • See NVIDIA Driver Downloads
        • NVIDIA recommends installing Studio Drivers (SD)
    Post edited by rbtwhiz on
  • rbtwhizrbtwhiz Posts: 2,171
    edited January 2022

    Iray 2021.1.0 beta, build 349500.5279

    Known Issues and Restrictions

    • Deprecated support for Light Portals. These will be removed in the next major version release. Instead, the new automatic guided sampling option should be employed wherever feasible.
    • Removed support for the special/limited Nitro rendering mode.

    Added and Changed Features

    • General
      • Native macOS Arm support now available (still considered experimental for this beta phase, but should be fully functional, so please test). In addition, all macOS builds are now completely clean of any CUDA dependencies/libraries.
      • Updated general libraries:
        • FreeImage-3.19.x-r1859-openexr-2.5.3-libtiff-4.1.0-354007 (fixes crash with certain TIFF files, nvbugs 200765028, and has LibRawLite removed)
        • Boost 1.77
        • FFmpeg-lgpl-4.4.1-353186
        • NVAPI R495
        • Embree 3.13.2
        • GLEW-2.1.0-348116
      • Enabled better compression levels for the PNG/BMP/TIFF/TGA formats in the image plugin.
    • Iray Photoreal & Iray Interactive
      • Extend photographic tonemapper:
        • New mip_burn_highlights_blended_component mode to linearly blend between the behavior of mip_burn_highlights_per_component and mip_burn_highlight_max_component. Using this mode, one can control by how much highlights de-saturate (via mip_burn_highlights_saturation).
        • Employ a more flexible compression curve, controlled via mip_compression_variant. Default is reinhard and yields the previous behavior, controlled by mip_burn_highlights, whereas with raw_parameters one may manually specify coefficients for the internal curve via mip_compression_parameters0 and mip_compression_parameters1. In addition, via uncharted2 the popular game engine tonemapper with default parameters is constructed, and via ue4_aces the ACES variant used in Unreal Engine 4 is used.
      • Optional handling of energy loss for diffuse BSDFs with applied bump/normal mapping. This improved behavior can be deactivated by the scene option iray_diffuse_bump_energy_compensation with
        • none: no compensation
        • brdf: only diffuse reflection is compensated
        • btdf: only diffuse transmission is compensated
        • all: compensate both (default)
    • Iray Photoreal
      • Added new guided sampling scheme via guided_sampling. Enabling this option will usually help convergence speed of interior or other complicated scenes at the price of slightly increased rendering times per iteration and higher memory usage. Thus, simple scenes such as turntable-like objects will not profit, and may even render a bit slower. The exact improvements also depend a lot on the used hardware (e.g. multi GPU or hybrid CPU/GPU rendering may not profit as much as single/dual GPU setups) and if batch or interactive scheduling is used. Also note that disabling the firefly filter may sometimes lead to more high frequency noise such as speckles. More quality and performance improvements to this new sampling scheme will be implemented for the 2021.1.0 final release.
      • Added support for texturing volume coefficients on the surface via scene option iray_allow_surface_volume_coefficients.
      • Added new exponential inhomogeneous ground/global fog support via iray_ground_fog (see documentation for additional configuration parameters).
      • Added scene option attribute for custom photometric spectral observer: see iray_spectral_observer "custom" and iray_spectral_observer_custom_curve <values> in the
        documentation.
      • Added additional fisheye based camera distortion model (incl. Depth of Field support) via mip_lens_distortion_type "equidistant".
      • Added support to control section cap colors on a per clip plane basis.
      • Added spectral blackbody support.
      • Added support for the MDL hair BSDF also on non-fiber geometry. Note that fiber geometry in all cases is still the preferred solution to use the hair BSDF. Triangulated geometry should only be used as a last resort (e.g. on legacy scenes/assets).
      • De-duplicate materials in order to speed up material import for scenes with a large number of duplicate material instances (e.g. as currently generated via some Omniverse scenes).
      • Added more fine-grained control over matte shadow opacity: Replaced global matte_shadow_affects_alpha scene option as the means to control alpha opacity of matte shadows by an
        LPE-based approach.

        Scenes which set matte_shadow_affects_alpha to false will now trigger a warning and the alpha channel will contain matte shadows. Such scenes are returned to the original result by setting iray_default_alpha_lpe = "[LeLmLms]T*E", provided that they do not already use any specialized alpha LPEs. In that case, adding Lms to the list of captured light types will generally remove matte shadows again.

        If invoked as before, the utility functions for alpha LPEs provided by IRendering_configuration now yield expressions which do not have opaque matte shadows. Matte shadows can be made opaque by passing ALPHA_TRANSMIT | ALPHA_MATTE_SHADOW (or similar) to these functions.
    • Iray Interactive
      • Added support to query and respect the new 2021.0.0 iray_texture_compression scene option (nvbugs 200777016).
    • Material Definition Language (MDL)
      • The module ::core_definitions requires now MDL 1.6 and contains a new material surface_falloff.
      • Added a warning to catch some wrong implementations of IMdl_resolved_module::get_module_name().
      • Added support for libbsdf normal adaption for CUDA and native runtime.
      • The libbsdf implementations of the functions df::diffuse_reflection_bsdf and df::diffuse_ transmission_bsdf now compensate for energy loss caused by differences of shading and
        geometric normal (OM-37821).
      • Removed all internal MDL distiller targets except for the "none" target.

    Fixed Bugs

    • General
      • Fixed network_configuration shutdown deadlock.
      • Fixed missing journal flags for volumes.
      • Increase maximum web socket payload size to 2GB. In the future there will be a proper API call to steer the maximum payload size.
    • Iray Photoreal & Iray Interactive
      • Optimized blackbody emission.
      • Further fixed thin film factor implementation.
      • Added support for SSE/AVX accelerated tone mapping (if no NVIDIA GPUs are available).
    • Iray Photoreal
      • Further fixed shadow terminator related artifacts, like tessellation of geometry becoming visible or other lines or marks on curved surfaces (nvbugs 200753581).
      • Fixed a crash when trying to load a non-existing field from a OpenVDB file.
      • Fixed motion blur in presence of disabled section planes.
      • Fixed hangs in inhomogeneous volume rendering.
      • Fixed interaction of section planes and cutouts: Planes with active clip_light did not work after cutouts (nvbugs 200774869).
      • Fixed wrong shadows of section plane caps.
      • Fixed section plane caps of clipped objects with enabled cutouts (e.g. also leading to wrong shadows).
      • Fixed cleanup of instanced triangle data, leading to potential waste of memory.
      • Fixed too bright matte object paths for very short path length restrictions.
      • Fixed an issue with the tonemapper producing NaNs.
      • Ignore volume first-hit visibility, as the visible flag does not relate well to volumes.
      • Improved robustness of inhomogeneous volume rendering.
      • Improved rendering performance for certain volume combinations and dense volume data.
      • Improved material updates if the iray_texture_compression option changed.
      • Report OptiX messages from a dedicated module, rather than IRAY or POST, for greater clarity.
    • Iray Interactive
      • Further fixed some potential data races and multi-threading issues which could cause use-after-free errors in the garbage collection (nvbugs 3379659 and 200744281).
      • Fixed update of host textures. Not all texture parameters were copied on updates from the shared texture element. In consequence, if device assignment changed, the CPU "inherited" one parameter from the GPU texture previously in some cases (nvbug 3386411).
    • Material Definition Language (MDL)
      • Fixed support for JIT-compiled functions for coordinate projections with transforms.
      • Improved numerical stability in base::coordinate_projection().
      • Improved performance of math::blackbody() implementation.
      • Fixed incorrect BSDF evaluation for df::sheen_bsdf with a transmitting multiscatter BSDF parameter (OM-32211).
      • Further fixed thin film factor implementation.
      • Fixed handling of weak imports for MDL < 1.6 if an external entity resolver is set. The semantic of weak imports is now handled by the core compiler itself, an external entity resolver sees now only absolute or strictly relative module names.
      • Fixed distiller crash with certain mrule transformation rules.
      • Fixed distiller crash with certain combinations of distribution functions in distilled materials, e.g., df::directional_factor in material emissions.
      • Fixed ICompiled_material::get_hash() to take the material slots for surface.emission.mode and backface.emission.mode into account. Added enumerators SLOT_SURFACE_EMISSION_MODE and SLOT_BACKFACE_EMISSION_MODE to mi::neuraylib::Material_slot. Also added SLOT_FIRST and SLOT_LAST to support easier enumeration over all material slots.
      • Fixed a crash with default constructed BSDF measurements during MDL export/MDLE creation.
      • Removed const modifier on distilled materials such that they can be stored in the database.
    • MI exporter
      • Fixed escaping mechanism: Escaping characters (like quotes) now also works for the escape character.
      • Fixed support for standard flags of volume objects, e.g. hidden volumes.
    Post edited by rbtwhiz on
  • rbtwhizrbtwhiz Posts: 2,171

    Daz Studio 4.16.1.17

     

    • Note: Minimum driver requirement (to properly support both CUDA 11.2.2 and OptiX 7.3)
      • NVIDIA Driver 465.89 (or newer) on Windows for CPU-only rendering
      • NVIDIA Driver 471.41 (or newer) on Windows for GPU rendering
      • See NVIDIA Driver Downloads
        • NVIDIA recommends installing Studio Drivers (SD)
  • rbtwhizrbtwhiz Posts: 2,171
    edited January 2022

    Iray 2021.1.0, build 349500.7063

    Known Issues and Restrictions

    • There is a known issue with older drivers (496.XX) and Iray Interactive (potentially Photoreal, too, although not reported so far), leading to crashes on some setup/scene combinations (nvbugs 3418345). Newer driver branches (510.XX and up) fix this regression again.
    • Iray Interactive will now also no longer internally duplicate materials (similar to Photoreal) that feature a certain dependence on MDL state transforms: Most real-world materials depend on state transforms, but the case where state transforms are used inside an uniform MDL expression is extremely rare (if used at all). So most of the time, materials were duplicated without the need for it, resulting in a significant performance loss during pre-processing/material conversion, especially for large scenes. This is a performance workaround for now and will hopefully be fixed properly later-on with improved compiler support.

    Added and Changed Features

    • General
      • Updated general libraries:
        • SQLite 3.37.0
      • Write Bridge version to the Windows FileProperties Dialog: It will appear after the Product Version as XXXXXX.YYYY (Bridge Version: XXXXXX.ZZZ).
      • Disabled WEBP export in the FreeImage plugin due to memory access violations.
    • Iray Photoreal & Iray Interactive
      •  The implementation of the df::thin_film has been improved. It now acts as a modifier to account for thin-film-coating of a Fresnel effect in its underlying base (affected bases are df::fresnel_layer and df::fresnel_factor, i.e. it is possible to coat dielectrics and metals).
    • Material Definition Language (MDL)
      • MDL 1.7 Language Specification
        • Removed the draft status of this document.
        • Clarified that constants can be declared locally as well, which is working since MDL 1.0.
        • Clarified that the thin_film modifier applies only to directly connected BSDFs that have a Fresnel term.
        • Clarified that the state::normal() orientation is facing outward from the volume, with thinwalled materials treated as enclosing an infinitesimally thin volume, such that both sides are facing outward and the normal always points to the observer.
      • The MDL core compiler can resolve frame sequences using frame markers in resources.
      • The JIT backend issues an error message if the user specifies a state module that does not contain all necessary functions.
      • The MDL core compiler avoids a redundant call to the entity resolver when importing modules.
    • MI exporter
      • Enabled binary export in the .mi exporter by default for meshes with >= 1000 triangles. Configurable with the exporter option "mi_write_binary_vectors_limit" of type Uint32.

    Fixed Bugs

    • General
      • Fixed bloom radius in presence of windowed rendering.
      • Fixed incorrect error estimate when rendering camera windows in combination with vignetting through a tonemapper.
      • Fixed missing leaf material update when scenedata names change (e.g. causing Iray Interactive to not react on scenedata name changes).
      • Improved texture compression for low-variation areas, including "wobbly" behavior of some normal maps.
      • Optimized atomics/atomic usage, especially on Arm based platforms.
      • SIMD optimized Arm based CPU image conversion and post-processing.
      • Fixed gamma value of pink 1x1 default textures.
    • Iray Photoreal & Iray Interactive
      • SIMD optimized Arm based CPU rendering.
      • Fixed numerical issues using Arm based CPU rendering (e.g. specular surfaces turning black).
      • Fixed tangent_u orientation in case the normal is flipped for MDL state on backside.
      • Adapted surface normal flipping to the clarified MDL spec: Flip normals to front side if non-thin-walled, flip to ray for thin-walled.
      • Fixed numerical issue for df::fresnel factor (ior = 0).
      • Fixed wrong access of environment, backplate, aperture and projector functions that have been invalidated due to an MDL module reload (nvbugs 3459568).
      • Remove unnecessary warnings on platforms without CUDA support (i.e. macOS).
    • Iray Photoreal
      • Further optimize convergence speed and robustness of the new guided sampling option. It’s now even more recommended to enable this option (at least) for interior scenes.
      • Parallelize parts of the geometry import code.
      • Fixed temporary artifacts on RTX GPUs when navigating interactively at small resolutions and high sample rates (nvbugs 3418824).
      • Fixed caustic sampler paths being clipped by the camera near plane.
      • Fixed regression that lead to unnecessary rendering restarts on some parameter changes (e.g. en/disabling the AI denoiser).
      • Fixed artifacts with enabled caustic sampler + rendering irradiance buffers for specular surfaces.
      • Fixed caustic sampler + rendering irradiance buffers when connecting through other surfaces.
      • Fixed empty (zero vertices) fiber objects on RTX GPUs.
      • Fixed renderer scenedata from being accidentally processed when used with wrong type.
      • Fixed missing check if tag is valid and actually corresponds to a function call, leading to crashes with volumes (nvbugs 3491070).
      • Fixed a tangent orientation flip in the MDL state update on a state::normal() change when using the JIT material path, e.g. incorrect JIT layer bumps in case there is a main geometry bump (Jira MDL-788).
      • Optimize inhomogeneous volume rendering performance.
      • Slightly improved performance of some GPU updates/uploads.
      • Slightly improved convergence when rendering volumes/SSS.
      • Slightly optimized detection of section object/material changes.
      • Slightly optimized geometry pre-processing.
    • Iray Interactive
      • Properly support the optional handling of energy loss for diffuse BSDFs with applied bump/normal mapping. This improved behavior can be deactivated by the scene option iray_diffuse_bump_energy_compensation (nvbugs 3459865).
      • Fixed issue if number of scenedata names used in MDL-JITted functions has changed.
      • Greatly reduced time spent in texture loading for scenes with a large number of objects (nvbugs 3459561: 1 hour down to 13 seconds!).
      • Due to the missing duplication of some materials (see Restrictions section above), some scenes with overlapping volumes/SSS-materials will now render more correctly (a sideeffect of the simple IOR stack model of Interactive).
    • Material Definition Language (MDL)
      • Fixed incorrect normal flip for strongly bumped normal input (libbsdf, OM-37821).
      • libbsdf: Fixed incorrect flipping of the shading normal for strongly bumped normals. Note that libbsdf requires that state input shading and geometric agree on sideness (it has been forgiving with respect to that due to this bug).
      • libbsdf: Fixed a numerical issue for df::fresnel_factor() (for ior == 0).
      • libbsdf: Fixed implementation of albedo for df::tint(reflect, transmit).
      • Fixed a race condition for accessing global core JIT backend options from different threads, which could have caused overwritten options or a crash, by using the thread local core thread context options instead.
      • Fixed handling of resource sets if used inside MDLE archives.
      • Fixed a crash inside the MDL core compiler if a material preset with too many arguments is compiled.
    Post edited by rbtwhiz on
  • rbtwhizrbtwhiz Posts: 2,171
    edited January 2022

    Daz Studio 4.16.1.34

     

    • Note: Minimum driver requirement (to properly support both CUDA 11.2.2 and OptiX 7.3)
      • NVIDIA Driver 465.89 (or newer) on Windows for CPU-only rendering
      • NVIDIA Driver 471.41 (or newer) on Windows for GPU rendering
      • NVIDIA Driver 510.XX (or newer) instead of 496.XX (or newer)
      • See NVIDIA Driver Downloads
        • NVIDIA recommends installing Studio Drivers (SD)
    Post edited by rbtwhiz on
This discussion has been closed.