User Tools

Site Tools


4.21.0.5 Change Log

Below is a “sanitized” version of the Daz Studio change log leading to the General Release of version 4.21.0.5. 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.20.1.34)

  • Source maintenance
  • Increment application, plugin and SDK version for 4.20.1.x
  • Updated version related images

DAZ Studio : Incremented build number to 4.20.1.1


  • Source maintenance
  • Update to dForce 1.6.1.1
    • Updates plugin revision to reflect SDK revision
    • Maintains Publishing Partner Features functionality

DAZ Studio : Incremented build number to 4.20.1.2


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

DAZ Studio : Incremented build number to 4.20.1.3


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

DAZ Studio : Incremented build number to 4.20.1.4


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

DAZ Studio : Incremented build number to 4.20.1.5


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

DAZ Studio : Incremented build number to 4.20.1.6


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

DAZ Studio : Incremented build number to 4.20.1.7


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

DAZ Studio : Incremented build number to 4.20.1.8


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

DAZ Studio : Incremented build number to 4.20.1.9


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

DAZ Studio : Incremented build number to 4.20.1.10


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

DAZ Studio : Incremented build number to 4.20.1.11


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

DAZ Studio : Incremented build number to 4.20.1.12


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

DAZ Studio : Incremented build number to 4.20.1.13


  • Source maintenance

DAZ Studio : Incremented build number to 4.20.1.14


  • Source maintenance

DAZ Studio : Incremented build number to 4.20.1.15


  • Source maintenance
  • Update to NVIDIA Iray 2021.1.1 (349500.8264)

DAZ Studio : Incremented build number to 4.20.1.16


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

DAZ Studio : Incremented build number to 4.20.1.17


  • Source maintenance
  • Build system tweaks

DAZ Studio : Incremented build number to 4.20.1.18


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

DAZ Studio : Incremented build number to 4.20.1.19


  • Source maintenance
  • Implemented support for NVIDIA Iray curves/fibers for strand-based hair/fur
    • The Render Settings > Render Mode > “Render Mode” property must be set to “Photoreal”
    • For display via the NVIDIA Iray DrawStyle, the Parameters > General > Line Tessellation > “Viewport Line Tessellation Sides” property must be set to 1
    • For offline rendering, the Parameters > General > Line Tessellation > “Render Line Tessellation Sides” property must be set to 0
  • Extended get_line_root_to_tip_blend in ./shaders/iray/daz_3d/basic.mdl to support both vertically and horizontally UV oriented hair strands
  • Extended the DzMdlDAZ3DBasicGetLineRootToTipBlend (Get Line Root To Tip Blend) Shader Mixer brick to allow discrete setting of “Fiber UV Orientation”

DAZ Studio : Incremented build number to 4.20.1.20


  • Source maintenance
  • Extended material functions in ./shaders/iray/daz_3d/basic.mdl, dual_lobe_hair.mdl, irayubermaterial.mdl, pbr_skin.mdl to consider hair
  • Added ./shaders/iray/daz_3d/fiber_chiang_hair_fur.mdl
  • NVIDIA Iray curves/fiber type is now discretely set to BSpline for strand-based hair/fur

DAZ Studio : Incremented build number to 4.20.1.21


  • Source maintenance
  • Update to NVIDIA Iray 2021.1.2 (349500.8766)

DAZ Studio : Incremented build number to 4.20.1.22


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

DAZ Studio : Incremented build number to 4.20.1.23


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

DAZ Studio : Incremented build number to 4.20.1.24


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

DAZ Studio : Incremented build number to 4.20.1.25


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

DAZ Studio : Incremented build number to 4.20.1.26


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

DAZ Studio : Incremented build number to 4.20.1.27


  • Source maintenance
  • Fixed an issue with incorrectly setting the asset id of some modifier types when duplicating an object
  • Fixed an issue with DzActionMgr::addCustomAction() not assigning the shortcut parameter to the newly created custom action
  • Removed errant warnings when removing mapped directories

DAZ Studio : Incremented build number to 4.20.1.28


  • Source maintenance
  • Extended DzAssetMgr public API; added ProductInstallState, SortType enums
  • Updated SDK version to 4.20.1.29; SDK min is 4.5.0.100
  • Updated public API documentation; DzAssetMgr

DAZ Studio : Incremented build number to 4.20.1.29


  • Source maintenance
  • Fixed an issue with populating the Grouping list in the Tool Settings pane for the Geometry Editor tool when selecting/deselecting an object
  • Fixed an issue with populating/clearing items in DzPathItemModel

DAZ Studio : Incremented build number to 4.20.1.30


  • Source maintenance
  • Fixed typographical errors in recent “Fiber UV Orientation” addition to get_line_root_to_tip_blend

DAZ Studio : Incremented build number to 4.20.1.31


  • Build system tweaks

DAZ Studio : Incremented build number to 4.20.1.32


  • Source maintenance
  • Fixed typographical errors in ./shaders/iray/daz_3d/fiber_chiang_hair_fur.mdl relating to primary reflection

DAZ Studio : Incremented build number to 4.20.1.33


  • Build system tweaks

DAZ Studio : Incremented build number to 4.20.1.34

Public Beta (4.20.1.38)

  • Source maintenance
  • Extended DzLayout scripting API; added leftMargin, topMargin, rightMargin, bottomMargin properties
  • Modified DzLayout scripting API; deprecated autoAdd property
  • Extended DzProperty public API; added restoreAttributesFromDefinition()
  • Modified DzProperty public API; PropertyResetFlag::ResetToDefinition constant value changed to support bitwise OR when passed to reset()
  • Updated SDK version to 4.20.1.35; SDK min is 4.5.0.100
  • Updated scripting API documentation; DzDialog, DzBasicDialog, DzLayout, DzBoxLayout, DzHBoxLayout, DzVBoxLayout, DzGridLayout, DzButtonGroup, DzButton, DzPushButton, DzComboBox, DzTabWidget, DzListView, DzListBox, DzTextEdit, DzTextBrowser, DzPopupMenu, DzLCDNumber, DzDateTimeEdit, DzUri, DzProperty
  • Fixed an issue in DzProperty::reset() where it was not limiting attributes being reset with ResetToDefinition to only the attributes that are considered part of a property's definition

DAZ Studio : Incremented build number to 4.20.1.35


  • Source maintenance
  • Extended DzMorphLoaderBatch scripting API; disambiguated createMorphs(); added createMorphsFromMesh()
  • Extended DzMorphLoader scripting API; added applyReverseDeformationsPose()
  • Updated scripting API documentation; DzMorphLoaderBatch, DzMorphLoader
  • Extended Morph Loader Pro feedback/logging when an attempt to apply the reverse deformations pose for a given morph fails
    • Now respects DzApp::showPrompts()
    • Now distinguishes between failure to load and failure to execute

