User Tools

Site Tools


4.20.0.17 Change Log

Below is a “sanitized” version of the Daz Studio change log leading to the General Release of version 4.20.0.2. This log is posted as part of a conscious effort to be more transparent in the development process. That being said, not all information relating to a particular build is present on this page - some information is still considered private and is therefore not included.

Public Build Channel

Public Beta (4.15.1.72)

  • Update to DzCloud 1.0.3.18
    • Fixes an issue with the ability to hide vendor categorization

DAZ Studio : Incremented build number to 4.15.1.61


  • Source maintenance
  • Merged changes to Trunk (4.15.0.x)

DAZ Studio : Incremented build number to 4.15.1.62


  • Fixed warnings in DzListView signals that can be emitted with a null DzListViewItem; selectionChanged(), currentChanged(), clicked(), pressed(), doubleClicked(), returnPressed(), spacePressed(), rightButtonClicked(), rightButtonPressed(), mouseButtonPressed(), mouseButtonClicked(), contextMenuRequested()
  • Fixed #DS-242/#CS-155800, #DS-1765/#CS-291149/#CS-303353/#CS-312519 - An issue where the cursor becomes invisible within a viewport if a mouse button other than the one used to initiate a view control operation is clicked while the initiating mouse button is still pressed
    • The operation is still interrupted, but now the hidden cursor is restored
  • Fixed an issue where right-click on the DrawStyle Options menu button, the View Selection menu button, or the Viewport Options menu button would behave the same as a left-click
  • Fixed DzListBox::clearSelection()
  • Updated scripting API documentation; DzListBox

DAZ Studio : Incremented build number to 4.15.1.63


  • Source maintenance
  • Extended DzListBox scripting API; added selectedItem property; added textHighlighted(), itemSelected(), textSelected() signals
  • Modified DzListBox scripting API; deprecated selected property; deprecated highlighted(String), selected(Number), selected(String), selectionChanged(), clicked(Number), pressed(Number) signals
  • Updated script API documentation; DzListBox

DAZ Studio : Incremented build number to 4.15.1.64


  • Source maintenance
  • Fixed a potential thread deadlock with background progress

DAZ Studio : Incremented build number to 4.15.1.65


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.66


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.67


  • Source maintenance
  • Extended DzProperty public API; added getFirstKeyIndex()
  • Updated public API documentation; DzProperty
  • Added (internal) name to recorded property definitions
    • Used in determining list of assets in “Save Modified Assets”
  • Updated logging when saving modified assets
  • Added support for a -logModifiedAssets command-line option
    • Causes asset information displayed in the “Save Modified Assets” dialog to be recorded to the application log
  • Fixed a memory leak in DzMorphLoader

DAZ Studio : Incremented build number to 4.15.1.68


  • Source maintenance
  • Updated public API documentation; DzSkeleton, DzNode, DzFollowingProjectionOptions

DAZ Studio : Incremented build number to 4.15.1.69


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.70


  • Source maintenance
  • Added support for blended general weight (LBS/DQS) mesh skinning
  • Extended DzSkinBinding public API; added BlendMode enum; added getBlendMode(), setBlendMode(); added blendModeChanged() signal
  • Extended DzSkinBinding SDK API; added blendModeToStr(), blendModeFromStr()
  • Updated public API documentation; DzSkinBinding
  • Modified Node Weight Brush tool settings options
    • Renamed Binding > Skinning > Weight Mapping Mode: “Blended TriAx/General” to “Blended”
    • Added Binding > Skinning > Blend Mode: “TriAx (Local) / Linear (General)”, “TriAx (Local) / Dual Quaternion (General)”, “Linear (General) / Dual Quaternion (General)”
    • Disable Binding > Skinning > Blend Mode when “Weight Mapping Mode” is not “Blended”
    • Disable Binding > Skinning > General Weight Mode when “Weight Mapping Mode” is not “General”
    • Prefixed TriAx specific map types

DAZ Studio : Incremented build number to 4.15.1.71


  • Source maintenance
  • Modified DzPane public API; deprecated makeGroupUndockable(), makeUndockable(), makeGroupDockable()
  • Modified DzPaneGroup public API; deprecated isUndockable()
  • Modified DzPaneMgr public API; deprecated getNumPaneGroupDlgs(), getPaneGroupDlg(), addPaneGroupDlg(), removePaneGroupDlg(), closeAllPaneGroupDlgs()
  • Removed obsolete actions from pane group/pane option menus
    • “Make Pane Undockable” (when docked)
    • “Make Pane Group Undockable” (when docked)
    • “Make Pane Dockable” (when undockable)
    • “Make Pane Group Dockable” (when undockable)
  • “Undockable” pane groups (undocked pane groups nested in dialogs) in saved layouts are now substituted with “undocked” pane groups
    • Docking behavior changed significantly in 4.6.4.4 - at which point the reason for “undockable” pane groups became obsolete
  • Updated public API documentation; DzSkeleton, DzFigure, DzSkinBinding, DzBoneBinding, DzBulgeBinding, DzLegacyFigure, DzLegacyAlternateGeometry, DzLegacyBinding, DzWeightMap

DAZ Studio : Incremented build number to 4.15.1.72

Public Beta (4.15.1.84)

  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.73


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.74


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.75


  • Source maintenance
  • The description text for ERC links now includes the figure label when the owner of the property is a bone
    • This provides clarity in listings (e.g., Parameter Settings Sub-Components/Controllers) where cross-object/figure links are possible
  • Extended DzWeightMap public API; added getStrengthControl()
  • Modified DzWeightMap public API; deprecated getStrengthController()
  • Extended DzProperty public API; added buildIdUriToRoot()
  • Updated public API documentation; DzWeightMap, DzMap, DzProperty
  • Updated SDK version to 4.15.1.76; SDK min is 4.5.0.100
  • Fixed a race condition in OIIO importer
  • Added an “Owner :” field to the Parameter Settings dialog
    • Displays the type and name of the element owner
    • Tooltip displays type and label of the element owner
    • Handles consolidated properties
  • Added tooltips to various Parameter Settings dialog string/text based fields
  • Refactored the “Controllers” tab of the Parameter Settings dialog
    • The tab is now only displayed in the context of a single property that has controllers
    • Fixed an issue where non-editable values incorrectly allowed edit mode to be entered
  • Refactored the “Sub-Components” tab of the Parameter Settings dialog
    • The tab is now only displayed in the context of a single property that has sub-components
    • Fixed an issue where non-editable values incorrectly allowed edit mode to be entered
  • Refactored the “Keys” tab of the Parameter Settings dialog
    • The tab is now only displayed in the context of a single property that has keys
    • Fixed an issue where non-editable values incorrectly allowed edit mode to be entered
    • Added a “Type” column - displays the interpolation type (/values) of a given key
  • Added an “Aliases” tab to the Parameter Settings dialog
    • The tab is only displayed in the context of a single property that is, or has, an alias
  • Added a “Deltas” field to the Parameter Settings dialog
    • Only displayed in the context of a single property that controls the application of a morph
    • Displays the number of deltas in the morph or text indicating that the morph deltas have not been loaded

DAZ Studio : Incremented build number to 4.15.1.76


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.77


  • Source maintenance
  • Extended DzPropertyHelper SDK API; added getInternalAsset()
  • Updated SDK API documentation; DzPropertyHelper
  • Updated SDK version to 4.15.1.78; SDK min is 4.5.0.100
  • Added an “Asset” tab to the Parameter Settings dialog
    • The tab is only displayed in the context of a single property that has asset data to display

DAZ Studio : Incremented build number to 4.15.1.78


  • Source maintenance
  • Fixed a connection issue with the “Source Path” browse button in the Parameters Settings dialog

DAZ Studio : Incremented build number to 4.15.1.79


  • Source maintenance
  • Updated public API documentation; DzWeightMap
  • Merged changes to Trunk (4.16.0.x)

DAZ Studio : Incremented build number to 4.15.1.80


  • Source maintenance
  • Implemented #DS-2327/#CS-#388998 - The Figure Setup pane now causes surfaces of a newly created figure to automatically use the default material type for the active renderer; e.g., Iray Uber material is applied if the active renderer is NVIDIA Iray
  • Animated scroll views (e.g., asset views, asset container views, property views, etc.) now support keyboard modifiers to speed up or slow down mouse wheel scrolling
    • Holding the Ctrl/Cmd modifier key speeds up scrolling (page step)
    • Holding no modifier key performs standard scrolling (wheel scroll lines step - 3 by default)
    • Holding the Shift modifier key slows down scrolling (single step)
  • Extended DzPaneGroup public API; added TabBarPosition enum; added undockedTabBarPosition(), setUndockedTabBarPosition(), fitScreenHeight(), fitScreenWidth(), fitScreen()
  • Updated SDK API documentation; DzPaneGroup
  • Updated SDK version to 4.15.1.81; SDK min is 4.5.0.100
  • Implemented #DS-2322/#CS-#388328 - Added the ability to specify tab bar position independently for each undocked pane group
    • Non-default (i.e., non-top) tab bar position is saved to, and restored from, layouts for each undocked pane group
    • Activating of the “Orient Tabs Along Top” option overrides any non-default (i.e., non-top) tab bar positions defined
    • Actions to change the position of the tab bar are displayed in a “Pane Group” submenu of the pane group tab bar context menu (i.e., the portion of the tab bar with no tabs), the pane/tab context menu (i.e., the tab attached to a given pane), and the active pane option menu (i.e., the menu button in the corner of the tab bar), when a given pane group is undocked and the “Orient Tabs Along Top” option is not active
      • Tabs Top
      • Tabs Left
      • Tabs Right
      • Tabs Bottom
  • Partially implemented #DS-2331/#CS-#390070 - Added the ability to quickly independently resize an undocked pane group using convenience actions
    • Actions are displayed in a “Pane Group” submenu of the pane group tab bar context menu (i.e., the portion of the tab bar with no tabs), the pane/tab context menu (i.e., the tab attached to a given pane), and the pane option menu (i.e., the menu button in the corner of the tab bar), when a given pane group is undocked
      • Fit Screen Height
      • Fit Screen Width
      • Fit Screen

DAZ Studio : Incremented build number to 4.15.1.81


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.82


  • Source maintenance; FBX Importer, OBJ Importer

DAZ Studio : Incremented build number to 4.15.1.83


  • Source maintenance
  • Updated scripting API documentation; DzListBox, DzListview; addresses unnecessary confusion caused by indicating inheritance of a deprecated intermediate class - DzScrollView
  • Extended DzBasicCamera public API; added getPerspectiveControl(), getFrameWidthControl(), getFocalLengthControl(), getDepthOfFieldControl(), getFocalDistanceControl(), getFStopControl(), getUseLocalDimensionsControl(), getDimensionPresetControl(), getPixelSizeControl(), getAspectRatioControl(), getConstrainProportionsControl(), getHeadlampModeControl(), getXHeadlampOffsetControl(), getYHeadlampOffsetControl(), getZHeadlampOffsetControl(), getDisplayPersistenceControl(), getSightLineOpacityControl(), getFocalPointScaleControl(), getFovColorControl(), getFovOpacityControl(), getFovLengthControl(), getDofPlaneVisibilityControl(), getDofPlaneColorControl(), getDofOverlayColorControl(), getDofOverlayOpacityControl(), getNearDofPlaneVisibilityControl(), getFarDofPlaneVisibilityControl()
  • Modified DzBasicCamera public API; deprecated getFrameWidthChannel(), getFocalLengthChannel(), getDepthOfFieldChannel(), getFocalDistChannel(), getFStopChannel(), getDisplayPersistenceChannel(), getSightLineOpacityChannel(), getFocalPointScaleChannel(), getFovColorChannel(), getFovOpacityChannel(), getFovLengthChannel(), getDofVisibilityChannel(), getDofColorChannel(), getDofOverlayColorChannel(), getDofOverlayOpacityChannel(), getNearDofVisibilityChannel(), getFarDofVisibilityChannel()
  • Extended DzBasicCamera SDK API; added getNearDofPlane(), getFarDofPlane()
  • Extended DzBasicCamera scripting API; added nearDofPlane, farDofPlane properties
  • Updated public API documentation; DzBasicCamera
  • Updated SDK version to 4.15.1.84; SDK min is 4.5.0.100
  • Fixed an issue where the widget used for local camera dimensions would not correctly read settings in some situations

DAZ Studio : Incremented build number to 4.15.1.84

Public Beta (4.15.1.91)

  • Source maintenance
  • Updated public API documentation; DzBasicCamera

DAZ Studio : Incremented build number to 4.15.1.85


  • Source maintenance
  • Extended DzApp SDK API; added registerClassFactoryRemap(), findClassFactoryRemap()
  • Extended DzShaderBrick SDK API; added c_legacySettingsClassName - allows a DzShaderBrick subclass to specify its fallback classname when the classname has changed
  • Update SDK API documentation; DzApp
  • Updated SDK version to 4.15.1.86; SDK min is 4.5.0.100
  • Added the ability to register a fallback class factory for deprecated/obsolete/removed classes