DAZ Studio : Incremented build number to 4.20.1.36


  • Source maintenance
  • Modified DzLineEdit scripting API; setDoubleValidator() now supports setting an unlimited range; setDoubleValidator() now supports setting unlimited decimal places; setIntValidator() now supports setting an unlimited range
  • Modified DzComboEdit scripting API; setDoubleValidator() now supports setting an unlimited range; setDoubleValidator() now supports setting unlimited decimal places; setIntValidator() now supports setting an unlimited range
  • Updated scripting API documentation; DzLineEdit, DzComboEdit, DzComboBox

DAZ Studio : Incremented build number to 4.20.1.37


  • Source maintenance
  • Update to NVIDIA Iray 2021.1.3 (3349500.9894)
  • Updated public API documentation; DzAssetMgr, DzNode, DzObject

DAZ Studio : Incremented build number to 4.20.1.38

Public Beta (4.20.1.43)

  • Source maintenance
  • Extended Pixmap scripting API; added toByteArray()
  • Modified Pixmap scripting API; save() now takes parameters for format and quality; save() now returns a Boolean value to indicate success/failure
  • Extended Image scripting API; added toByteArray()
  • Modified Image scripting API; save() now takes parameters for format and quality; save() now returns a Boolean value to indicate success/failure
  • Updated scripting API documentation; Pixmap, Image
  • Updated public API documentation; DzCustomData, DzElementData, DzSimpleElementData, DzSimpleElementScriptData, DzElementPostLoadFileData, DzSceneData, DzSimpleSceneData, DzSimpleSceneScriptData

DAZ Studio : Incremented build number to 4.20.1.39


  • Source maintenance
  • Update to DzCloud 1.0.3.24
    • Allow long paths on Windows (> 260 characters)
  • Extended DzScene public API; added getUniqueDataItemName()
  • Extended DzScene SDK API; added isDataItemNameUnique()
  • Updated SDK version to 4.20.1.40; SDK min is 4.5.0.100
  • Updated public API documentation; DzScene

DAZ Studio : Incremented build number to 4.20.1.40


  • Source maintenance
  • Fixed an issue with DzProperty::reset() where ResetToDefinition would not properly reset a numeric property's clamped state

DAZ Studio : Incremented build number to 4.20.1.41


  • Source maintenance
  • Updated public API documentation; DzApp, DzAssetMgr, DzProductAssetContainer, DzElement, DzObject, DzShape, DzStorable, DzMaterialSelectionSet, DzCustomData, DzElementData, DzSimpleElementData, DzSimpleElementScriptData, DzElementPostLoadFileData, DzSceneData, DzSimpleSceneData, DzSimpleSceneScriptData, DzSourceFileData, DzGeomSourceFileData, DzLegacyIKChains, DzLegacyIKChain, DzPoserIKTargetFlag, DzPoserNonPropagatingScaleFlag, DzPoserPropagatingScaleFlag, Dz3DViewport, DzCamera, DzBasicCamera, DzActivityLayout, DzButton, DzComboBox, DzLCDNumber, DzDir, DzFileInfo
  • Extended DzDebugViewUtil scripting API; added clearPointChannelsFromScene(), clearLineChannelsFromScene(), clearPointChannelFromScene(), clearLineChannelFromScene(), clearChannelFromScene(), clearPointChannels(), clearLineChannels(), clearPointChannel(), clearLineChannel(), clearChannel(), postPointDebugData(), postLineDebugData(), postDebugData()
  • Updated scripting API documentation; DzDebugViewUtil

DAZ Studio : Incremented build number to 4.20.1.42


  • Source maintenance
  • Fixed an issue with DzImageProperty not being accounted for in DzShaderMaterial::getAllMaps()
  • Fixed an issue in DzBrickMaterial::getAllMaps() that allowed duplicates
  • Fixed an issue in DzUberIrayMaterial::getAllMaps() that allowed duplicates
  • Fixed an issue with DzPbrMaterial::getAllMaps() failing to collect maps
  • Updated public API documentation; DzMorph, DzMorphDeltas, DzDebugViewUtil, DzAssetMgr

DAZ Studio : Incremented build number to 4.20.1.43

Public Beta (4.20.1.58)

  • Source maintenance
  • Updated public API documentation; DzFacetMesh

DAZ Studio : Incremented build number to 4.20.1.44


  • Source maintenance
  • Updated public API documentation; DzTexture, DzImageTexture, DzLayeredTexture

DAZ Studio : Incremented build number to 4.20.1.45


  • Source maintenance
  • Extended DzLegacyFigure public API; added getBinding()
  • Updated SDK version to 4.20.1.46; SDK min is 4.5.0.100
  • Updated public API documentation; DzSkeleton, DzFigure, DzSkinBinding, DzLegacyFigure, DzLegacyAlternateGeometry, DzLegacyBinding, DzLegacyJointParam, DzLegacyBendParam, DzLegacyCurve, DzLegacySmoothScale, DzLegacyTwistParam, DzLegacyJointSphere, DzMorph, DzMorphDeltas, DzPushModifier, DzMeshModifier, DzConditionalGraftModifier, DzDFormModifier

DAZ Studio : Incremented build number to 4.20.1.46


  • Source maintenance
  • Extended DzMeshSmoothModifier scripting API; added assetSource, assetAuthor, assetFileRevision, assetModifiedDate properties
  • Updated SDK version to 4.20.1.47; SDK min is 4.5.0.100
  • Updated scripting API documentation; DzMeshSmoothModifier

DAZ Studio : Incremented build number to 4.20.1.47


  • Source maintenance
  • Fixed a crash in the Node info page (displayed in the footer of the Scene pane) when a bone is selected that has been added to the scene but is not owned by a skeleton
    • A bone should only be added to the scene if it has been added to a skeleton
  • Fixed an issue in the FBX exporter that was causing polygon groups to be omitted from the file
  • Exporting FBX now includes StudioNodeName and StudioNodeLabel properties for all nodes, not just nodes with a presentation

DAZ Studio : Incremented build number to 4.20.1.48


  • Source maintenance
  • FBX exporter refactoring

DAZ Studio : Incremented build number to 4.20.1.49


  • Source maintenance
  • FBX exporter refactoring
  • Updated public API documentation; DzFacetMesh, DzFacetShape, DzSelectionGroup

DAZ Studio : Incremented build number to 4.20.1.50


  • Source maintenance
  • FBX exporter refactoring

DAZ Studio : Incremented build number to 4.20.1.51


  • Source maintenance
  • FBX exporter refactoring

DAZ Studio : Incremented build number to 4.20.1.52


  • Source maintenance
  • FBX exporter refactoring
  • Updated “FBX Export Options” dialog labels; clarify purpose/context
  • Reorganized the options in the “FBX Export Options” dialog to clarify the context of each
  • Modified labels of options in the “FBX Export Options” dialog
  • The “Merge Followers (into Target)” and “Make Followers Static (Props)” options in the “FBX Export Options” dialog now properly reflect exclusivity
  • The enabled state of “Figure” related options in the “FBX Export Options” dialog now correspond with the checked state of the “Include Figures” option
  • The options area of “FBX Export Options” dialog is now scrollable
    • Allows the dialog to be resized smaller while still providing access to the options
  • The options/staging area of “FBX Export Options” dialog is now resizable
    • Allows more space to be given to the options or staging information areas
  • OBJ exporter refactoring
  • Fixed an issue with the Morph Asset Save Options dialog that caused mesh modifiers designed to not be auto-loaded to display their properties
    • Manifested as several dForce related properties that should not have been displayed in the view, being displayed

DAZ Studio : Incremented build number to 4.20.1.53


  • Source maintenance
  • FBX exporter refactoring
  • OBJ exporter refactoring

DAZ Studio : Incremented build number to 4.20.1.54


  • Source maintenance
  • FBX exporter refactoring
  • FBX Exporter settings API keys have been renamed to be more consistent with dialog option labels
    • “do” prefixed keys, and keys with a leading lowercase character, have been deprecated
    • Use of deprecated keys are automatically converted to new/preferred keys
    • Developers should use getDefaultOptions() to retrieve new/preferred key names
  • Added options to the “FBX Export Options” dialog
    • Added “Scene” options
      • Expandable/Collapsible
        • Collapsed by default
      • “Author”
        • Allows a user to specify the name of the author for the scene recorded to the exported file
        • Automatically populated with the name specified in authorship information for the application (if any)
      • “Title”
        • Allows a user to specify the title of the scene recorded to the exported file
        • Automatically populated with the basename of the current scene file (if any)
      • “Subject”
        • Allows a user to specify the subject of the scene recorded to the exported file
      • “Keywords”
        • Allows a user to specify keywords for the scene recorded to the exported file
      • “Revision”
        • Allows a user to specify the revision of the scene recorded to the exported file
      • “Comment”
        • Allows a user to specify a comment about the scene recorded to the exported file
    • Modified/Added “Properties” options
      • “Include Rotation Limits” and “Include Rotation Locks” are no longer interdependent
        • Allows independent user control over whether limits, locks, or both are recorded to the exported file
      • “Take” field
        • Enabled when the “Include Animation” option is checked
        • Allows a user to specify the name of the animation take
    • Added “Geometry” options
      • “Include Face Groups as Polygon Sets”
        • Causes face groups on the geometry of an object to be recorded to the exported file as polygon sets
        • FBX polygon sets have names
          • Facilitates round-trip of face group data - see the corresponding option in the FBX Importer
          • Accessible in 3rd party DCC applications - e.g., Maya 2022/2023
      • “Include Face Groups as Polygon Groups”
        • Causes face groups on the geometry of an object to be recorded to the exported file as polygon groups
        • FBX polygon groups do not have names
          • Not suitable for round-tripping face group data - i.e., grouping persists, but names are lost
          • Not accessible in 3rd party DCC applications - e.g., Maya
          • FBX SDK 2019.5 and earlier consistently/reliably round-trip the data
          • FBX SDK 2020.0 and later do not successfully load this data
    • Modified “Modifiers” options
      • Deactivating “Include Morphs” now omits ERC link scalar values for morphs from the custom ControllerScales data recorded to the exported file
    • Added “Custom Data” options
      • “Include Node Names/Labels”
        • Allows user control over whether or not the names and labels of nodes are recorded to the exported file
        • Facilitates round-trip of node names/labels - see the corresponding option in the FBX Importer
      • “Include Presentation”
        • Allows user control over whether or not type, auto-fit base, and preferred base data is recorded to the exported file
        • Facilitates round-trip of presentation data - see the corresponding option in the FBX Importer
      • “Include Node Selection Map”
        • Causes custom data that associates face groups on the geometry of an object to the bones of a skeleton to be recorded to the exported file
        • Facilitates round-trip of face group to bone associations - see the corresponding option in the FBX Importer
      • “Include Scene IDs”
        • Allows user control over whether or not asset URI is recorded to the exported file
        • Facilitates round-trip of an object's scene ID - see the corresponding option in the FBX Importer

DAZ Studio : Incremented build number to 4.20.1.55


  • Source maintenance
  • Fixed an issue in aniMate where an auto_adjust setting in a saved scene was not being respected when (re)loading the scene
    • If a user manually adjusts the animation range, aniMate should not automatically adjust the animation range
    • Manifested as a scene being saved with the animation range set by the user, but upon (re)loading the scene the animation range did not reflect the range set by the user rather it reflected the range required to satisfy the aniMate data
  • Refactored FBX Importer
      • Added display of “Format” information
        • “Version”
          • Version of the file format
        • “Creator”
          • Creator of the file - e.g., “FBX SDK/FBX Plugins version 2020.2”
      • Added display of “Scene” information
        • Expandable/Collapsible
          • Collapsed by default
        • Contains user-specified data that identifies or classifies the file
          • Author, Title, Subject, Keywords, Revision, Comment
          • See the corresponding option in the FBX Exporter
      • Added “Properties” options
        • “Include Rotation Limits”
          • Allows user control over whether or not rotation limits within the file (if any) are applied to rotation parameters of the imported object(s)
          • See the corresponding option in the FBX Exporter
        • “Include Animation”
          • Allows user control over whether or not animation data within the file (if any) is applied to the imported object(s)
          • Enables selection of which “Take” of animation data within the file (if any) is applied to the imported object(s)
          • See the corresponding options in the FBX Exporter
      • Added “Geometry” options
        • “Include Polygon Sets”
          • Allows user control over whether or not polygons sets within the file (if any) are applied to the imported object(s)
        • “Include Polygon Groups”
          • Allows user control over whether or not polygons groups within the file (if any) are applied to the imported object(s)
          • FBX SDK 2020.0 and later do not successfully load this data
        • If “Include Polygon Sets” and “Include Polygon Groups” are both active:
          • Polygon Sets will be interpreted as Polygon Selection Sets
          • Polygon Groups will be interpreted as Face Groups
            • See “Include Polygon Groups” notes above
        • If “Include Polygon Sets” is active and “Include Polygon Groups” is inactive: (recommended)
          • Polygon Sets will be interpreted as Face Groups
          • See also “Include Node Selection Map”
        • If “Include Polygon Sets” is inactive and “Include Polygon Groups” is active:
          • Polygon Groups will be interpreted as Face Groups
          • See “Include Polygon Groups” notes above
        • See the corresponding options in the FBX Exporter
      • Added “Custom Data” options
        • “Include Node Names/Labels”
          • Allows user control over whether or not custom name and label data for a given node within the file (if any) are applied to nodes of the the imported object(s)
          • Controls whether or not the values of StudioNodeName and StudioNodeName properties on a given node are considered
        • “Include Presentation”
          • Allows user control over whether or not type, auto-fit base, and preferred base data within the file (if any) is applied to the imported object(s)
          • Controls whether or not the values of StudioPresentationType, StudioPresentationAutoFitBase, and StudioPresentationPreferredBase properties on a given node are considered
        • “Include Node Selection Map”
          • Allows user control over whether or not data within the file (if any) that associates face groups on the geometry of an object to the bones of a skeleton are applied to the imported object(s)
          • Controls whether or not the value of the StudioNodeFaceGroup property on a given node is considered
          • Works in conjunction with “Include Polygon Sets”
            • Values are expected to be the name of the polygon set to consider for a given node
            • Values are expected to follow the pattern <faceGroupName>__<skeletonName>
        • “Include Scene IDs”
          • Allows user control over whether or not asset URI data within the file (if any) are applied to the imported object(s)
          • Controls whether or not the value of the StudioSceneID property on a given node is considered
        • See the corresponding options in the FBX Exporter