DAZ Studio : Incremented build number to 4.15.1.86


  • Source maintenance
  • Extended DzPbrMaterial scripting API; added setNormalValueMap(), setHorizontalTiles(), setHorizontalOffset(), setVerticalTiles(), setVerticalOffset(), getBaseColorControl(), getMetallicityControl(), getRoughnessControl(), getNormalValueMapControl(), getHorizontalTilesControl(), getHorizontalOffsetControl(), getVerticalTilesControl(), getVerticalOffsetControl()
  • Updated scripting API documentation; DzPbrMaterial
  • Update to NVIDIA Iray 2021.0.2 (344800.7839)
    • Minimum driver is 465.89 on Windows for CPU-only rendering
    • Minimum driver is 471.41 on Windows for GPU rendering
  • Removed all generated MDL shader bricks ending with “Input#” or “Default” in their classname
    • Removed shader bricks have been consolidated into a single shader brick, sans “Input#” or “Default” suffix, with an overload selector for the number/type of inputs
    • Removed generated MDL shader brick classes are automatically converted to the new consolidated shader brick classname, with the most compatible argument count/type/order signature selected, when encountered during asset read
    • Converted shader bricks are not compatible with previous versions of the application or render engine
    • Removed shader bricks:
      • DzMdlBool2Input1 (Bool2 1 Input)
      • DzMdlBool2Input2 (Bool2 2 Inputs)
      • DzMdlBool3Input1 (Bool3 1 Input)
      • DzMdlBool3Input3 (Bool3 3 Inputs)
      • DzMdlBool4Input1 (Bool4 1 Input)
      • DzMdlBool4Input4 (Bool4 4 Inputs)
      • DzMdlBsdfMeasurementDefault (BSDF Measurement Default)
      • DzMdlBsdfMeasurementInput1 (BSDF Measurement 1 Input)
      • DzMdlColorInput1 (Color 1 Input)
      • DzMdlColorInput2 (Color 2 Inputs)
      • DzMdlColorInput3 (Color 3 Inputs)
      • DzMdlDfTintInput2 (Tint 2 Inputs)
      • DzMdlDfTintInput3 (Tint 3 Inputs)
      • DzMdlDouble2Input1 (Double2 1 Input)
      • DzMdlDouble2Input2 (Double2 2 Inputs)
      • DzMdlDouble2x2Input1 (Double2x2 1 Input)
      • DzMdlDouble2x2Input2 (Double2x2 2 Inputs)
      • DzMdlDouble2x2Input4 (Double2x2 4 Inputs)
      • DzMdlDouble2x3Input1 (Double2x3 1 Input)
      • DzMdlDouble2x3Input2 (Double2x3 2 Inputs)
      • DzMdlDouble2x3Input6 (Double2x3 6 Inputs)
      • DzMdlDouble2x4Input1 (Double2x4 1 Input)
      • DzMdlDouble2x4Input2 (Double2x4 2 Inputs)
      • DzMdlDouble2x4Input8 (Double2x4 8 Inputs)
      • DzMdlDouble3Input1 (Double3 1 Input)
      • DzMdlDouble3Input3 (Double3 3 Inputs)
      • DzMdlDouble3x2Input1 (Double3x2 1 Input)
      • DzMdlDouble3x2Input3 (Double3x2 3 Inputs)
      • DzMdlDouble3x2Input6 (Double3x2 6 Inputs)
      • DzMdlDouble3x3Input1 (Double3x3 1 Input)
      • DzMdlDouble3x3Input3 (Double3x3 3 Inputs)
      • DzMdlDouble3x3Input9 (Double3x3 9 Inputs)
      • DzMdlDouble3x4Input1 (Double3x4 1 Input)
      • DzMdlDouble3x4Input12 (Double3x4 12 Inputs)
      • DzMdlDouble3x4Input3 (Double3x4 3 Inputs)
      • DzMdlDouble4Input1 (Double4 1 Input)
      • DzMdlDouble4Input4 (Double4 4 Inputs)
      • DzMdlDouble4x2Input1 (Double4x2 1 Input)
      • DzMdlDouble4x2Input4 (Double4x2 4 Inputs)
      • DzMdlDouble4x2Input8 (Double4x2 8 Inputs)
      • DzMdlDouble4x3Input1 (Double4x3 1 Input)
      • DzMdlDouble4x3Input12 (Double4x3 12 Inputs)
      • DzMdlDouble4x3Input4 (Double4x3 4 Inputs)
      • DzMdlDouble4x4Input1 (Double4x4 1 Input)
      • DzMdlDouble4x4Input16 (Double4x4 16 Inputs)
      • DzMdlDouble4x4Input4 (Double4x4 4 Inputs)
      • DzMdlFloat2Input1 (Float2 1 Input)
      • DzMdlFloat2Input2 (Float2 2 Inputs)
      • DzMdlFloat2x2Input1 (Float2x2 1 Input)
      • DzMdlFloat2x2Input2 (Float2x2 2 Inputs)
      • DzMdlFloat2x2Input4 (Float2x2 4 Inputs)
      • DzMdlFloat2x3Input1 (Float2x3 1 Input)
      • DzMdlFloat2x3Input2 (Float2x3 2 Inputs)
      • DzMdlFloat2x3Input6 (Float2x3 6 Inputs)
      • DzMdlFloat2x4Input1 (Float2x4 1 Input)
      • DzMdlFloat2x4Input2 (Float2x4 2 Inputs)
      • DzMdlFloat2x4Input8 (Float2x4 8 Inputs)
      • DzMdlFloat3Input1 (Float3 1 Input)
      • DzMdlFloat3Input3 (Float3 3 Inputs)
      • DzMdlFloat3x2Input1 (Float3x2 1 Input)
      • DzMdlFloat3x2Input3 (Float3x2 3 Inputs)
      • DzMdlFloat3x2Input6 (Float3x2 6 Inputs)
      • DzMdlFloat3x3Input1 (Float3x3 1 Input)
      • DzMdlFloat3x3Input3 (Float3x3 3 Inputs)
      • DzMdlFloat3x3Input9 (Float3x3 9 Inputs)
      • DzMdlFloat3x4Input1 (Float3x4 1 Input)
      • DzMdlFloat3x4Input12 (Float3x4 12 Inputs)
      • DzMdlFloat3x4Input3 (Float3x4 3 Inputs)
      • DzMdlFloat4Input1 (Float4 1 Input)
      • DzMdlFloat4Input4 (Float4 4 Inputs)
      • DzMdlFloat4x2Input1 (Float4x2 1 Input)
      • DzMdlFloat4x2Input4 (Float4x2 4 Inputs)
      • DzMdlFloat4x2Input8 (Float4x2 8 Inputs)
      • DzMdlFloat4x3Input1 (Float4x3 1 Input)
      • DzMdlFloat4x3Input12 (Float4x3 12 Inputs)
      • DzMdlFloat4x3Input4 (Float4x3 4 Inputs)
      • DzMdlFloat4x4Input1 (Float4x4 1 Input)
      • DzMdlFloat4x4Input16 (Float4x4 16 Inputs)
      • DzMdlFloat4x4Input4 (Float4x4 4 Inputs)
      • DzMdlInt2Input1 (Int2 1 Input)
      • DzMdlInt2Input2 (Int2 2 Inputs)
      • DzMdlInt3Input1 (Int3 1 Input)
      • DzMdlInt3Input3 (Int3 3 Inputs)
      • DzMdlInt4Input1 (Int4 1 Input)
      • DzMdlInt4Input4 (Int4 4 Inputs)
      • DzMdlLightProfileDefault (Light Profile Default)
      • DzMdlLightProfileInput1 (Light Profile 1 Input)
      • DzMdlMathEmissionColorInput1 (Emission Color 1 Input)
      • DzMdlMathEmissionColorInput2 (Emission Color 2 Inputs)
      • DzMdlTexHeightInput1 (Height 1 Input)
      • DzMdlTexHeightInput2 (Height 2 Inputs)
      • DzMdlTexLookupColorInput2 (Lookup Color 2 Inputs)
      • DzMdlTexLookupColorInput6 (Lookup Color 6 Inputs)
      • DzMdlTexLookupColorInput8 (Lookup Color 8 Inputs)
      • DzMdlTexLookupFloat2Input2 (Lookup Float2 2 Inputs)
      • DzMdlTexLookupFloat2Input6 (Lookup Float2 6 Inputs)
      • DzMdlTexLookupFloat2Input8 (Lookup Float2 8 Inputs)
      • DzMdlTexLookupFloat3Input2 (Lookup Float3 2 Inputs)
      • DzMdlTexLookupFloat3Input6 (Lookup Float3 6 Inputs)
      • DzMdlTexLookupFloat3Input8 (Lookup Float3 8 Inputs)
      • DzMdlTexLookupFloat4Input2 (Lookup Float4 2 Inputs)
      • DzMdlTexLookupFloat4Input6 (Lookup Float4 6 Inputs)
      • DzMdlTexLookupFloat4Input8 (Lookup Float4 8 Inputs)
      • DzMdlTexLookupFloatInput2 (Lookup Float 2 Inputs)
      • DzMdlTexLookupFloatInput6 (Lookup Float 6 Inputs)
      • DzMdlTexLookupFloatInput8 (Lookup Float 8 Inputs)
      • DzMdlTexTexelColorInput2 (Texel Color 2 Inputs)
      • DzMdlTexTexelColorInput3 (Texel Color 3 Inputs)
      • DzMdlTexTexelFloat2Input2 (Texel Float2 2 Inputs)
      • DzMdlTexTexelFloat2Input3 (Texel Float2 3 Inputs)
      • DzMdlTexTexelFloat3Input2 (Texel Float3 2 Inputs)
      • DzMdlTexTexelFloat3Input3 (Texel Float3 3 Inputs)
      • DzMdlTexTexelFloat4Input2 (Texel Float4 2 Inputs)
      • DzMdlTexTexelFloat4Input3 (Texel Float4 3 Inputs)
      • DzMdlTexTexelFloatInput2 (Texel Float 2 Inputs)
      • DzMdlTexTexelFloatInput3 (Texel Float 3 Inputs)
      • DzMdlTexWidthInput1 (Width 1 Input)
      • DzMdlTexWidthInput2 (Width 2 Inputs)
      • DzMdlTexture2dDefault (Texture 2d Default)
      • DzMdlTexture2dInput2 (Texture 2d 2 Inputs)
  • Added new generated shader bricks (see previous entry regarding consolidation)
    • All generated shader bricks now have a version attribute (matches the version of Iray)
    • Added shader bricks:
      • DzMdlBaseLookupVolumeCoefficients (Lookup Volume Coefficients)
      • DzMdlBaseVolumeCoefficients (Volume Coefficients)
      • DzMdlBaseVolumeCoefficientsGetAbsorptionCoefficient (Volume Coefficients Get Absorption Coefficient)
      • DzMdlBaseVolumeCoefficientsGetScatteringCoefficient (Volume Coefficients Get Scattering Coefficient)
      • DzMdlBool2 (Bool2)
      • DzMdlBool3 (Bool3)
      • DzMdlBool4 (Bool4)
      • DzMdlBsdfMeasurement (BSDF Measurement)
      • DzMdlColor (Color)
      • DzMdlDfColorClampedMixColorVdfComponent (Color Clamped Mix Color VDF Component)
      • DzMdlDfColorNormalizedMixColorVdfComponent (Color Normalized Mix Color VDF Component)
      • DzMdlDfColorUnboundedMixColorBsdfComponent (Color Unbounded Mix Color BSDF Component)
      • DzMdlDfColorUnboundedMixColorEdfComponent (Color Unbounded Mix Color EDF Component)
      • DzMdlDfColorUnboundedMixColorVdfComponent (Color Unbounded Mix Color VDF Component)
      • DzMdlDfColorVdfComponent (Color VDF Component)
      • DzMdlDfColorVdfComponentGetComponent (Color VDF Component Get Component)
      • DzMdlDfColorVdfComponentGetWeight (Color VDF Component Get Weight)
      • DzMdlDfTint (Tint)
      • DzMdlDfUnboundedMixBsdfComponent (Unbounded Mix BSDF Component)
      • DzMdlDfUnboundedMixEdfComponent (Unbounded Mix EDF Component)
      • DzMdlDfUnboundedMixVdfComponent (Unbounded Mix VDF Component)
      • DzMdlDouble2 (Double2)
      • DzMdlDouble2x2 (Double2x2)
      • DzMdlDouble2x3 (Double2x3)
      • DzMdlDouble2x4 (Double2x4)
      • DzMdlDouble3 (Double3)
      • DzMdlDouble3x2 (Double3x2)
      • DzMdlDouble3x3 (Double3x3)
      • DzMdlDouble3x4 (Double3x4)
      • DzMdlDouble4 (Double4)
      • DzMdlDouble4x2 (Double4x2)
      • DzMdlDouble4x3 (Double4x3)
      • DzMdlDouble4x4 (Double4x4)
      • DzMdlFloat2 (Float2)
      • DzMdlFloat2x2 (Float2x2)
      • DzMdlFloat2x3 (Float2x3)
      • DzMdlFloat2x4 (Float2x4)
      • DzMdlFloat3 (Float3)
      • DzMdlFloat3x2 (Float3x2)
      • DzMdlFloat3x3 (Float3x3)
      • DzMdlFloat3x4 (Float3x4)
      • DzMdlFloat4 (Float4)
      • DzMdlFloat4x2 (Float4x2)
      • DzMdlFloat4x3 (Float4x3)
      • DzMdlFloat4x4 (Float4x4)
      • DzMdlInt2 (Int2)
      • DzMdlInt3 (Int3)
      • DzMdlInt4 (Int4)
      • DzMdlLightProfile (Light Profile)
      • DzMdlMaterialVolumeGetEmissionIntensity (Material Volume Get Emission Intensity)
      • DzMdlMathCosh (Cosh)
      • DzMdlMathEmissionColor (Emission Color)
      • DzMdlMathFloatBitsToInt (Float Bits To Int)
      • DzMdlMathIntBitsToFloat (Int Bits To Float)
      • DzMdlMathSinh (Sinh)
      • DzMdlMathTanh (Tanh)
      • DzMdlTexDepthOffset (Depth Offset)
      • DzMdlTexFirstFrame (First Frame)
      • DzMdlTexGridToObjectSpace (Grid To Object Space)
      • DzMdlTexHeight (Height)
      • DzMdlTexHeightOffset (Height Offset)
      • DzMdlTexLastFrame (Last Frame)
      • DzMdlTexLookupColor (Lookup Color)
      • DzMdlTexLookupFloat (Lookup Float)
      • DzMdlTexLookupFloat2 (Lookup Float2)
      • DzMdlTexLookupFloat3 (Lookup Float3)
      • DzMdlTexLookupFloat4 (Lookup Float4)
      • DzMdlTexTexelColor (Texel Color)
      • DzMdlTexTexelFloat (Texel Float)
      • DzMdlTexTexelFloat2 (Texel Float2)
      • DzMdlTexTexelFloat3 (Texel Float3)
      • DzMdlTexTexelFloat4 (Texel Float4)
      • DzMdlTexWidth (Width)
      • DzMdlTexWidthOffset (Width Offset)
      • DzMdlTexture2d (Texture 2d)
  • Removed FBX Importer dependence on internal SDK; i.e., DzPbrMaterial
  • Refactored FBX Importer material processing; use of DzPbrMaterial depends on availability in the invoking application

DAZ Studio : Incremented build number to 4.15.1.87


  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.88


  • Source maintenance
  • Made adjustments to FBX Importer to support being built with the 4.5+ SDK (with maximum compatibility running on >= 4.12)
  • Updated public API documentation; DzApp, DzElement, DzSkinBinding

DAZ Studio : Incremented build number to 4.15.1.89


  • Source maintenance
  • Extended Shader Mixer public API
    • Added DzMdlIrayUberAddInhomogeneousVolume (Uber Add Inhomogeneous Volume)
    • DzTexture3DInstanceBrick (Texture 3D Instance)
  • Updated public API documentation; DzElement, DzSimpleElementScriptData, DzElementPostLoadFileData, DzSimpleSceneScriptData, DzScript
  • Added support for inhomogeneous volumes, both as “Volumetric Textures” and “Volume Objects”, when rendering with NVIDIA Iray
    • The origin of the volume (“domain”) is aligned with the origin of the associated node
    • Scaling the associated node scales the volume (“domain”) in kind
    • A watertight object (“boundary hull”) with an “empty” 3 dimensional texture can be used to cut away parts of a volume object
    • OpenVDB datasets (*.vdb) are used as 3 dimensional textures
    • A “Texture 3D Instance” shader brick, “Lookup Volume Coefficients” shader brick, and “Uber Add Inhomogeneous Volume” shader brick are used to construct a relatively simple Shader Mixer brick network that feeds a “MDL Surface” shader brick to define the shader that describes shading for the volume (“domain”)
      • The “Default Resources” package includes a Shader Preset with said Shader Mixer network prebuilt, ready to be applied
    • The “Texture 3D Instance” shader brick provides 3 required user-facing parameters:
      • “Volume File” is used to specify the path of the OpenVDB dataset that supplies the 3 dimensional texture
      • “Volume Channel” is [optionally] used to specify a channel within the OpenVDB dataset
      • “Clip To Geometry” is used to indicate whether or not the volume (“domain”) should be clipped by the geometry of the associated node - i.e., act as a “boundary hull”
        • Default value: true (On)
        • This parameter only has meaning in the context of a surface named “Volume” - for a surface that is not named “Volume”, this parameter has no affect and is always treated as though it is set to “On”
        • When “On”, only the portion of the volume (“domain”) that resides within the geometry of the associated node will be evaluated
        • When “Off”, the entire volume (“domain”) is evaluated regardless of its intersection with the geometry of the associated node - i.e., it is treated as a “Volume Object”
    • The “Lookup Volume Coefficients” shader brick provides 6 user-facing parameters to control the color and density of the volume:
      • “Scattering Multiplier” allows the scattering color to be set
        • Default color: Black [0.0, 0.0, 0.0]
      • “Absorption Multiplier” allows the absorption color to be set
        • Default color: Black [0.0, 0.0, 0.0]
      • “Scattering Offset” allows the scattering color to be shifted
        • Default color: Black [0.0, 0.0, 0.0]
      • “Absorption Offset” allows the absorption color to be shifted
        • Default color: Black [0.0, 0.0, 0.0]
      • “Density Multiplier” is used to control the volume's density
        • Default value: 1.0
      • “Density Relative To Size” is used to control whether or not the the optical appearance of the volume is preserved when the associated node is scaled - i.e., whether a reduction in size will cause an increase of the density and vice versa
        • Default value: false (Off)
  • Fixed an issue with scene lights in Iray (related to NVIDIA Iray SDK changes)

DAZ Studio : Incremented build number to 4.15.1.90


  • Source maintenance
  • Fixed an invalid material index warning

DAZ Studio : Incremented build number to 4.15.1.91

Public Beta (4.15.1.96)

  • Source maintenance

DAZ Studio : Incremented build number to 4.15.1.92


  • Update to NVIDIA Iray 2021.0.3 (344800.8726)
    • Minimum driver is 465.89 on Windows for CPU-only rendering
    • Minimum driver is 471.41 on Windows for GPU rendering

DAZ Studio : Incremented build number to 4.15.1.93


  • Fixed an issue with generated shader brick version numbers; 2021.0 vs 2021.1

DAZ Studio : Incremented build number to 4.15.1.94


  • Added support for an “Iray Volume Priority” property controlling the priority (stack order) of OpenVDB volumes
    • If a DzIntProperty (user) property, named “Iray Volume Priority”, with the property group path of “Display/Rendering/Iray”, with a clamped range of [-128, 127] and a default value of 0, is added to the node that is associated with the surface that defines the volume material, the value of this property is used to specify stacking order of intersecting volumes
  • Fixed a naming issue with MDL calls using arrays in shader bricks
    • Affected shader bricks:
      • DzMDLArrayBuilderBrick (Array Builder)
      • DzMdlBaseBlendColorLayers (Blend Color Layers)
      • DzMdlClampedSurfaceMix (Clamped Surface Mix)
      • DzMdlDAZ3DBasicAddMeasuredCurveFactor (Measured Curve Factor - Values)
      • DzMdlDfClampedMixBsdfComponent (Clamped Mix BSDF Component)
      • DzMdlDfClampedMixEdfComponent (Clamped Mix EDF Component)
      • DzMdlDfClampedMixVdfComponent (Clamped Mix VDF Component)
      • DzMdlDfColorClampedMixColorBsdfComponent (Color Clamped Mix Color BSDF Component)
      • DzMdlDfColorClampedMixColorEdfComponent (Color Clamped Mix Color EDF Component)
      • DzMdlDfColorClampedMixColorVdfComponent (Color Clamped Mix Color VDF Component)
      • DzMdlDfColorNormalizedMixColorBsdfComponent (Color Normalized Mix Color BSDF Component)
      • DzMdlDfColorNormalizedMixColorEdfComponent (Color Normalized Mix Color EDF Component)
      • DzMdlDfColorNormalizedMixColorVdfComponent (Color Normalized Mix Color VDF Component)
      • DzMdlDfColorUnboundedMixColorBsdfComponent (Color Unbounded Mix Color BSDF Component)
      • DzMdlDfColorUnboundedMixColorEdfComponent (Color Unbounded Mix Color EDF Component)
      • DzMdlDfColorUnboundedMixColorVdfComponent (Color Unbounded Mix Color VDF Component)
      • DzMdlDfNormalizedMixBsdfComponent (Normalized Mix BSDF Component)
      • DzMdlDfNormalizedMixEdfComponent (Normalized Mix EDF Component)
      • DzMdlDfNormalizedMixVdfComponent (Normalized Mix VDF Component)
      • DzMdlDfUnboundedMixBsdfComponent (Unbounded Mix BSDF Component)
      • DzMdlDfUnboundedMixEdfComponent (Unbounded Mix EDF Component)
      • DzMdlDfUnboundedMixVdfComponent (Unbounded Mix VDF Component)
      • DzMdlNormalizedSurfaceMix (Normalized Surface Mix)
    • Manifests as Strand-Based Hair (etc.) rendering black

DAZ Studio : Incremented build number to 4.15.1.95


  • Fixed an issue involving geometry shells and rendering/previewing with NVIDIA Iray, when Render/Draw Settings > Instancing Optimization is set to “Memory”, where having more than one surface on an object but only one surface rendering (e.g., due to an enabled surface having no assigned geometry, or due to all but one surface being disabled) would cause geometry corruption

DAZ Studio : Incremented build number to 4.15.1.96

Public Beta (4.16.1.2)

  • Source maintenance
  • Modified the timing of when the DzShape::materialSelectionChanged() signal is emitted to be after the material has been added to shape material list
  • Extended DzShape public API; added aboutToReplaceMaterial(), materialReplaced() signals
  • Extended DzUberIrayMaterial scripting API; added getExcludeFromWhiteMode(), setExcludeFromWhiteMode(), getExcludeFromWhiteModeControl()
  • Extended DzImageMgr scripting API; added getNumImporters(), getNumExporters(), getImporterInfo(), getExporterInfo()
  • Updated public API documentation; DzShape
  • Updated scripting API documentation; DzUberIrayMaterial, DzImageMgr
  • Added support for enabling/controlling “White Mode” in the Render Settings pane when NVIDIA Iray is the active renderer
    • Enable via Render Settings > White Mode > White Mode Enable
    • Control color via Render Settings > White Mode > White Mode Color
  • Added an option to “Exclude From White Mode” on a per surface/material basis
    • For instances of DzUberIrayMaterial and DzBrickMaterial with a “MDL Surface” root shader brick
  • Added support for setting the “Spectral Conversion Color Space” in the Render Settings pane when NVIDIA Iray is the active renderer and “Render Mode” is set to “Photoreal”
    • Control via Render Settings > Spectral Rendering > Spectral Conversion Color Space
  • Fixed #DS-2339/#CS-383827 - Geometry Shell UV Set control is empty when replacing materials via script