DAZ Studio : Incremented build number to 4.20.1.56


  • Source maintenance
  • Update to NVIDIA Iray 2021.1.6 (349500.11420)

DAZ Studio : Incremented build number to 4.20.1.57


  • Source maintenance
  • Fixed an issue in the FBX Exporter where the export would fail with an unknown error if the exported objects contained a prop (or a skeleton with no selection map) and the “Include Face Groups as Selection Sets” option was active
  • Added cursor busy state feedback to FBX Exporter

DAZ Studio : Incremented build number to 4.20.1.58

Public Beta (4.20.1.78)

  • Source maintenance
  • Added a “Copy to All” action to the Morph Loader Pro context menu for a morph when multiple morphs are being configured
    • Applies all attributes (except names/labels) of the selected morph to all other listed morphs
    • Removes the need to save (and subsequently remove) a preset in order to copy common values from one morph to all others

DAZ Studio : Incremented build number to 4.20.1.59


  • Source maintenance
  • Added support for including mapped properties owned by simulation settings providers (e.g., dForce hair) in Layered Image(s) Presets
    • The Layered Image(s) “Preset Save Options” dialog now displays options for mappable properties that have layered images applied
    • The DzLayerAssetFilter settings API now supports mappable properties owned by DzSimulationSettingsProvider instances

DAZ Studio : Incremented build number to 4.20.1.60


  • Source maintenance
  • Updated public API documentation; DzWeightMap

DAZ Studio : Incremented build number to 4.20.1.61


  • Source maintenance
  • A fallback has been implemented to allow access to the features unlocked by a “free Pro” serial number in the event a serial number is not automatically issued
  • DzImageMgr::createLayeredTexture() now incorporates its name argument into the temporary file name given to layered textures
  • Added support for blended general weight (LBS/DQS) mesh skinning to FBX Exporter
    • If “Weight Mapping Mode” is set to “Blended”, and “Blend Mode” is set to “Linear (General) / Dual Quaternion (General)”, the skinning type will be FbxSkin::eBlend
    • If the “Blend Weights” map has been added, the weights defined in the map will be written to file
  • Improved support for layered images in FBX Exporter
    • Now ensures temp files have been created prior to export
    • Added error logging in the event of a failure
    • Use of the “Embed Textures” or “Collect Textures” options are recommended due to the temporary nature of the generated files
  • The “Convert Figure to Weight Mapping…” action (DzConvertFigureAction) can now be triggered from script with a settings Object (const QVariantMap& if calling from C++), via DzAction::triggerWithSettings(), to control its operation
    • If a RunSilent Boolean property is true, the “Convert Figure to Weight Mapping” dialog is not displayed - the “TriAx Weight Mapping” option is the default choice
    • If an additional LocalWeight Boolean property is true, or an additional GeneralWeight Boolean property is false, the “TriAx Weight Mapping” option is discretely chosen
    • If an additional LocalWeight Boolean property is false, or an additional GeneralWeight Boolean property is true, the “General Weight Mapping” option is discretely chosen
  • Refactored FBX Importer

DAZ Studio : Incremented build number to 4.20.1.62


  • Source maintenance
  • Fixed an issue with saving a Scene, where the image_library was not being created/included if a layered image was assigned to a property on a DzSimulationSettingsProvider instance (e.g., dForce hair)
    • Manifested as layered images that were assumed to be saved with the scene not being assigned when the scene was loaded again
  • Updated public API documentation; DzContentMgr

DAZ Studio : Incremented build number to 4.20.1.63


  • Source maintenance
  • Fixed an issue in the Content Library pane Save As (“+”) menu where empty submenus could be listed
  • Updated scripting API documentation; DzPresentation

DAZ Studio : Incremented build number to 4.20.1.64


  • Source maintenance
  • Added an option to include Post Load Script/Data to “Preset Save Options” dialogs for preset types that modify properties on existing scene elements (as opposed to preset types that load elements into the scene and can therefore embed element post load data)
    • Hierarchical Material(s) Preset
    • Hierarchical Pose Preset
    • Properties Preset
    • Shaping Preset
    • Pose Preset
    • Material(s) Preset
    • Shader Preset
    • Render Settings Preset
    • Simulation Settings Preset
    • Layered Image(s) Preset
  • Made tweaks to Post Load script/data options in the Character Preset Save Options dialog
    • Consistency with the additions above
  • Added support for a PostLoadEnable bool value, a PostLoadScriptPath string value, and a PostLoadScriptSettings settings value to several DzAssetFileOutFilter subclass settings APIs; DzCharacterAssetFilter, DzHierarchicalMaterialAssetFilter, DzHierarchicalPoseAssetFilter, DzPropertiesAssetFilter, DzShapingAssetFilter, DzPoseAssetFilter, DzMaterialAssetFilter, DzShaderAssetFilter, DzRenderSettingsAssetFilter, DzSimulationSettingsAssetFilter, DzLayerAssetFilter

DAZ Studio : Incremented build number to 4.20.1.65


  • Source maintenance
  • Extended DzSettings public API; added fromMap()
  • Extended DzSettings SDK API; added fromHash()
  • Updated DzSettings public API documentation
  • Updated SDK version to 4.20.1.66; SDK min is 4.5.0.100
  • Updated String scripting API documentation

DAZ Studio : Incremented build number to 4.20.1.66


  • Source maintenance
  • Fixed an issue with the application of Layered Image(s) presets that caused the names of layered images to grow (append) with each application
    • Now the base name of the image, followed by an underscore (_), followed by a digest of layer information represented as a GUID is used