DAZ Studio : Incremented build number to 4.15.1.97


  • Fixed an issue that caused undo items to be formed when switching the target of a Geometry Shell

DAZ Studio : Incremented build number to 4.15.1.98


  • Fixed a crash when loading a project file in Morph Loader Pro
  • Updated public API documentation; DzApp, DzRenderMgr, DzRenderHandler, DzImageRenderHandler, DzViewRenderHandler, Dz3DViewRenderHandler
  • Fixed issues with render manager messages

DAZ Studio : Incremented build number to 4.15.1.99


  • Merged changes to Trunk (4.16.0.x)
  • Increment application, plugin and SDK version for 4.16.1.x
  • Updated version related images

DAZ Studio : Incremented build number to 4.16.1.1


  • Update to dForce 1.5.1.2
    • Updates plugin revision to reflect SDK revision

DAZ Studio : Incremented build number to 4.16.1.2

Public Beta (4.16.1.6)

  • Implemented a partial workaround for NVIDIA Iray thin-film changes
    • Approximates (does not replicate) the previous behavior
    • Cannot fully match the previous behavior, but does match color characteristics to some extent
    • Affects reflection and transmission - the previous behavior only affected reflection
    • Cannot match three-or-more color variations

DAZ Studio : Incremented build number to 4.16.1.3


  • Fixed #DS-2332/#CS-392053 - Shader Mixer crash caused by invalid material being handed to a DzChooseValueBrick
    • Manifests as use of DzCustomMDLBrick causing a crash

DAZ Studio : Incremented build number to 4.16.1.4


  • Update to NVIDIA Iray 2021.0.4 (344800.9767)
    • Minimum driver is 465.89 on Windows for CPU-only rendering
    • Minimum driver is 471.41 on Windows for GPU rendering

DAZ Studio : Incremented build number to 4.16.1.5


  • Added support for enabling/controlling “Iray Visible to Primary Rays” when NVIDIA Iray is the active renderer
    • If a DzBoolProperty (user) property, named “Iray Visible to Primary Rays”, with the property group path of “Display/Rendering/Iray”, and a default value of true, is added to a node, the value of this property is used to specify whether or not an object is visible to primary rays (i.e., directly from the camera)
      • Does not control visibility to reflection/refraction/etc
      • Does not affect decal nodes

DAZ Studio : Incremented build number to 4.16.1.6

Public Beta (4.16.1.17)

  • Source maintenance
  • The “Mirror Joint Options” dialog now uses node names for mirroring operations instead of node labels
    • This corrects an inconsistency with other symmetry tools (e.g. “Symmetrize…”)
    • Accessed via Joint Editor Tool context menu > Edit > Mirror Joints…
  • Made optimizations to the application of joint mirroring
  • Updated public API documentation; DzApp

DAZ Studio : Incremented build number to 4.16.1.7


  • Source maintenance
  • Fixed an issue with DzComboEdit, when configured to use a path popup, where the popup would not automatically select the path corresponding to the current text if the item list was changed since the last time the popup was displayed - leads to the text being changed to the previous value
    • Manifested in Content DB Editor > Assets > Type, when a user cycled between assets set to different types and caused the popup to be displayed

DAZ Studio : Incremented build number to 4.16.1.8


  • Source maintenance
  • Fixed an issue where not checking the “Content Type” option for a given asset in the “Assign Metadata” dialog would prevent any new (checked) “Compatibilities” for that asset from being established when the dialog was accepted
    • The “Assign Metadata” dialog is displayed when initiating a drag-n-drop of assets from an asset view to a category in a side-navigation container view

DAZ Studio : Incremented build number to 4.16.1.9


  • Source maintenance
  • Fixed a crash in Shader Builder when attempting to validate textures and no renderer that supports the RSL language is present
    • Manifested when the 3Delight renderer plugin had been disabled

DAZ Studio : Incremented build number to 4.16.1.10


  • Source maintenance
  • Resolved potential class/symbol name collisions between the 3Delight and NVIDIA Iray renderer plugins, relating to IPR context
  • Refactored handling of NVIDIA Iray attributes to better support the growing number of advanced options
  • Added support for controlling “Iray Matte Shadow Intensity” when NVIDIA Iray is the active renderer
    • If a DzFloatProperty (user) property, named “Iray Matte Shadow Intensity”, with the property group path of “Display/Rendering/Iray”, a clamped range of [0.0, 1.0] and a default value of 1.0, is added to a node where the “Enable Iray Matte” property is set to true (i.e., a “matte object”), the value of this property is used to specify the intensity of the shadows cast upon the object

DAZ Studio : Incremented build number to 4.16.1.11


  • Source maintenance
  • Update to NVIDIA Iray 2021.1.0 beta (349500.5279)
    • Minimum driver is 465.89 on Windows for CPU-only rendering
    • Minimum driver is 471.41 on Windows for GPU rendering
  • Added new generated shader brick:
    • DzMdlBaseBlackbodyEmission (Blackbody Emission)
  • Updated public API documentation; DzFacetMesh, DzScript

DAZ Studio : Incremented build number to 4.16.1.12


  • Source maintenance
  • Build system tweaks

DAZ Studio : Incremented build number to 4.16.1.13


  • Added support for enabling “Guided Sampling” in the Render Settings pane when NVIDIA Iray is the active renderer
    • Enable via Render Settings > Optimization > Guided Sampling
    • “Light Portal” is deprecated in NVIDIA Iray 2021 - this option is intended to address the original need for light portals

DAZ Studio : Incremented build number to 4.16.1.14


  • Source maintenance
  • Build system tweaks

DAZ Studio : Incremented build number to 4.16.1.15


  • Source maintenance
  • Update to FBX 2020.2 on Windows
    • macOS is still using 2014
  • FBX now uses dynamic library on Windows
    • macOS was already using dynamic library

DAZ Studio : Incremented build number to 4.16.1.16


  • Source maintenance
  • Build system tweaks
  • Added FBX export versions on Windows
    • 2016
    • 2018
    • 2019
    • 2020

DAZ Studio : Incremented build number to 4.16.1.17

Public Beta (4.16.1.21)

  • Source maintenance
  • Extended DzAction public API; added triggerWithSettings()
  • Extended DzAction SDK API; added getTriggerSettings()
  • Extended DzAction scripting API; added triggerSettings property
  • Updated public API documentation; DzAction
  • Updated SDK version to 4.16.1.18; SDK min is 4.5.0.100.

DAZ Studio : Incremented build number to 4.16.1.18


  • Source maintenance
  • Extended DzBasicCamera public API; added getLensDistortionK4Control(), getLensDistortionK5Control(), getLensMaximumFovControl()
  • Updated SDK version to 4.16.1.19; SDK min is 4.5.0.100
  • Updated public API documentation; DzBasicCamera
  • Added support for the “brown”, “inv_brown”, and “equidistant” lens distortion models in NVIDIA Iray renders
    • Added “brown”, “inv_brown”, and “equidistant” options to the “Lens Distortion Type” property of DzBasicCamera
    • Added “Lens Distortion K4”, “Lens Distortion K5” and “Lens Maximum FOV” properties to DzBasicCamera

DAZ Studio : Incremented build number to 4.16.1.19


  • Source maintenance
  • Fixed script API access to enums on prototype subclasses; DzUri, DzMDLDefinition

DAZ Studio : Incremented build number to 4.16.1.20


  • Source maintenance
  • Extended DzScriptPane scripting API; added indexOfFile()
  • Updated scripting API documentation; DzScriptPane
  • DzScriptPane::openFile() now validates the filename passed to it
    • Path must exist
    • Path must reference a file
    • Path must be accessible by the current user
    • Path must end with a supported script file extension
  • Attempting to open a script that is already open in the Script IDE pane now switches to the opened document
  • Fixed an issue where the Script IDE > File > New Script action (DzSINewAction) would not allow more than a single “Untitled” document to be created
  • Added support for enabling/controlling (Atmospheric) “Ground Fog” in the Render Settings pane (or Environment Node) when NVIDIA Iray is the active renderer
    • Enable via Environment > Atmospheric Ground Fog > Ground Fog
    • Control color via Environment > Atmospheric Ground Fog > Ground Fog Albedo
    • Control start of decay via Environment > Atmospheric Ground Fog > Ground Fog Decay Start
    • Control starting decay density via Environment > Atmospheric Ground Fog > Ground Fog Density Start
    • Control starting decay density scale via Environment > Atmospheric Ground Fog > Ground Fog Density Start Scale
    • Control end of decay via Environment > Atmospheric Ground Fog > Ground Fog Decay Height
    • Control ending decay density via Environment > Atmospheric Ground Fog > Ground Fog Density End
    • Control ending decay density scale via Environment > Atmospheric Ground Fog > Ground Fog Density End Scale
    • Control (specular) back/forward scattering via Environment > Atmospheric Ground Fog > Ground Fog Anisotropy

DAZ Studio : Incremented build number to 4.16.1.21

Public Beta (4.16.1.31)

  • Source maintenance
  • Fixed a parameter pre-sizing, list membership, issue with recent (Atmospheric) “Ground Fog” support
  • Updated public API documentation; DzAction, DzScriptAction
  • Extended DzUri public API; added SubPath, ChannelPath, RFC3986 enumerated values
  • Extended DzUri SDK API; added getSubPath(), getChannelPath(), setSubPath(), setChannelPath()
  • Extended DzUri scripting API; added subPath, channelPath properties; added fromLocalFilenameWithRelativePath()
  • Modified DzUri public API; deprecated ModifierPath, PropertyPath enumerated values
  • Modified DzUri SDK API; deprecated getModifierPath(), getPropertyPath(), setModifierPath(), setPropertyPath()
  • Modified DzUri scripting API; deprecated modifierPath, propertyPath properties
  • Updated public API documentation; DzUri
  • Updated SDK version to 4.16.1.22; SDK min is 4.5.0.100
  • Added support for DSON 0.7.0.0 URI syntax to DzUri
    • Works to restore compliance with RFC 3986
    • Currently only supported via direct API calls
      • DSON 0.6.0.0 URI syntax is still used when saving assets (may become an option)
      • DSON 0.6.0.0 URI syntax is still used when reading assets
  • Setting the URI of a DzUri now sets the file version if the current file version is invalid (not set) or is inconsistent with the URI syntax used
    • File version can be discretely set using the applicable DzUri method/property

DAZ Studio : Incremented build number to 4.16.1.22


  • Source maintenance
  • Setting the URI of a DzUri now wholesale clears (rather than discretely clearing) current values prior to parsing the value passed in
    • Fixes an issue with data corruption
  • Setting the URI of a DzUri now unescapes DSON 0.7.0.0 URI syntax values
    • Fixes an inconsistency in behavior between handing of DSON 0.6.0.0 and DSON 0.7.0.0 URI syntax
  • Made optimizations to DzUri::setNodePath(), DzUri::setSubPath() and DzUri::setChannelPath()
  • Setting the file path of a DzUri now automatically unescapes the value stored
  • Setting the id of a DzUri now automatically unescapes the value stored
  • Updated public API documentation; DzUri

DAZ Studio : Incremented build number to 4.16.1.23


  • Source maintenance
  • Fixed a regression that caused some presets to not be loaded/applied correctly

DAZ Studio : Incremented build number to 4.16.1.24


  • Source maintenance
  • Use of DzMessageBox::information(), DzMessageBox::question(), DzMessageBox::warning(), and DzMessageBox::critical() in scripts now consistently report type, title, message and button text when DzApp::showPrompts() is false
  • Reverted unescape of DzUri filePath, nodePath, subPath, channelPath, and id members when utilizing discrete setters vs ctor/setUri()
    • Escape/Unescape parsing overhead unnecessarily impacts load/save performance
    • Escape/Unescape of discrete values is case dependent and the responsibility of the developer
  • Extended DzProductAssetContainer public API; added remove()
  • Extended DzFile scripting API; added writeUtf8(), writeLineUtf8()
  • Extended DzGZFile scripting API; added readByteLine()
  • Extended DzZipFile scripting API; added getCurrentFileAttributes(), getCurrentFileDateTime()
  • Modified DzZipFile scripting API; deprecated getCurrentFileAtributes()
  • Updated scripting API documentation; DzApp, DzMessageBox, DzUri, DzDir, DzFileInfo, DzFile, DzGZFile, DzZipFile
  • Updated public API documentation; DzProductAssetContainer
  • Updated SDK version to 4.16.1.25; SDK min is 4.5.0.100
  • DzZipFile::addFileToZip(), DzZipFile::addDirToZip() and DzZipFile::locateFile() each now strip a leading slash (if present) passed as pathInZip
  • Extended error logging in DzZipFile

DAZ Studio : Incremented build number to 4.16.1.25


  • Source maintenance
  • Extended DzApp public API; added MessageSeverity enum; added writeToLog() overloads; added isEmittingLogMessages(), fatal(), error(), verbose(), logMessageBox(); added fatalMessage(), errorMessage(), warningMessage(), infoMessage(), verboseMessage(), debugMessage() signals
  • Modified DzApp public API; deprecated debugMsg(), warningMsg()
  • Updated SDK version to 4.16.1.26; SDK min is 4.5.0.100
  • Application log entries are now prefixed by a consistent message severity indicator and a potential message category
    • Adjustments to severity and/or categorization of entries will occur over time
  • Added support for a -noEmitLogMessages command-line option
    • Suppresses emit of DzApp::fatalMessage(), DzApp::errorMessage(), DzApp::warningMessage(), DzApp::infoMessage(), DzApp::verboseMessage(), and DzApp::debugMessage() signals
  • Updated public API documentation; DzApp
  • Uses of QMessageBox now consistently report type, title, message and button text when DzApp::showPrompts() is false

DAZ Studio : Incremented build number to 4.16.1.26


  • Source maintenance
  • Updated NVIDIA Iray plugin whitelist
    • Allows/Causes additional Iray plugins to be loaded

DAZ Studio : Incremented build number to 4.16.1.27


  • Source maintenance
  • Refactored the “Missing Files” dialog
    • Created separate pages for (installable) “Products” and “Unknown Files”
    • Added a “Found Files” page
    • If no (installable) product that provides the missing files is found, the “Products” page is omitted
    • If all files are found, the “Unknown Files” page is omitted
    • If all files are unknown, the “Products” and “Found Files” pages are omitted
    • If only one page is shown, the tab bar is not displayed
    • The “Install Selected” button enabled state now depends on selection
  • Updated public API documentation; DzAssetMgr

DAZ Studio : Incremented build number to 4.16.1.28


  • Source maintenance
  • The “FBX Import Options” dialog now allows the “Take to Import” option to be set to “<None>”
    • Setting this option to “<None>” will omit attempting to apply any take/animation data in the file
  • The DzFbxImporter settings API now supports specifying a “Take” by its index, rather than by its name
    • Use idx::#, where # is the (zero-based) index, to specify the i'th take/animation in the file
  • Updated SDK version to 4.16.1.29; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.16.1.29


  • Source maintenance
  • Leading/Trailing spaces in each level of a property group path are now stripped during load of assets
    • Assets that contain this error were causing certain modifiers to unnecessarily embed in saved scenes

DAZ Studio : Incremented build number to 4.16.1.30


  • Source maintenance
  • The “Missing Files” dialog now automatically selects the 'minimal set' of products to install missing files instead of selecting all products that provide the missing files
  • The “Found Files” page in the “Missing Files” dialog now indicates which product each file was found in
  • Added a “Select Minimal Set” button to the “Missing Files” dialog
    • Causes the 'minimal set' product selection to be restored when clicked

DAZ Studio : Incremented build number to 4.16.1.31

Public Beta (4.16.1.34)

  • Source maintenance
  • Extended DzAssetMgr SDK API; added buildMinimumProductSetForFiles()
  • Extended DzAssetMgr public API; added fileKeyForFilename()
  • Updated public API documentation; DzAssetMgr
  • The return value of DzAssetMgr::installMissingAssets() now lists the files found in the context of the products they are found in, rather than an aggregate list
  • The “Found Files” page in the “Missing Files” dialog now indicates the store and token for listed products
  • Updated SDK version to 4.16.1.32; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.16.1.32


  • Source maintenance
  • Extended DzAssetMgr scripting API; added buildMinimumProductSetForFiles()
  • Updated public API documentation; DzAssetMgr
  • Updated scripting API documentation; ByteArray, Font
  • Updated SDK version to 4.16.1.33; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.16.1.33


  • Source maintenance
  • Added support to FBX Importer for Dual Quaternion Skinning (DQS)
  • Added support to FBX Importer for blended weight mode (LBS/DQS) - experimental
  • FBX import of blended weight mode now ensures vertex count matches the target mesh
  • Updated copyright notice in the FBX Importer source to indicate Apache License 2.0
  • Updated copyright notices application wide
  • Update to NVIDIA Iray 2021.1.0 (349500.7063)
  • Fixed inconsistencies in message handling
  • Fixed tip script errors when a render engine is not present
  • Fixed tip script errors when a simulation engine is not present
  • Updated scripting API documentation; DzNodeAligner

DAZ Studio : Incremented build number to 4.16.1.34

Public Beta (4.16.1.40)

  • Source maintenance

DAZ Studio : Incremented build number to 4.16.1.35


  • Source maintenance