DAZ Studio : Incremented build number to 4.20.1.67


  • Source maintenance
  • Extended public API; added DzPathValidator; added support for drive letter, max component length and max length
  • Updated SDK API documentation; DzPathValidator, DzSubPathValidator, DzFileNameValidator, DzNodeNameValidator, DzNodeLabelValidator
  • Updated SDK version to 4.20.1.68; SDK min is 4.5.0.100
  • Improved validation logic; DzSubPathValidator, DzFileNameValidator
  • Extended scripting support for validators; DzLineEdit, DzComboEdit
  • Updated scripting API documentation; DzLineEdit, DzComboEdit
  • Added support for Layers, and Layers_<image_name> settings values to the Layered Image(s) Preset (DzLayerAssetFilter) settings APIs
    • Setting a bool value where the key is the label of a layer in a layered image, the value represents whether or not to include that layer when writing to file
    • The Layers settings value serves as a global list for all layered images being saved to the preset
    • Any Layers_<image_name> settings values serve as an override for a discrete layered image being saved to the preset
    • The base layer of a given layered image is always included unless a bool value named _NO_BASE_ defines otherwise
    • If only one layer is included by configuration (considered illegal due to the nature of how the preset type is applied), all layers are saved to the preset
    • If the Layers, and/or Layers_<image_name> settings values are not defined, all layers are saved to the preset
  • Fixed an issue in “Layered Image Editor” that caused the file selection dialog to not initialize to the path of the currently assigned resource
  • Triggering the “Convert Figure to Weight Mapping…” action (DzConvertFigureAction) with settings can now also be used when the RunSilent setting is false or omitted
  • Added an “Update Vertex Positions (from current shape)” option to the “Update Base Geometry…” action (DzUpdateGeometryAction)
    • Requires the cached mesh of the object to have the same vertex count as the current base mesh - e.g., base resolution, no grafting, etc
  • The “Update Base Geometry…” action (DzUpdateGeometryAction) can now be triggered from script with a settings Object (const QVariantMap& if calling from C++), via DzAction::triggerWithSettings(), to control its operation
    • If a RunSilent property is true the “Update Base Geometry” dialog is not displayed - the “Update Vertex Positions (from current shape)” option is the default choice
    • If an additional UpdateVertexPositions Boolean property is true, the “Update Vertex Positions (from current shape)” option is discretely chosen
      • If an additional Filename String property is not empty (provides the full path of a file to import), the “Update Vertex Positions (from file)” option is discretely chosen
    • If an additional UpdateFullGeometry Boolean property is true and an additional Filename String property is not empty (provides the full path of a file to import), the “Update Full Geometry (from file)” option is discretely chosen
    • An additional Importer Object property can be used to provide importer options

DAZ Studio : Incremented build number to 4.20.1.68


  • Source maintenance
  • Update to dForce 1.6.1.2
    • Uses 4.20.1.68 SDK

DAZ Studio : Incremented build number to 4.20.1.69


  • Refactored the “Element Data…” dialog
    • Changed titles/labels/widgets/layout/etc to facilitate extraction of a more generalized “Custom Data Item” dialog that supports display/management/editing of “element data” and “scene data” items
    • Added columns
      • “Editable” indicates whether or not a given data item can be edited
      • “Persistent” indicates whether or not a given data item will be saved with the owning object
    • Added tooltips for each column
      • “Name” shows the full, non-elided, name of the data item
      • “File Path” shows the full, non-elided, file path associated with the data item (if it has one)
      • “Settings” shows whether or not the data item has the settings option enabled
      • “Editable” shows whether or not the data item can be edited
      • “Persistent” shows whether or not the data item persists (will be saved when the owning object is saved)
    • Added a context menu
      • Actions listed in the menu consider where the click occurred and if/which items were selected
  • Modified the dialog displayed by the “Element Data…” action (DzHPNodeElementDataEditorAction)
    • Accessible via:
      • Edit > Object > Element Data…
      • Edit > Figure > Element Data…
      • Scene pane option menu > Edit > Element Data…
    • Now displays, and provides access to, all “custom data items” associated with an element rather than just a couple of specific subtypes
    • Provides the ability to manage (remove) all DzElementData derived types
    • Provides the ability to create/view/edit DzSimpleElementData (and derived), or DzElementPostLoadFileData (and derived), instances
  • Added a “Scene Data…” action (DzHPSceneDataEditorAction)
    • Accessible via:
      • Edit > Scene > Scene Data…
      • Scene pane option menu > Edit > Scene Data…
    • Displays, and provides access to, the “custom data items” associated with the scene
    • Provides the ability to manage (remove) all DzSceneData derived types
    • Provides the ability to create/view/edit DzSimpleSceneData (and derived) instances
  • Updated default menus
    • Recommend clicking the Window > Workspace > Update and Merge Menus action

DAZ Studio : Incremented build number to 4.20.1.70


  • Source maintenance
  • Fixed inconsistencies referring to “Map Transfer” as “Texture Converter”; inline help, file dialog titles, etc

DAZ Studio : Incremented build number to 4.20.1.71


  • Source maintenance
  • Fixed an issue that allowed “Texture Atlas” to be launched without a node in the scene being selected
    • The tool requires a context to operate within - (primary) node selection provides the requisite context
  • Fixed #DS-1094, #DS-1301/#CS-204732, #CS-208456, #CS-223058, #CS-224914, #CS-233322, #CS-240447, #CS-279648, #CS-279879, #CS-291798 - An issue in “Texture Atlas” that prevented it from working correctly on objects with UV coordinates outside of the [0,1] range (e.g., Genesis 3, Genesis 8, UDIM, etc)
    • Manifested in the (lack of) drawing of UV coordinates outside the [0,1] range
    • Manifested in the generation of atlas images for UV coordinates outside the [0,1] range
  • Made various quality of life improvements to “Texture Atlas”
    • The main dialog now derives from DzBasicDialog
      • Adds the standard “What's This?” button to facilitate the addition of inline help
      • Size and position are now recorded/restored between uses/sessions
    • Dialog/Sub-dialog titles now provide proper identification and indicate context
    • Moved the “Auto Arrange” button below the composite image list
    • The “Auto Arrange” button is now decorated as “special interest” to highlight importance in the workflow
      • “Auto Arrange” must be clicked to enable “Preview…” or “Accept” buttons
      • “Auto Arrange” is not automatically invoked to prevent unnecessary delay of initial display where configuring of weights and/or multiple composite images is desired
    • Added filename validation to naming of composite images
      • Slow double click of composite image names enters renaming mode
      • Pressing [Enter/Return] or losing focus while in renaming mode invokes validation of the entered value
    • Added tooltips to the composite image list to help with long/elided source file names
    • Added tooltips to the items in the composite image/UV view
    • Adjusted composite image list default column widths
    • Adjusted the default list/view divider position to provide more space to the image/UV view by default
    • Fixed #DS-1512/#CS-248052 - Typographical errors; Altas vs Atlas, texutre vs texture