DAZ Studio : Incremented build number to 4.16.1.36


  • Source maintenance
  • Extended scripting API; added DzBindingToSelectionMapBuilder - create/modify face groups based on the binding of a figure
  • Extended DzGeometryShellNode public API; added findFacetGroupVisibilityControl(), findMaterialGroupVisibilityControl()
  • Updated public API documentation; DzGeometryShellNode, DzFaceGroup, DzMaterialFaceGroup
  • DzZipFile::addDirToZip() now ensures that the pathInZip parameter has a trailing slash
  • Updated scripting API documentation; DzZipFile
  • Updated SDK version to 4.16.1.37; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.16.1.37


  • Source maintenance
  • Fixed several issues with DzZipFile
    • compressAll() was not creating directory records in resultant zip files unless the source directories contained no files
    • addFileToZip() was not setting the DOS regular file bit for external file attributes
    • addDirToZip() was setting the wrong bit for DOS directory in external file attributes
    • addDirToZip() was not ensuring that the pathOnDisk parameter referred to a directory, rather than a file
    • getCurrentFileIsFolder() was not interrogating DOS and Unix external file attributes
    • getCurrentFileAttributes(), getCurrentFileCompressedSize(), and getCurrentFileUncompressedSize() were returning a signed integer instead of an unsigned integer

DAZ Studio : Incremented build number to 4.16.1.38


  • Source maintenance
  • Fixed pathing issues with DzZipFile
    • Paths recorded to generated zip files now always use the cross-platform compatible forward slash ('/') path separator, instead of the platform/OS native path separator (e.g., '\\' on Windows)
    • locateFile() will now first attempt lookup with forward slashes (regardless of platform/OS), and fallback to the native separators on platforms where the native separator is not a forward slash (e.g., Windows) in order to maintain compatibility with previously generated DzZipFile results
  • DzZipFile::addFileToZip() now sets the DOS archived file bit (instead of regular file) for external file attributes

DAZ Studio : Incremented build number to 4.16.1.39


  • Source maintenance
  • Fixed an issue with overloaded Shader Mixer bricks erroneously setting known value

DAZ Studio : Incremented build number to 4.16.1.40

Public Beta (4.16.1.43)

  • Source maintenance
  • Fixed an issue with UV Sets not writing correctly in certain Wearable(s) Presets
  • Extended DzBoneBinding public API; added lockedChanged() signal
  • Updated public API documentation; DzBoneBinding
  • Updated SDK version to 4.16.1.41; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.16.1.41


  • Source maintenance
  • The viewport context menu (and Tool Settings options menu) for the Node Weight Brush tool has been extended to include Lock, Unlock, and Toggle Locks convenience actions
    • These actions operate on node selection within the scene (primary selection)
    • “Lock Selected Bone Weights”
    • “Lock Selected Bone Weights Recurse”
    • “Lock All Bone Weights Except Selected and Parent(s)”
    • “Lock All Bone Weights Except Selected and Child(ren)”
    • “Lock All Bone Weights”, “Unlock Selected Bone Weights”
    • “Unlock Selected Bone Weights Recurse”
    • “Unlock All Bone Weights”
    • “Toggle Selected Bone Weight Locks”
    • “Toggle Selected Bone Weight Locks Recurse”
    • “Toggle All Bone Weight Locks”
  • The context menu for the “Lock” page in the Tool Settings pane, when the Node Weight Brush tool is active, has been extended to include Lock, Unlock, and Toggle Locks convenience actions
    • These actions operate based on item selection within the “Lock” page view
  • The context menu for the “Lock” page in the Tool Settings pane, when the Node Weight Brush tool is active, has been extended to include additional Expand/Collapse actions
  • The context menu for the “Lock” page in the Tool Settings pane, when the Node Weight Brush tool is active, has been modified to be more context aware
  • Updated default menus; recommend clicking the Window > Workspace > Update and Merge Menus action

DAZ Studio : Incremented build number to 4.16.1.42


  • Source maintenance
  • The Lock submenu of the viewport context menu (and Tool Settings options menu) for the Node Weight Brush tool has been extended
    • “Lock Unselected Bone Weights”
  • The Expand/Collapse submenus/actions in the context menu for the “Lock” page in the Tool Settings pane, when the Node Weight Brush tool is active, has been updated for consistency with the Scene pane context menu
  • The Lock submenu of the context menu for the “Lock” page in the Tool Settings pane, when the Node Weight Brush tool is active, has been updated to add “Lock Unselected”
  • Updated default menus; recommend clicking the Window > Workspace > Update and Merge Menus action
  • The default number of gradient handles for the Directional Gradient tool is now 3 (instead of 2)

DAZ Studio : Incremented build number to 4.16.1.43

Public Beta (4.16.1.47)

  • Source maintenance
  • Updated Root Categories
    • Added Default/Materials/Iray/Effects and subcategories
    • Added Default/Materials/Iray/Vegetation
    • Added Default/Props/Effects/… subcategories
    • Added Default/Shaders/Iray/Effect/… subcategories

DAZ Studio : Incremented build number to 4.16.1.44


  • Source maintenance
  • Updated Root Categories
    • Extended Default/Props/Landscape/… subcategories
  • Updated public API documentation; DzSkinBinding
  • Extended DzFileIO SDK API; added fileErrorString(), safeWriteToFile()
  • Updated SDK version to 4.16.1.45; SDK min is 4.5.0.100
  • Saving of interface files now employs “safe write”
    • Instead of writing directly to the final destination file, data is written to a temporary file, the final destination file is removed, and the temporary file is renamed to the final destination name
    • If writing the temporary file fails to complete successfully, the final destination file is left untouched
  • Updated logging when saving an interface file fails
  • Added logging when loading an interface file fails
  • Modified the severity of several log entries

DAZ Studio : Incremented build number to 4.16.1.45


  • Source maintenance
  • Fixed an issue with DzAssetMgr::buildMinimumProductSetForFiles() determining the 'minimal set' of products to install missing files
    • Impacts automatic selection within the “Missing Files” dialog
  • Fixed an issue with loading of layered image masks when referenced textures are installed during load

DAZ Studio : Incremented build number to 4.16.1.46


  • Source maintenance
  • Extended DzFileIO SDK API; added removeFile(), renameFile()
  • Updated SDK version to 4.16.1.47; SDK min is 4.5.0.100
  • Saving of interface files now employs a safer “safe write”
    • Existing final destination files are managed/maintained as backup files throughout the process and only removed if the temporary file is successfully renamed to the final destination name
  • Added logging to DzFileIO::copyFile() failures

DAZ Studio : Incremented build number to 4.16.1.47

Public Beta (4.20.0.2)

  • Source maintenance
  • Increment application, plugin and SDK version for 4.20.0.x
  • Updated SDK version to 4.20.0.1; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.20.0.1


  • Source maintenance
  • Update to dForce 1.6.0.1
    • Updates plugin revision to reflect SDK version
    • Maintains Publishing Partner Features functionality
  • Addressed an issue with asset URIs being written in the DSON 0.7.0.0 syntax instead of the (currently) desired/intended DSON 0.6.0.0 URI syntax

DAZ Studio : Incremented build number to 4.20.0.2

Public Beta (4.20.0.3)

  • Source maintenance
  • Fixed an issue where “safe writing” a file would fail for new files (a file that does not already exist)
    • The temporary file was being created, but if the final destination file did not exist it could not be renamed as a backup, so the temporary file was being removed as part of failure (to create a backup) cleanup rather than being renamed to the final destination file
    • Manifests as Window > Workspace > Save Layout… not saving if a new name was used
    • Manifests as exiting Full Screen mode not restoring the layout prior to entering Full Screen mode
  • Fixed clone depth of DzJsonObject and DzJsonArray
  • Extended DzFileProperty public API; added FileLoad enumerated value; added setDisplayText(), getDisplayText(), loadFile()
  • Extended DzContentFolder scripting API; added loadFolders(), unloadFolders(), loadFiles(), unloadFiles()
  • Updated public API documentation; DzUri, DzFileProperty, DzContentFolder
  • Updated SDK version to 4.20.0.3; SDK min is 4.5.0.100
  • Added error logging to copying/moving content files
  • Added support for saving/loading of DzFileProperty Display Text
  • Fixed styling inconsistencies in DzFilePropertyWgt; used in Shader Mixer bricks
  • Fixed an issue in the “Parameter Settings” dialog where the “Browse…” item in the “Value” menu for a DzFileProperty (File) set to “File Load” would not cause the file open dialog to appear when clicked
  • Fixed an issue in the “Create New Property” dialog where the “Browse…” item in the “Value” menu for a DzFileProperty (File) set to “File Load” would not cause the file open dialog to appear when clicked
  • Added a “Native Formats” filter option to the “Filter” menu of the “Create New Property” dialog for a DzFileProperty (File)
  • Minor tweak to splash/about images

DAZ Studio : Incremented build number to 4.20.0.3

Public Beta (4.20.0.4)

  • Source maintenance
  • Fixed an issue with writing values for embedded DzImageProperty, DzNodeProperty, and DzNumericNodeProperty user properties
  • Fixed an issue where saving session UI files would abort while attempting to backup (rename) UI files
    • New UI files would not be saved because non-existent files could not be renamed
    • Manifests as new installations not saving session UI files when a layout is applied and/or when the application is closed
  • Extended logging related to UI file loading/saving

DAZ Studio : Incremented build number to 4.20.0.4