DAZ Studio : Incremented build number to 4.20.1.72


  • Source maintenance
  • Extended DzScene public API;
  • Updated SDK API documentation; DzScene
  • Updated SDK version to 4.20.1.73; SDK min is 4.5.0.100
  • Changed the label of the “Element Data…” action (DzHPNodeElementDataEditorAction) to “Node Data…” to reflect actual scope - and in preparation for additional “element data” actions
  • “Node Data…” and “Scene Data…” action dialog validation now offers to fix detected issues
  • Added a “Surface Data…” action (DzMaterialElementDataEditorAction)
    • Accessible via:
      • Edit > Object > Surfaces > Surface Data…
      • Edit > Figure > Surfaces > Surface Data…
      • Surfaces pane option menu > Edit > Surface Data…
    • Displays, and provides access to, all “custom data items” associated with a surface (material)
    • Provides the ability to manage (remove) all DzElementData derived types
    • Provides the ability to create/view/edit DzSimpleElementData (and derived), or DzElementPostLoadFileData (and derived), instances
  • Added an “Element Data…” action (DzElementDataEditorAction) that can be triggered from script with a settings Object (const QVariantMap& if calling from C++), via DzAction::triggerWithSettings(), to control its operation
    • If an ElementId Number property provides the value of the DzElement::elementID of an element in the scene AND an ElementType String property provides the base class name of the element (i.e., DzNode, DzObject, DzShape, DzModifier, DzMaterial), these value will be used (via DzScene::find*ByElementID()) to provide context to the editor
      • Failure to provide either property, or valid values respectively, will result in a message and the editor is not displayed
    • If an additional Title String property is not empty, the title of the resultant dialog will incorporate the value, otherwise DzElement::getTypeLabel() and DzElement::getLabel() will be used to construct the title
  • Changed the label of the “Edit Surface Selection Set(s)…” action (DzEditMaterialSelectionSetsAction) to “Surface Selection Sets…”
    • Now accessible via:
      • Edit > Object > Surfaces > Surface Selection Sets…
      • Edit > Figure > Surfaces > Surface Selection Sets…
      • Surfaces pane option menu > Edit > Surface Selection Sets…
  • Updated the “Surface Selection Set” dialog, and “New Surface Selection Set” sub-dialog
  • Updated default menus
    • Recommend clicking the Window > Workspace > Update and Merge Menus action

DAZ Studio : Incremented build number to 4.20.1.73


  • Source maintenance
  • Modified DzLayeredTexture public API; deprecated refeshLayeredTexture()
  • Extended DzLayeredTexture public API; added refreshLayeredTexture()
  • Extended DzImageMgr public API; added saveImage() override
  • Updated public API documentation; DzLayeredTexture, DzImageMgr, DzImageExporter
  • Updated SDK version to 4.20.1.74; SDK min is 4.5.0.100
  • Fixed an initialization issue in DzLayeredTexture
    • Now discretely filled as transparent
  • Fixed a DzTextureComponent conversion/initialization format mismatch; ARGB32 vs RGB32
  • DzTextureComponent now uses QImage instead of discrete pixel processing when inverting an image
  • DzTextureComponent now uses QImage instead of discrete pixel processing when rotating an image
  • Added support for specifying a “Quality” option to the PNG exporter settings API
    • The value must be in the [-1,100] range
    • -1 (the default) uses the default settings
    • 0 results in smaller, compressed, files
    • 100 results in larger, uncompressed, files

DAZ Studio : Incremented build number to 4.20.1.74


  • Source maintenance
  • Extended DzImageMgr public API; added getLayeredTextureSaveQuality(), setLayeredTextureSaveQuality()
  • Updated public API documentation; DzImageMgr
  • Updated SDK version to 4.20.1.75; SDK min is 4.5.0.100
  • Fixed a regression in the PNG exporter that caused saving to fail if no options are provided
  • Fixed an issue with layered textures where the enabled state of a texture component was not being copied
    • Manifested in “Layered Image Editor” not accurately representing the current enabled state of a layer/mask, and ultimately potentially changing the layered image when/if the editor was accepted
    • Manifested when/if DzTextureComponent::copyFrom() was used
  • Added a “Layered Textures” preference to allow a user to choose between “Compression” vs “Speed/Size” of “baked” layered images to Edit > Preferences… (F2) > Interface > Miscellaneous
    • Range is [-1,100]
    • Full “Compression” uses the default (-1)

DAZ Studio : Incremented build number to 4.20.1.75


  • Source maintenance
  • Fixed an issue with the standard color widget, when configured to display/modify float values, where holding the [Shift] modifier to invoke screen sampling would not linearize the sampled color
    • Manifested as the resulting color appearing lighter than the color of the pixel sampled (gamma corrected)
  • Updated public API documentation; DzColorWgt

DAZ Studio : Incremented build number to 4.20.1.76


  • Source maintenance
  • Made adjustments to the labeling/layout of the “Check for Updates” preference
  • Added support for a “Once per Session” option to the “Check for Updates” interval
  • Extended DzApp public API; added getDefaultTempPath()
  • Updated public API documentation; DzApp
  • Updated SDK version to 4.20.1.77; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.20.1.77


  • Source maintenance
  • The “Stop CMS” dialog has been refactored to support inline help and recording/restoring position/size

DAZ Studio : Incremented build number to 4.20.1.78

Public Beta (4.20.1.88)

  • Source maintenance
  • Fixed an issue with sub-widget name propagation in DzComboEdit
    • Affects ability to provide discrete inline help
  • Made adjustments to the Preferences dialog
    • Replaced the line-edit/browse button/default button combination for General > Temporary Files with a browse-edit
      • Option menu now contains the default value
    • Added a “Clear…” button to General > Temporary Files
    • The General > Temporary Files > “Log Size” combo-edit now validates/filters input to numerical values
      • Represented as bytes
      • Allows use of a trailing 'k', 'm' or 'g' to indicate kilobytes, megabytes, or gigabytes respectively
    • Added an “Apply…” button for Log Size
    • Replaced the line-edit/browse button/default button combination for General > DSON Cache Files with a browse-edit
      • Option menu now contains the default value
    • Replaced the Startup > On Launch > Load File combobox with a browse-edit
      • Allows selection/copying the assigned value
      • Temporarily captures browse paths to the option menu
    • Replaced the Scene > On New > Load File combobox with a browse-edit
      • Allows selection/copying the assigned value
      • Temporarily captures browse paths to the option menu
    • Replaced the CMS Settings > PostgreSQL > Cluster combobox with a browse-edit
      • Allows selection/copying the assigned value
      • Temporarily captures browse paths to the option menu
    • Added a “Stop…/Start…” button to CMS Settings > PostgreSQL > Cluster
    • Added a “Default” button to CMS Settings > PostgreSQL > Port

DAZ Studio : Incremented build number to 4.20.1.79


  • Source maintenance
  • Extended DzTextureLayer public API; added blendModeAsLabel()
  • Updated public API documentation; DzTextureLayer
  • Updated SDK version to 4.20.1.80; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.20.1.80


  • Source maintenance
  • Modified DzShaderBrick public API; deprecated shaderLanuageListChanged() signal
  • Extended DzShaderBrick public API; added shaderLanguageListChanged() signal
  • Updated public API documentation; DzShaderBrick, DzMDLModule, DzMDLDefinition, DzBrickParam, DzPropertyParam
  • Updated SDK version to 4.20.1.81; SDK min is 4.5.0.100
  • Made adjustments to “Layered Image Editor”
    • Cleaned up image layout/labeling
    • Fixed lack of widget object names
      • Affects ability to provide inline help
    • Removed non-functional/unused (hidden) options

DAZ Studio : Incremented build number to 4.20.1.81


  • Source maintenance
  • Made adjustments to “Layered Image Editor”
    • Fixed issues with copy/paste of layer settings
      • Pasting to an image layer would not include opacity, fill color, (color) inversion, rotation, flip horizontal/vertical, position or scale
      • Pasting to a color layer would not include opacity, position or scale
      • Pasting to a mask layer would not include opacity, fill color, (color) inversion, rotation, flip horizontal/vertical, position or scale
    • Fixed inoperable Zoom feedback
    • Moved Zoom buttons to dialog button bar

DAZ Studio : Incremented build number to 4.20.1.82


  • Source maintenance
  • Made quality of life improvements to “Layered Image Editor”
    • Moved the layer create/remove and copy/paste buttons to optimize use of space and reduce distance between related actions
    • The copy/paste layer settings button text has been replaced with familiar copy/paste icons
    • The image browse button has been replaced with a browse-edit
      • Displays the full path of the current resource
      • Allows selection/copying the assigned path
      • Temporarily captures browsed paths to the option menu
      • Allows selection/copying of the current value
    • Layer opacity, position, and scale sliders now provide full width manual text editing
    • Layer opacity, position, and scale sliders are now restorable (to their respective initialized values) via [Alt] + click
    • Layer color is now restorable (to initialized value) via [Alt] + click
    • Added support for copying/pasting the enabled (checked) state of a layer
    • Pasting layer settings now includes all applicable settings without displaying options by default
      • Hold the [Ctrl/Cmd] modifier when clicking the button to display options
    • [Space] + click + drag in the preview area now performs a pan operation when zoomed in enough to display scrollbars
      • Click + drag in the preview area still moves the position of the layer