Public Beta (4.20.0.5)

  • Source maintenance
  • Extended DzProperty public API; added PropertyResetFlag enum; added reset()
  • Extended DzFileProperty public API; added displayTextChanged() signal
  • Updated public API documentation; DzProperty, DzStringProperty, DzFileProperty
  • Updated SDK API documentation; DzFloatProperty, DzIntProperty
  • Updated SDK version to 4.20.0.5; SDK min is 4.5.0.100
  • Added saving/loading of DzStringProperty (and derived) default value to/from support assets
  • Setting the Display Text of a File property now triggers the associated widget(s) to update - instead of waiting until the next time the widgets happen to update
  • Holding the Alt modifier when clicking a String or File property, or clicking the “Reset” action in the property's option menu, will now reset the value to its default value
  • Holding the Alt modifier when clicking an Image property, or clicking the “Reset” action in the property's option menu, will now reset/clear the image
  • Holding the Alt modifier when clicking a Numeric Node property, or clicking the “Reset” action in the property's option menu, will now also reset/clear the node
  • Setting DzStringProperty default value is now undo-able
  • Updated DzFileProperty undo item to include display text
  • DzFileProperty copy/paste now includes display text
  • Setting DzFileProperty default value is now undo-able
  • Updated the “Parameter Settings” dialog for String and File property types
    • Now allows setting a default value for String and File properties
    • Now provides an option menu with values for String and File properties
    • Now temporarily collects unique paths (in the option menu) of paths navigated to for File properties
  • Updated the “Create New Property” dialog for String, File and Image property types
    • Now enables/disables the Animatable option according to whether or not the Property Type supports animation (String, File and Image do not)
    • Now allows setting a default value for String and File properties

DAZ Studio : Incremented build number to 4.20.0.5

Public Beta (4.20.0.6)

  • Source maintenance
  • Fixed an issue where keys for file properties were being written as absolute paths even if the path could be made relative to a mapped content directory
    • e.g., Saving a Material(s) Preset that sets the path to a *.vdb file for an inhomogeneous volume
  • Entries in the render engine selector, at the top of the Editor/Advanced pages in the Render Settings pane, now include an indication of the shader language(s) that it supports (in the current render mode for that renderer)
  • Extended DzMaterial public API; added getShaderLanguages()
  • Updated public API documentation; DzMaterial
  • Updated SDK version to 4.20.0.6; SDK min is 4.5.0.100
  • The “Shader” label at the top of the Editor page in the Surfaces pane that indicates the name of the shader applied to the selected surface(s) now also includes an indication of the shader language(s) employed by the shader

DAZ Studio : Incremented build number to 4.20.0.6

Public Beta (4.20.0.8)

  • Source maintenance
  • Extended DzApp SDK API; added isCoreFactory()
  • Updated SDK version to 4.20.0.7; SDK min is 4.5.0.100
  • Reorganized the Background Color, Background Image, and Render Settings related preferences in Edit > Preferences… (F2) : Scene into “On Load” and “On Save” groups
    • Made adjustments to these preference labels to fit re-grouping
  • Added a “Compress File” preference to Edit > Preferences… (F2) : Scene
    • Provides user control over whether or not the File > Save… action (DzSaveAction) uses compression
    • Re-saving any opened scene will apply this preference to the saved file regardless of its previous compressed state
  • The File > Save As > Scene… action (DzSceneAssetFilterAction, DzSceneAssetFilter) now displays a “Scene Save Options” dialog
    • Provides user control over the same options available via Edit > Preferences… (F2) : Scene : On “Save”, but applies only to the new file being saved

DAZ Studio : Incremented build number to 4.20.0.7


  • Source maintenance
  • Products from the Daz 3D store (i.e., DzProductAssetContainer::store == “DAZ 3D”) that have a valid token (i.e., DzProductAssetContainer::token, aka “SKU”) but an empty (globally unique) identifier (i.e., DzAbstractAssetContainer::id) are now automatically/dynamically assigned a specifically formatted GUID (i.e., DzProductAssetContainer::guid) derived from the store and the product SKU (e.g., 00000000-0000-0000-da01-000000000001)
    • This addresses issues in the application where a product's GUID is used to retrieve (information related to) the product, but because the GUID for the product has not been defined (which is considered an error in the data) the product cannot be resolved
  • Extended content types for file load properties; added Modifier/Utility

DAZ Studio : Incremented build number to 4.20.0.8

Public Beta (4.20.0.11)

  • Source maintenance
  • Fixed an issue with file properties being listed as “Currently Used” when the current value and the definition value match
  • DzScene::saveScene() now supports DSON format
    • Forwards to DzAssetIOMgr::doSceneSaveAs() if passed an empty string
    • Forwards to DzAssetIOMgr::doSceneSave() if passed a path not ending with the .daz extension
    • Support for the .daz format is (still) deprecated

DAZ Studio : Incremented build number to 4.20.0.9


  • Added dzsdkmemory.dll to allow newer compilers to be used to build plug-ins for Studio 4.x (Windows)
  • Updated SDK samples to use new memory mechanism (Windows)
  • Extended DzDomDocument scripting API; added ctor overload that allows creating a DzDomDocumentType; added documentElement()
  • Updated scripting API documentation; DzDomDocument

DAZ Studio : Incremented build number to 4.20.0.10


  • Extended DzScene Public API; added protectSceneSourceFile()
  • Extended DzScene SDK API; added protectSceneSourceFileByAuthor()
  • Extended DzAssetMgr public API; added getDAZ3DStoreID(), captureSceneAssetPathsList(), captureSceneAssetPathsList(), getProductsForFiles()
  • Extended DzAssetMgr SDK API; added captureSceneAssetPaths(), captureSceneAssetPaths(), buildMinimumProductSetForFiles()
  • Extended DzProductAssetContainer SDK API; added getStoreID()
  • Extended DzProductAssetContainer scripting API; added storeID property
  • Updated SDK version to 4.20.0.11; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.20.0.11

Public Beta (4.20.0.12)

  • Source maintenance
  • Fixed an issue in the “Create New Property” dialog where the “Max” value of an Int property could not be manually edited by clicking the value of the slider
  • The “Create New Property” dialog now allows creating of Node, Skeleton, and Numeric Node property types
  • The values in the “Property Type” selector in the “Create New Property” dialog are now visually separated by type
  • Made “Default:” value labels in the “Create New Property” consistent
  • Conversion of integer typedefs from script to C++ (DzError/DzTime) are now discretely handled
    • e.g., script accessible functions that take a DzTime parameter automatically convert types (and therefore match documentation)

DAZ Studio : Incremented build number to 4.20.0.12

Public Beta (4.20.0.17)

  • Source maintenance

DAZ Studio : Incremented build number to 4.20.0.13


  • Source maintenance
  • Improvements to DzAssetMgr::captureSceneAssetPaths() to handle less used modifiers
    • Ensure default UV set is always captured for scene geometry
  • Improved logging when attempting to add MDL directories during Iray initialization
  • “Built-In” MDL directories are now created during Iray initialization if they do not already exist
    • Failure to create results in a warning being logged

DAZ Studio : Incremented build number to 4.20.0.14


  • Source maintenance
  • Extended DzIntPropertyWgt SDK API; added setFullLengthTextEdit(), isFullLengthTextEdit()
  • Extended DzFloatPropertyWgt SDK API; added setFullLengthTextEdit(), isFullLengthTextEdit()
  • Updated SDK version to 4.20.0.15; SDK min is 4.5.0.100
  • Clicking the value of a slider in Tool Settings for the Joint Editor tool now uses the full width of the slider for manual editing
    • Similar in behavior to manually editing the value of float/int properties in the Parameters pane
  • Clicking the value of a (float) slider in Tool Settings for the Joint Editor tool now provides more precision
    • Up to 7 digits after the decimal point if the value is < 0.1
    • Up to 6 digits after the decimal point if the value is < 10 and >= 0.1
    • Up to 5 digits after the decimal point if the value is < 100 and >= 10
    • Up to 4 digits after the decimal point if the value is < 1000 and >= 100
    • Up to 3 digits after the decimal point if the value is < 10000 and >= 1000
    • Up to 2 digits after the decimal point if the value is >= 10000

DAZ Studio : Incremented build number to 4.20.0.15


  • Source maintenance
  • Improved error logging when attempting to open/inspect assets

DAZ Studio : Incremented build number to 4.20.0.16


  • Source maintenance
  • Extended DzStyledPropertyHeaderWidget SDK API; added setTipImage(), setTipDescription(), updateTip()
  • Updated SDK version to 4.20.0.17; SDK min is 4.5.0.100
  • All styled property widgets (e.g., those displayed in Parameters, Posing, Shaping, Cameras, Lights, etc panes) now present a tooltip when the cursor is hovered over the header/label, rather than only those where the label is elided
    • When the option to display hidden properties in various views/panes are active, this behavior allows the label of those properties to be more readily revealed to content developers whilst continuing to discourage discrete use by end users
    • Provides usage hints
  • If a property provides a presentation with a description, the description is now displayed in the tooltip of styled property widget headers/labels
    • A description is only displayed when a given widget represents a single property
  • A tooltip for DzFloatPropertyWgt and DzIntPropertyWgt now displays the full value (not rounded for float values) of the property they represent
    • An example of this can now be seen in Tool Settings for the Joint Editor tool
    • Similar in behavior to DzStyledFloatPropertyWgt and DzStyledIntPropertyWgt respectively, as seen in various property view based panes (e.g., Parameters, Posing, Shaping, etc)

DAZ Studio : Incremented build number to 4.20.0.17



Release to Production

  • 4.20.0.2 - 2022-02-18
  • 4.20.0.17 - 2022-04-29