DAZ Studio : Incremented build number to 4.20.1.83


  • Source maintenance
  • Extended DzTextureLayer public API; added BlendModeSourceOver, BlendModeDestinationOver, BlendModeClear, BlendModeSource, BlendModeDestination, BlendModeSourceIn, BlendModeDestinationIn, BlendModeSourceOut, BlendModeDestinationOut, BlendModeSourceAtop, BlendModeDestinationAtop, BlendModeXor, BlendModePlus, BlendModeMultiply, BlendModeScreen, BlendModeOverlay, BlendModeDarken, BlendModeLighten, BlendModeColorDodge, BlendModeColorBurn, BlendModeHardLight, BlendModeSoftLight, BlendModeDifference, BlendModeExclusion enumerated values
  • Updated scripting API documentation; DzTextureLayer
  • Updated SDK version to 4.20.1.84; SDK min is 4.5.0.100
  • Implemented asset IO support for new DzTextureLayer blend modes
  • Made quality of life improvements to “Layered Image Editor”
    • A checker pattern is now drawn in the background of the “Preview” area to indicate transparency
    • Added support for the new blend modes
      • First section preserves existing/legacy modes
        • Alpha Channel Blend
        • Additive Blend
        • Subtractive Blend
        • Multiplicative Blend
      • Second section adds alpha targeted composition modes
        • Source Over
        • Destination Over
        • Clear
        • Source
        • Destination
        • Source In
        • Destination In
        • Source Out
        • Destination Out
        • Source Atop
        • Destination Atop
        • Xor
      • Third section adds color/alpha composition modes
        • Plus
        • Multiply
        • Screen
        • Overlay
        • Darken
        • Lighten
        • Color Dodge
        • Color Burn
        • Hard Light
        • Soft Light
        • Difference
        • Exclusion
    • Fixed an issue that caused the blend mode option to not be updated when a mask was selected
    • Updated the “Paste Layer Settings” sub-dialog layout to make more efficient use of space
    • Added object names to widgets in “Paste Layer Settings” sub-dialog
      • Facilitates inline help and interactive lessons
    • The Image > Gamma slider now provides full width manual text editing
    • The Image > Gamma slider is now restorable (to initialized value) via [Alt] + click
    • Extended inline help (tooltips/what's this)
    • Image > Width and Image > Height line-edits have been replaced with spin-boxes
    • Clicking the Zoom level indicator will now restore 100%

DAZ Studio : Incremented build number to 4.20.1.84


  • Source maintenance
  • DSON format files are now written with a 0.6.1.0 file_version
    • New operation values for image_map objects:
      • blend_clear
      • blend_color_burn
      • blend_color_dodge
      • blend_darken
      • blend_destination
      • blend_destination_atop
      • blend_destination_in
      • blend_destination_out
      • blend_destination_over
      • blend_difference
      • blend_exclusion
      • blend_hard_light
      • blend_lighten
      • blend_multiply
      • blend_overlay
      • blend_plus
      • blend_screen
      • blend_soft_light
      • blend_source
      • blend_source_atop
      • blend_source_in
      • blend_source_out
      • blend_source_over
      • blend_xor
  • Clicking the “Zoom” level indicator in “Layered Image Editor” will now present a menu with options for “25%”, “50%”, “100%”, “200%” and “Custom…”
    • Clicking a pre-defined value will set the zoom factor to that value
    • Clicking “Custom…” will present a dialog that allows a custom value (in the [10,600] range) to be manually defined

DAZ Studio : Incremented build number to 4.20.1.85


  • Source maintenance
  • Extended DzLayeredTexture public API; added invalidateTempFile()
  • Updated public API documentation; DzLayeredTexture
  • Updated SDK version to 4.20.1.86; SDK min is 4.5.0.100
  • Temporary images generated for layered images are now reused where possible
    • Improves loading speed of layered image assets
    • A given temporary image is generated once during initial load and reused for viewport drawing, property icon, property preview and rendering instead of being regenerated each time an image request is made

DAZ Studio : Incremented build number to 4.20.1.86


  • Source maintenance
  • The default blend mode for a DzTextureComponent is now BlendModeSourceOver instead of BlendAlpha
    • BlendModeSourceOver is more performant
    • BlendModeSourceOver produces a result that is more aligned with expectations
  • Fixed an issue where saving a layered image would not record the enabled state of a given layer
    • Recorded to a new active value on DSON image_map objects
  • Fixed an issue where loading a layered image would not restore the enabled state of a given layer
    • Read from a new active value on DSON image_map objects
  • Fixed an issue in “Layered Image Editor” where the blend mode of a layer mask was being displayed as that of the last selected layer instead of the host layer
  • Fixed a crash in “Layered Image Editor” when clicking the resource browse button if no layer was selected
    • Could manifest when creating a new/empty layered image (e.g., a property with no image assigned) or when all layers of a layered image are removed
  • Widgets in “Layered Image Editor” that operate in the context of the selected layer now enable/disable based on layer selection
  • Adding a layer to a new/empty layered texture in “Layered Image Editor” now automatically selects the new layer in all cases
  • Launching “Layered Image Editor” without a texture now automatically creates a new layer
  • Creating a new layer in “Layered Image Editor” now defaults to white
    • Creating a new mask defaults to black
  • Launching “Layered Image Editor” now automatically performs “Zoom to Fit”
  • Fixed an issue in “Layered Image Editor” when creating a new layer for an empty image that could result in updates not occurring when expected

DAZ Studio : Incremented build number to 4.20.1.87


  • Source maintenance
  • Added “Layered Image Editor” inline help file to footprint
  • Extended DzLayeredTexture public API; added findLayerByLabel(), getUniqueLabel(), getLabelNumber(), stripLabelNumber()
  • Updated public API documentation; DzLayeredTexture
  • Updated SDK version to 4.20.1.88; SDK min is 4.5.0.100
  • Made quality of life improvements to “Layered Image Editor”
    • “Add Layer” has been split into discrete “Add Color Layer” and “Add Image Layer…” actions
      • “Add Image Layer…” immediately prompts for a file path
      • “Add Image Layer…” can be canceled
      • “Add Image Layer…” sets the label of the layer to the basename of the selected file
      • “Add Image Layer…” ensures the label is unique
    • “Add Mask” has been split into discrete “Add Color Mask” and “Add Image Mask…” actions
      • “Add Image Mask…” immediately prompts for a file path
      • “Add Image Mask…” can be canceled
    • Renaming a layer now ensures the label is not empty
      • An empty label is reverted to the previous value
    • Renaming a layer now ensures the label is unique
    • The context menu for the “Layers” list is now populated with actions for adding a layer, adding a mask, removing a layer or mask, copying settings, and pasting settings
    • The context menu for the “Preview” area is now populated with actions for selecting each layer in the texture

DAZ Studio : Incremented build number to 4.20.1.88

Public Beta (4.20.1.91)

  • Source maintenance
  • Fixed an issue where the window title of the “Load Options” dialog for a Shader Preset incorrectly indicated that it was for a Materials Preset
    • Hold the [Ctrl/Cmd] modifier when applying a Shader Preset to display “Load Options”
  • Fixed an issue where the window title of the “Load Options” dialog for a Layered Image Preset incorrectly indicated that it was for a Material Preset
    • Hold the [Ctrl/Cmd] modifier when applying a Layered Image Preset to display “Load Options”

DAZ Studio : Incremented build number to 4.20.1.89


  • Source maintenance

DAZ Studio : Incremented build number to 4.20.1.90


  • Source maintenance
  • Fixed an issue in “Layered Image Editor” that prevented use of the enter/return key to finish/finalize manual editing of slider values without accepting the dialog
  • The “X Position” and “Y Position” sliders in the “Layered Image Editor” are now limitless
    • Fixes an issue whereby a layer with an assigned image that is larger than the final image dimensions could not be offset by more than the final image dimensions in the corresponding direction
      • The layer could be dragged, but the slider values could not represent the offset value, and so selecting a different layer and then re-selecting the dragged layer would change the offset of the dragged layer to be within the +- dimensions of the final image
  • Layer/Mask selection within “Layered Image Editor” now enables/disables layer controls to reflect the ability of a given layer/mask type to be modified
    • Color layers and color masks cannot be rotated, flipped, or inverted, but image layers and image masks can
    • Color masks cannot be offset or scaled, but image masks and color layers can

DAZ Studio : Incremented build number to 4.20.1.91

Public Beta (4.21.0.5)

  • Source maintenance
  • Extended Rect scripting API; added bottomLeft, bottomRight, size, topLeft, topRight properties; added contains(), moveTopLeft(), moveBottomRight(), moveTopRight(), moveBottomLeft(), moveCenter(), translate(), translate(), translated(), translated(), moveTo(), setRect(), setCoords(), adjust(), adjusted(), normalized()
  • Extended Point scripting API; added isNull(), manhattanLength()
  • Modified Size scripting API; deprecated translate()
  • Extended Size scripting API; added isNull(), isEmpty(), isValid(), transpose(), scale(), expandedTo(), boundedTo()
  • Extended Pixmap scripting API; added hasAlphaChannel(), setAlphaChannel(), cacheKey(), copy(), scaled(), scaledToHeight(), scaledToWidth()
  • Extended Image scripting API; added hasAlphaChannel(), setAlphaChannel(), allGray(), isGrayscale(), bitPlaneCount(), bytesPerLine(), cacheKey(), pixelColor(), setPixelColor(), pixelColor(), setPixelColor(), pixelIndex(), rect(), sizeInBytes(), valid(), mirrored(), scaledToHeight(), scaledToWidth(), rgbSwapped(), colorCount(), setColorCount(), createAlphaMask(), createHeuristicMask(), createMaskFromColor()
  • Modified Image scripting API; deprecated pixel(), setPixel()
  • Updated scripting API documentation; DzSystem, Array, Date, Function, Point, Rect, Size, ByteArray, Pixmap, Image

DAZ Studio : Incremented build number to 4.20.1.92


  • Increment application, plugin and SDK version for 4.21.0.x
  • Extended Rect scripting API; added containsPoint(), isValid()
  • Extended Pixmap scripting API; added mask(), setMask()
  • Updated scripting API documentation; Rect, Pixmap, Image, DzTransferUtility
  • Update to dForce 1.7.0.1
    • Uses 4.21.0.x SDK
    • Updates plugin revision to reflect SDK revision
    • Maintains Publishing Partner Features functionality

DAZ Studio : Incremented build number to 4.21.0.1


  • Source maintenance
  • Merged to Trunk (4.21.0.x)
  • Build system tweaks

DAZ Studio : Incremented build number to 4.21.0.2


  • Fixed a footprint merge issue - missing file
    • ./shaders/iray/daz_3d/fiber_chiang_hair_fur.mdl

DAZ Studio : Incremented build number to 4.21.0.3


  • Source maintenance
  • Fixed #CS-421314 - A regression where the last settings used for a geometry importer would not be restored when using the “Update Base Geometry” action UI
    • Caused in 4.20.1.68 when exposing control of the action to DzAction::triggerWithSettings() and allowing an “Importer” option to be specified - “can” became “must”, an unintended change to the prior behavior
  • Updated public API documentation; DzContentMgr
  • Updated scripting API documentation; DzMorphDeltas

DAZ Studio : Incremented build number to 4.21.0.4


  • Build system tweaks

DAZ Studio : Incremented build number to 4.21.0.5



Release to Production

  • 4.21.0.5 - 2022-10-05