User Tools

Site Tools


4.12.1.118 Change Log

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

  • Source maintenance
  • Incremented application, plugin and SDK version to 4.12.1.x
  • Updated Splash/About images
  • Fixed a crash when a dForce hair item is not valid
  • Update to dForce 1.2.0.17

DAZ Studio : Incremented build number to 4.12.1.1


  • Source maintenance
  • Update to dForce 1.2.1.1
  • Fixed standalone installer version

DAZ Studio : Incremented build number to 4.12.1.2


  • Source maintenance
  • Fixed an issue where making changes in the “Customize Interface Style” dialog (i.e., Window > Style > Customize Style…) would pollute the undo stack
    • Changes made in this dialog should not be added to the undo stack
    • [ALT] + click can be used to restore an individual property, or the “Defaults” button can be clicked to restore all properties
  • Fixed an issue where some DzBasicDialog instances would not select the preferred default button when shown
  • Fixed an issue with Face Transfer pane option menu action not properly enabling/disabling

DAZ Studio : Incremented build number to 4.12.1.3


  • Source maintenance
  • Initial implement of “Frame Keys” in the Timeline pane Key Graph
  • Extended DzHelpMgr public API; added saveHelpItemsFile()
  • Updated SDK version to 4.12.1.4; SDK min is 4.5.0.100.
  • Fixed an issue in the Inline Help Save Option dialog that prevented saving all help groups; internal
  • Save Inline Help… action now saves a help file for each group independently by default; internal
  • Added a “Single File” option to the Inline Help Save Option dialog; internal
  • Refactored the Help > Troubleshooting > About Your Video Card… action (Current Hardware Features) dialog
  • Moved core inline help to subfolder within docs folder

DAZ Studio : Incremented build number to 4.12.1.4


  • Source maintenance
  • Extended DzTimePane scripting API
  • The navigation controls on the right side of the Key Graph view in the Timeline pane are now consistent with other (docked) view navigation controls
    • icons, sizes, states, cursors, etc
  • Added “Translation (T)”, “Rotation (R)”, “Scale (S)”, “Other (O)”, “Alias (A)” and “Hidden (H)” Timeline pane property type actions
  • Added a “Property Types” submenu to the Timeline pane options menu
  • Added a “Property Types” submenu to the Timeline pane Dopesheet context menu
  • Added a “Frame Keys” action
    • Accessible from the Timeline pane Key Graph context menu
    • Adjusts the pan/zoom of the Key Graph to fit the keys of the properties whose animation curves are being displayed
  • Updated default menus; recommend clicking Window > Workspace > Update and Merge Menus action
  • Fixed an issue in the Timeline pane where the checked state of the “Hidden (H)” property type would not persist between sessions
  • Fixed an issue where the checked state of the “Properties” key creation scope option in the Timeline pane would not persist between sessions
  • Fixed an issue in the Timeline pane with the default key creation scope option; Node
  • Moved the “Select Item Keys (Filtered)” and “Select All Item Keys (Filtered)” action into a “Select” submenu of the Timeline pane Dopesheet context menu
  • Moved the “Deselect Item Keys (Filtered)” and “Deselect All Item Keys (Filtered)” action into a “Deselect” submenu of the Timeline pane Dopesheet context menu
  • Modified the mouse wheel event handler for the Timeline pane Key Graph
    • No modifier zooms in/out
    • Ctrl/Cmd modifier alone reduces the speed/scale of zoom
    • Alt modifier alone pans up/down
    • Alt + Ctrl/Cmd modifier together reduce the speed/scale of pan
  • Added/Updated inline help descriptions for Timeline pane widgets

DAZ Studio : Incremented build number to 4.12.1.5


  • Source maintenance
  • Added cursor feedback to the Timeline pane play range slider
    • play range start marker, play range end marker, slider, etc
  • Added cursor feedback to the Timeline pane Key Graph
    • keys, playhead, etc
  • Added cursor feedback to the Timeline pane Dopesheet
    • name column, keys, etc
  • Drawing of marquee (“rubberband”) selection in the Timeline pane Dopesheet and Key Graph views are now consistent with other views in the application

DAZ Studio : Incremented build number to 4.12.1.6


  • Source maintenance
  • Added clarifying text to Face Transfer pane option menu actions
  • Updated Avatar SDK
    • Removes unneeded generation of obj, mtl, and json files
  • Build system tweaks
    • Updated build scripts to include Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019
    • Addresses reports of Face Transfer plugin failing to load for some users - due to missing *140.dll dependencies

DAZ Studio : Incremented build number to 4.12.1.7


  • Source maintenance
  • Removed the “OptiX Prime Acceleration” option from the Advanced page of the Render Settings pane when NVIDIA Iray is set as the active renderer
    • The option is no longer supported by the integrated version of Iray RTX 2019
    • Although it is not explicitly stated in the release notes, the “iray_optix_prime” option is no longer listed/described in section “4 Iray Photoreal”, subsection “4.10 Rendering Options”, of the NVIDIA Iray - Programmer's Manual and setting the option results in a warning message being logged
  • Update to NVIDIA Iray RTX 2019.1.4 (317500.5529)
  • Added support for using the [Alt] keyboard modifier to deselect keys in the Timeline pane Dopesheet
    • Supports single deselect and multi-deselect
    • Support for using the [Ctrl/Cmd] keyboard modifier to add to selection also exists
  • Clicks in the keys column of the Dopesheet in the Timeline pane no longer changes item selection
    • Allows the name column to be used for manipulating item selection (for action context and populating key graph) and the keys column to be used for manipulating keys
  • Added support for using the [Alt] keyboard modifier to deselect keys in the Timeline pane Key Graph
    • Supports single deselect and multi-deselect
    • Support for using the [Ctrl/Cmd] keyboard modifier to add to selection also exists
  • Added support for using the [Shift] keyboard modifier to constrain key movement in the Timeline pane Key Graph
    • When vertical delta is greater than horizontal delta, only value will be changed
    • When horizontal delta is greater than vertical delta, only time will be changed
  • Support for holding the [Ctrl] keyboard modifier while dragging a selection of keys in the Timeline pane Key Graph to relax a frame snapping constraint also exists

DAZ Studio : Incremented build number to 4.12.1.8


  • Source maintenance
  • Build system tweaks
    • Updated standalone installer template to include/run Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017, 2019
    • Addresses reports of Face Transfer plugin failing to load for some users - due to missing *140.dll dependencies

DAZ Studio : Incremented build number to 4.12.1.9


  • Source maintenance
  • Modified execution configuration for Microsoft Visual C++ Redistributable sub-installers

DAZ Studio : Incremented build number to 4.12.1.10


  • Source maintenance
  • Added support for using the [Ctrl] keyboard modifier while dragging a selection of keys in the Timeline pane Dopesheet to relax frame snapping constraints
  • Key frame snapping in the Timeline pane Dopesheet is now based on the context key (the key under the cursor when the press occurred)
    • Maintains sub-frame relative time differences between selected keys
  • Fixed an issue in the Timeline pane Dopesheet where selecting a key in the Key Graph and then moving it in the Dopesheet would sometimes (depending if and what key were selected in the Dopesheet in prior operations) prevent moving the selected keys earlier in time
  • Click and drag on an unselected key in the Timeline pane Dopesheet now causes the key to become selected and begin moving in a single operation
    • This is now consistent with the Key Graph

DAZ Studio : Incremented build number to 4.12.1.11


  • Source maintenance
  • Fixed a regression in the Timeline pane Dopesheet and the ability to deselect keys (using the [Alt] modifier) that resulted from a recent change to allow single-click select+move operations
  • Made improvements to the efficiency of key selection/deselection in the Timeline pane Dopesheet
  • Made styling adjustments to the Timeline pane
    • Adjusted the left offset of the keys column to use the styled size of the playhead
  • Added cursor feedback to the Timeline pane Dopesheet header; keys column
  • Fixed painting issues in the Timeline pane Dopesheet header
    • Clicking at a point to the right of the playhead would not cause the elapsed track (left of the playhead) to update until a mouse move event occurred
  • Fixed issues with cursor feedback for when a column in the Timeline pane Dopesheet could be resized
    • Cursor feedback would incorrectly suggest that a user could resize the name/keys columns when the cursor was placed on the left side of the division between the column headers
    • Cursor feedback would incorrectly suggest that a user could resize the the name column from its left side
    • Now when the resize cursor is displayed, the user can click+drag and the columns will resize as expected

DAZ Studio : Incremented build number to 4.12.1.12


  • Source maintenance
  • Fixed an issue in the Timeline pane where changing the current time via clicking within the Dopesheet keys column header, or double-clicking within the keys column, or dragging the playhead in the Key Graph, would not cause the Dopesheet keys column header to re-paint until the cursor was moved within said header

DAZ Studio : Incremented build number to 4.12.1.13


  • Source maintenance
  • Extended the Interactive Lesson support script; added setProductMembers(), smartContentPaneProductLocate()
  • Fixed an issue that could cause interactive lessons that interact with the Surfaces, Lights, and/or Cameras panes to not be able to locate the panes
  • Extended DzApp SDK API; added isInstanceOfReleaseCycleAlreadyRunning()
  • Updated SDK version to 4.12.1.14; SDK min is 4.5.0.100
  • Only a single instance of the application, per release channel, is now allowed to run at a time
    • Attempts to load registered file types via double-click or “open with” commands will now forward to a running instance (if any) instead of allowing concurrent instances that compete for resources and cause conflicts

DAZ Studio : Incremented build number to 4.12.1.14


  • Source maintenance
  • Query args from file URLs now maintain name=value format in scriptArgs
  • Fixed an issue with the IK solver where bones/nodes that define non-uniform scale were not being accounted for
    • Manifested as “jitter” or “popping” during IK drag where chains (to include pull nodes) that incorporated non-uniform scale were involved
  • Implemented the heuristic IK solve algorithm used for figure node hierarchies, for non-figure node hierarchies
    • Helps smooth and stabilize solves of non-figure node hierarchies
  • Split the Timeline pane “Advanced View” toggle action into 3 distinct view mode actions
    • Basic View, Intermediate View, Advanced View
    • Basic View is equivalent to Advanced View being unchecked in builds prior to 4.12
    • Intermediate View is equivalent to Advanced View being checked in builds prior to 4.12
    • Advanced View is the more full featured view introduced with 4.12
  • Updated default menus; recommend clicking Window > Workspace > Update and Merge Menus action
  • Fixed an issue in the Timeline pane key creation scope actions that could result in the active action becoming unchecked if it was already checked when clicked
  • Refactored the Key Creation Scope combobox into a menu button comprised of key scope actions
  • Extended/Modified the DzTimePane scripting API
  • Fixed a minor memory leak in the Timeline pane; menus

DAZ Studio : Incremented build number to 4.12.1.15


  • Source maintenance
  • Removed semi-colons separating file extensions in file browser multi-extension filters
    • The presence of semi-colons within a single filter was causing macOS 10.15 (Catalina) to display files with all but the last file extension (the one NOT followed by a semi-colon) as “dimmed” (unavailable/unselectable)
  • Extended DzApp public API; added Mac_10_15 enumeration
  • Updated SDK version to 4.12.1.16; SDK min is 4.5.0.100
  • Updated public API documentation; DzApp
  • Added support for macOS 10.15 (Catalina) logging
  • Fixed #DS-1982: Some legacy figures crash on load when IK chains are present

DAZ Studio : Incremented build number to 4.12.1.16

Public Beta (4.12.1.40)

  • Source maintenance
  • Parsing of CLI args now occurs much earlier in the startup process
  • Forwarding application instances now wait to send messages to the primary instance (and subsequently exit) in the event that it is still starting
    • Addresses multiple application instances being launched in rapid succession
  • Processing of CLI args/IPC messages now utilizes the event stack
  • Updated Array scripting API documentation; the return value for pushIfNotExists() is void, not Number (or Array)

DAZ Studio : Incremented build number to 4.12.1.17


  • Source maintenance
  • Made tweaks to identification of application instances
  • Ensure file loading via CLI/IPC is processed after standard args
  • Formatting of the release cycle label on the splash screen has been modified to support additional information
  • Release cycle label colors on the splash screen now match the colors displayed for the corresponding release channel in Install Manager
  • Release cycle label on the splash screen now includes the long version string

DAZ Studio : Incremented build number to 4.12.1.18


  • Source maintenance
  • Extended DzApp public API; added instanceName(), releaseCycleInstanceString(), releaseCycleInstanceSuffix(), releaseCycleInstanceSuffixStripped()
  • Updated SDK version to 4.12.1.19; SDK min is 4.5.0.100
  • Updated public API documentation; DzApp
  • Added support for a -instanceName command-line option
    • The token/arg immediately following the option is stored as the instance name
    • An instance name can contain alpha-numeric and underscore characters (all other characters are automatically stripped)
    • Named instances use unique application settings
    • Only a single instance of a named instance, per release channel, is allowed to run at a time
      • Any number of named instances can be defined
  • Show application instance name (if any) in the title bar of the main window
  • Show long version number and bit architecture on General Release splash screen
  • Show application instance name (if any) on splash screen
  • Show application instance name (if any) on about screen
  • A file path that is passed to an application instance (be it by OS file extension associations, CLI, IPC, etc) is now either opened or merged based on its content type (e.g., a scene is “opened” by default, but a pose preset or a script is “merged” by default)
  • User interaction for file paths passed to an application instance (be it by OS file extension associations, CLI, IPC, etc) adheres to established content loading behaviors; e.g., prompt to save if loading a scene

DAZ Studio : Incremented build number to 4.12.1.19


  • Source maintenance
  • Fixed issues with default buttons on the welcome wizard dialog

DAZ Studio : Incremented build number to 4.12.1.20


  • Source maintenance
  • Share productID across all instances of a release cycle
  • Removed Qt3 dependencies from internal plugin

DAZ Studio : Incremented build number to 4.12.1.21


  • Source maintenance
  • Build system tweaks
  • Fixed a crash on launch if missing a data file

DAZ Studio : Incremented build number to 4.12.1.22


  • Source maintenance
  • Performed work toward removing Qt3 dependencies from BVH import/export plugin
  • Extended DzApp public API; added getProgramDataAppInstancePath(), getAppDataInstancePath(), instanceNameSuffix()
  • Updated SDK version to 4.12.1.23; SDK min is 4.5.0.100
  • Updated public API documentation; DzApp
  • Added support for a -copyAppSettings command-line option
    • The token/arg immediately following the option is used as the name of the release cycle (and optionally the instance) to copy application settings from
    • The token/arg must be quoted if it contains a space character
    • The token/arg must match the suffix of the application settings group name for an instance that has been launched at least once (i.e., releaseCycle[instanceName]) - return value of DzApp::releaseCycleSuffixStripped() or DzApp::releaseCycleInstanceSuffixStripped())
    • All spaces in the token/arg are automatically stripped in order to match the pattern used in the application settings group name
    • A single ~ (tilde) character is interpreted as the root instance of the General Release
    • A single . (period) character is interpreted as the root instance of the 'current' release cycle
    • A non-existent instance name or a single unsupported character effectively disables the option (as a match will not be found)
    • All pertinent application settings are copied
  • Added support for a -copySessionUI command-line option
    • The token/arg immediately following the option is used as the name of the release cycle (and optionally the instance) to copy the session UI files from
    • The token/arg must be quoted if it contains a space character (any besides the General Release will)
    • The token/arg must match the suffix of the application data folder name for an instance that has been launched at least once (i.e., release cycle [instanceName]) - return value of DzApp::releaseCycleSuffix() optionally appending DzApp::instanceNameSuffix())
    • A single ~ (tilde) character is interpreted as the root instance of the General Release
    • A single . (period) character is interpreted as the root instance of the 'current' release cycle
    • A non-existent instance name or a single unsupported character effectively disables the option (as a match will not be found)
    • All session UI files are copied
  • Launching a named instance of a given release cycle (using the -instanceName command-line option) now automatically copies the application settings for the root instance of that release cycle on first launch unless the -copyAppSettings command-line option is also specified
  • Launching a named instance of a given release cycle (using the -instanceName command-line option) now automatically copies the session UI for the root instance of that release cycle on first launch unless the -copySessionUI command-line option is also specified
  • Execution of RunOnce scripts now cascade in the sequence: instance application data, release cycle application data, release cycle resources

DAZ Studio : Incremented build number to 4.12.1.23


  • Source maintenance
  • Removed Qt3 dependencies
  • Performed work toward removing Qt3 dependencies from ExP Export

DAZ Studio : Incremented build number to 4.12.1.24


  • Source maintenance
  • Modified DzApp SDK API; renamed isInstanceOfReleaseCycleAlreadyRunning() to isInstanceAlreadyRunning()
  • Updated SDK version to 4.12.1.25; SDK min is 4.5.0.100
  • Updated public API documentation; DzApp
  • Extended the -instanceName command-line option to support gap-filling automatic incrementation
    • A token/arg containing the # (number sign) character will automatically have occurrences of the # character replaced by the 'next' available incremental integer value (e.g., if instances 1, 2, and 3 are running, instance 2 is closed and a new instance is launched, the new instance will be assigned 2 and the next would be assigned 4 - unless 1, 2 or 3 were closed before it launched)
    • Copying of root release cycle application settings and session UI files is implied by the presence of a # character
    • Use the -copyAppSettings and/or -copySessionUI command-line option respectively to override default behavior
  • Improved the efficiency of command-line option parsing
  • Removed various Qt3 dependencies
  • Performed work toward removing Qt3 dependencies from RSL Compiler

DAZ Studio : Incremented build number to 4.12.1.25


  • Source maintenance
  • Extended DzApp public API; added getLogFilename(), getCloudLogFilename(), getApplicationDataName()
  • Updated SDK version to 4.12.1.26; SDK min is 4.5.0.100
  • Updated public API documentation; DzApp
  • Release cycle and instance name (if any) are now explicitly recorded to the log
  • Fixed an issue where the Help > Troubleshooting > View Log File… action would open the log file for the primary instance of the application instead of the log file for the instance that the action was triggered from
  • Added support for a -cleanOnExit command-line option
    • A truthy/falsey token/arg immediately following the option is used to determine whether or not application settings/data is removed when the application exits
    • The token/arg value can be one of 0, off, n, no, f, false or 1, on, y, yes, t, true
    • A falsey token/arg value does not override the standard behavior of purging the application temp folder on exit
  • Updated -instanceName command-line option support for gap-filling automatic incrementation
    • Cleaning of application settings and session UI files on exit is implied by default
    • Use the -cleanOnExit command-line option to override default behavior

DAZ Studio : Incremented build number to 4.12.1.26


  • Source maintenance
  • Updated public API documentation; DzApp, DzAppSettingsMgr
  • Added support for a -cleanOnLaunch command-line option
    • A truthy/falsey token/arg immediately following the option is used to determine whether or not application settings/data is removed when the application is launched
    • The token/arg value can be one of 0, off, n, no, f, false or 1, on, y, yes, t, true
    • A falsey token/arg value does not override the standard behavior of purging the application temp folder on launch
  • Updated -instanceName command-line option support for gap-filling automatic incrementation
    • Cleaning of application settings and session UI files on launch is implied by default
    • Use the -cleanOnLaunch command-line option to override default behavior
  • Fixed a “pollution by abandonment” issue with the -copyAppSettings command-line option if the token/arg that specifies the name (of the release cycle [instanceName]) to copy from does not exist
  • Added support for a semi-colon delimited whitelist of application settings to the -copyAppSettings command-line option
    • The first item in the list is used as the name of the release cycle (and optionally the instance) to copy application settings from
    • Subsequent items in the list represent the paths of specific application settings to copy
    • Specifying specific application settings overrides copying all application settings
  • Added support for a semi-colon delimited whitelist of session UI files to the -copySessionUI command-line option
    • The first item in the list is used as the name of the release cycle (and optionally the instance) to copy the session UI files from
    • Subsequent items in the list represent the names of specific session UI files to copy
    • Specifying specific session UI files overrides copying all session UI files
  • Fixed issues with unsupported characters in the -instanceName command-line option
  • Fixed issues with unsupported characters in the -copyAppSettings command-line option
  • Fixed issues with unsupported characters in the -copySessionUI command-line option
  • Added logging of invalid values passed to the -instanceName, -copyAppSettings, -copySessionUI, -cleanOnLaunch, and -cleanOnExit command-line options
  • Performed work toward removing Qt3 dependencies from Figure Setup
  • Removed various Qt3 dependencies

DAZ Studio : Incremented build number to 4.12.1.27


  • Source maintenance
  • Performed work toward removing Qt3 dependencies from Bryce bridge
  • Performed work toward removing Qt3 dependencies from Hexagon bridge
  • Removed Qt3 dependencies from Puppeteer
  • Fixed memory leaks in Puppeteer key preview, record, mouse drag, playback, and context menus
  • Improved general performance of Puppeteer
  • Fixed an issue with the script implementation of DzBasicDialog::addLayout()
    • The layout to be added was not being removed from its parent widget before being added as a sub-layout to the DzBasicDialog layout and as a result the layout was being added below the dialog buttons layout instead of above it
  • Extended DzBasicDialog public API; added insertLayout()
  • Updated SDK version to 4.12.1.28; SDK min is 4.5.0.100
  • Updated public API documentation; DzBasicDialog

DAZ Studio : Incremented build number to 4.12.1.28


  • Source maintenance
  • Removed the “Architectural Sampler” property from Iray render settings
    • Support for this setting was removed from NVIDIA Iray as of 2017.1 beta (296300.616) according to release notes
  • Materials in Map Transfer are now prefixed with the label of their respective root node
  • Removed Qt3 dependencies from Map Transfer
  • Fixed an issue in DzComboEdit that could cause a crash, if the list of items added includes an empty string, when the popup is being built for display
  • Fixed an issue that allowed duplicate items to be added to a DzComboEdit
  • Fixed an issue that allowed an empty item to be added to a DzComboEdit
  • Extended DzComboEdit public API; modified addItem(), addItems(), insertItem(), insertItems() function signatures
  • Updated public API documentation; DzComboEdit
  • Updated SDK version to 4.12.1.29; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.12.1.29


  • Source maintenance
  • Expanded the file whitelist for copying using the -copySessionUI command-line option when launching the primary instance of a release cycle
  • Fixed a parsing issue with the -copySessionUI command-line option value

DAZ Studio : Incremented build number to 4.12.1.30


  • Source maintenance
  • Extended scripting API; added DzClipboard - write is enabled, read is disabled pending preference for user permission to access clipboard

DAZ Studio : Incremented build number to 4.12.1.31


  • Source maintenance
  • Updated scripting API docs; DzProcess
  • Fixed handling of environment settings passed to DzProcess::start() and DzProcess::launch()
  • Updated scripting API documentation; DzProcess

DAZ Studio : Incremented build number to 4.12.1.32


  • Source maintenance
  • Updated OS call to fetch memory info on Windows
    • Addresses stated potential for OS to provide inaccurate information > 4 GB
    • Produces identical results in practice

DAZ Studio : Incremented build number to 4.12.1.33


  • Source maintenance
  • Update to dForce 1.2.1.2

DAZ Studio : Incremented build number to 4.12.1.34


  • Source maintenance
  • Fixed an issue in DzContentMgr::findBaseDirectory() where the order of similarly named mapped directories could affect which base directory would be found for a given path
    • A mapped directory earlier in the list that could be considered a prefix for a mapped directory that resided later in the list would be found instead of the later mapped directory

DAZ Studio : Incremented build number to 4.12.1.35


  • Source maintenance
  • Fixed an issue in the Timeline pane where a value less than 2 in the Total (Frames) spinbox, even if “momentarily” (e.g. a user attempts to type “120” but must type “1” followed by “2” and then “0”, and so is “less than 2” even if the intent is to type “120”), would cause painting of frame markers in the Dopesheet keys column header to enter into an infinite loop
  • The minimum value for the Total (Frames) spinbox in the Timeline pane is now 1

DAZ Studio : Incremented build number to 4.12.1.36


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.37


  • Source maintenance
  • Fixed an (out of range) issue in DzFloatColor::linearizeColor() where gamma is less than or equal to 0 and alpha is also being linearized

DAZ Studio : Incremented build number to 4.12.1.38


  • Source maintenance
  • OBJ Exporter MTL filename references are now quoted if the path contains a space
    • Implements stricter adherence to standard tokenization used by the OBJ Importer parser (per spec) - allows a non-map-collected/non-map-converted OBJ Exporter export to be round-tripped with map assignments in tact
  • Fixed an issue with layout/stretching in OBJ Importer advanced options
  • OBJ Importer MTL support for filenames has been extended
    • Now handles non-quoted paths that contain spaces
  • Fixed an issue in DzMap when calculating the max of the third value in a FLOAT3_MAP map
    • This would cause DzMap::getPnt3VecMax() to return an incorrect value
  • Improved performance of resolving MTL texture map references where the same map is referenced multiple times in the file

DAZ Studio : Incremented build number to 4.12.1.39


  • Source maintenance
  • Consolidated options in the OBJ Export Options dialog
    • Radio buttons for selecting which type of grouping to write are now presented as a combobox
    • Radio buttons for selecting how to handle texture maps are now presented as a combobox
  • Adjusted layout of options in the OBJ Export Options dialog
  • Adjusted labels of options in the OBJ Export Options dialog
    • e.g., “Write Object Statements” is now labeled “Write Separate Objects”
  • The “Write Material Library” option in the OBJ Export Options dialog is now a checkable group box
  • Added an option to the “Write Material Library” group box in the OBJ Export Options dialog that controls whether or not to “Quote Paths Containing Spaces”
  • Added access to the “Quote Paths Containing Spaces” option to the script accessible API as “QuoteMapPathsWithSpaces”
  • Added a “Filter Objects” option to the OBJ Export Options dialog
    • Contains a sub-option for choosing whether to export only the root of the primary selection, or the selected roots, and an option for whether or not to include parented objects
  • Relative paths written to MTL are now prefixed by a dot (current directory - of the MTL file)
    • Concludes work associated with #DS-1535
  • Update to NVIDIA Iray RTX 2019.1.5 (317500.7473)

DAZ Studio : Incremented build number to 4.12.1.40

Public Beta (4.12.1.55)

  • Source maintenance
  • Made a change to the timing of when a previous frame's render context is released/garbage collected/etc
    • This is an attempt to reduce resource consumption and address premature fallback from (NVIDIA) GPU to CPU when rendering with NVIDIA Iray
  • Extended DzContentLibraryPane scripting API
  • Added a toggleable “Container View is Collapsible” (default off) action to the Content Library option menu
  • Updated default menus; recommend clicking the Window > Workspace > Update and Merge Menus action

DAZ Studio : Incremented build number to 4.12.1.41


  • Source maintenance
  • Changed the label of the recently added “Container View is Collapsible” action to “Allow Container View Collapse”
  • Added a “Preferences” submenu to the Content Library pane option menu
  • Moved the “View as List” action, the “View as Tree” action, the “View Side by Side” action, the “Allow Container View Collapse” action, and the “Edit Content Preferences…” action to the Content Library pane option menu “Preferences” submenu
  • Added a “Preferences” submenu to the Smart Content pane option menu
  • Moved the “Standard View” action, the “Basic View” action, the “Sync Category Selection” action, the “Sync Filter Text” action, and the “Sync Filter by Context” action to the Smart Content pane option menu “Preferences” submenu
  • Added a “Allow Files Navigation Collapse” (default off) action to the “Preferences” submenu
  • Added a “Allow Products Navigation Collapse” (default off) action to the “Preferences” submenu
  • Fixed a redraw issue when toggling the “Allow Container View Collapse” action
  • Extended DzContentTab scripting API
  • Extended DzRelatedAssetsView scripting API
  • Updated scripting API documentation; DzContentLibraryPane, DzRelatedAssetsView, DzContentTab
  • Updated default menus; recommend clicking the Window > Workspace > Update and Merge Menus action

DAZ Studio : Incremented build number to 4.12.1.42


  • Source maintenance
  • Build system tweaks

DAZ Studio : Incremented build number to 4.12.1.43


  • Source maintenance
  • Added a “Clear All Objects” action
    • Clears simulation data from all objects with a dForce modifier, regardless of “Freeze Simulation” value
  • Added a “Clear All Non-Frozen Objects” action
    • Clears simulation data from all objects with a dForce modifier where “Freeze Simulation” is false
  • Relabeled the “Clear dForce Simulation from Selected Item(s)” action to “Clear Selected Objects”
    • Clears simulation data from selected objects with a dForce modifier, regardless of “Freeze Simulation” value
  • Added a “Clear Selected, Non-Frozen, Objects” action
    • Clears simulation data from selected objects with a dForce modifier where “Freeze Simulation” is false
  • dForce “Clear *” actions now provide feedback (if prompting is not disabled) when the action results in no change
  • The “Clear” button in the Simulation Settings pane, and the “Clear Simulation Data” action in the Simulation Settings pane option menu, now support the use of keyboard modifiers to control what happens when invoked (when dForce is the active simulation engine)
    • If [Ctrl/Cmd] is pressed (and prompting is not disabled), the user is presented with an options dialog
    • If [Shift] is pressed, only the selected objects are considered
    • If [Alt] is pressed, only the non-frozen objects are considered
    • If [Shift] and [Alt] are both pressed, only the non-frozen selected objects are considered
  • The “Clear” button in the Simulation Settings pane, and the “Clear Simulation Data” action in the Simulation Settings pane option menu, now provide feedback (if prompting is not disabled) when the action results in no change (when dForce is the active simulation engine)
  • Update to dForce 1.2.1.3
  • Fixed an issue with default menu declarations for Content Library actions
    • The “View as List” action, the “View as Tree” action, the “View Side by Side” action, the “Allow Container View Collapse” action, and the “Edit Content Preferences…” action
  • Fixed an issue with default menu declarations for Smart Content actions
    • The “Standard View” action, the “Basic View” action, the “Sync Category Selection” action, the “Sync Filter Text” action, the “Sync Filter by Context” action, the “Allow Files Navigation Collapse” action, and the “Allow Products Navigation Collapse” action
  • Moved the “Show Hidden Properties” action, the “Consolidate Properties” action, the “Persistent Group Expansion” action, the “Display Separate Items” action, and the “Display Followers” action to a Parameters pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, the “Display Separate Items” action, the “Display Followers” action, and the “Sync Region Selection with Scene” action to a Shaping pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, the “Display Separate Items” action, and the “Display Followers” action to a Posing pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, the “Display Selected Item(s) Only” action, the “Display Selected and Fitted Item(s)” action, and the “Display All Items” action to a Surfaces pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, and the “Sync with Scene Selection” action to a Lights pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, and the “Sync with Scene Selection” action to a Cameras pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, and the “Restore Render Setting Defaults” action to a Render settings pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, and the “Restore Draw Setting Defaults” action to a Draw Settings pane option menu “Preferences” submenu
  • Moved the “Show Hidden Properties” action, and the “Restore Simulation Setting Defaults” action to a Simulation Settings pane option menu “Preferences” submenu
  • Updated default interface files
  • Updated default menus; recommend clicking the Window > Workspace > Update and Merge Menus action

DAZ Studio : Incremented build number to 4.12.1.44


  • Source maintenance
  • Fixed a regression (introduced while fixing the value less than 2 in the Total Frames spinbox issue) with drawing frame indicators in the Timeline pane Dopesheet view Keys column header if the Play Range Start was set to a frame number greater than the current time zoom/pan values should draw for the current Keys column width
    • Click-dragging the left side of the time slider to the right side of the division between the Name column and the Keys column would cause frame indicators to squeeze into a progressively smaller area on the right of the header

DAZ Studio : Incremented build number to 4.12.1.45


  • Source maintenance
  • Fixed an issue in the Timeline pane where clicking the Dopesheet view Keys column header, or clicking/dragging the Playhead in the Dopesheet view Keys column header, while the Play Range Start frame number was set to any value other than 0 would cause the scene time to be offset from the frame corresponding to the cursor position by the same amount

DAZ Studio : Incremented build number to 4.12.1.46


  • Source maintenance
  • Updated copyright notices
  • Fixed an issue in the Timeline pane where the state of the “Play All Frames” action would stop being respected when the Dopesheet or Key Graph widgets were interacted with directly by the user

DAZ Studio : Incremented build number to 4.12.1.47


  • Source maintenance
  • Extended DzSimulationMgr SDK API
  • Updated public API documentation; DzSimulationMgr, DzSimulationEngine

DAZ Studio : Incremented build number to 4.12.1.48


  • Source maintenance
  • Updated SDK version to 4.12.1.49; SDK min is 4.5.0.100
  • Updated public API documentation; DzSimulationMgr
  • Added a “Simulate Selected” action
    • Performs a custom simulation with only the selected nodes (per their respective settings) considered
    • Found in Simulation Settings pane option menu
    • This functionality is not new (it has been possible via script API since 4.10), what is new is the convenience of a predefined action
  • Updated default menus; recommend clicking the Window > Workspace > Update and Merge Menus action

DAZ Studio : Incremented build number to 4.12.1.49


  • Source maintenance
  • Update to dForce 1.2.1.5
  • Updated authorship/copyright on some plugins

DAZ Studio : Incremented build number to 4.12.1.50


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.51


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.52


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.53


  • Source maintenance
  • Added backend support for enabling/disabling NVIDIA Iray CPU fallback
  • Added backend support for enabling/disabling NVIDIA Iray GPU detection
  • Added backend support for enabling/disabling NVIDIA Iray GPU driver version check
  • Added backend support for setting NVIDIA Iray NVLINK peer group size
    • Requires supported hardware

DAZ Studio : Incremented build number to 4.12.1.54


  • Source maintenance
  • Added an option, to the Hardware page under NVIDIA Iray Advanced Render Settings, that allows the user to enable/disable Iray CPU fallback
    • Requires restart to apply changes
  • Added an option, to the Hardware page under NVIDIA Iray Advanced Render Settings, that allows the user to enable/disable Iray GPU detection
    • Requires restart to apply changes
  • Added an option, to the Hardware page under NVIDIA Iray Advanced Render Settings, that allows the user to enable/disable Iray GPU driver version check
    • Requires restart to apply changes
    • Depends on GPU detection being enabled
  • Added an option, to the Photoreal Mode section of the Hardware page under NVIDIA Iray Advanced Render Settings, that allows the user to set Iray NVLINK peer group size
    • Requires supported hardware
    • Depends on GPU detection being enabled
  • Made minor cosmetic changes to NVIDIA Iray Advanced Render Settings
  • The Devices lists, on the Hardware page under NVIDIA Iray Advanced Render Settings, now prefix GPU options with their respective CUDA IDs
    • Makes identifying corresponding messages in the log easier

DAZ Studio : Incremented build number to 4.12.1.55

Public Beta (4.12.1.76)

  • Source maintenance
  • The Devices lists, on the Hardware page under NVIDIA Iray Advanced Render Settings, now suffix GPU options with their respective driver model and whether or not a display is attached
    • Windows only
  • Added additional information to GPU description logging

DAZ Studio : Incremented build number to 4.12.1.56


  • Source maintenance
  • Updated public API documentation; DzElementData, DzSkeleton, DzDomCharacterData, DzContentTab

DAZ Studio : Incremented build number to 4.12.1.57


  • Source maintenance
  • Updated scripting API documentation; DzApp, DzComboEdit, DzFacetMesh, DzFacetMeshAttachment, DzTopologyData
  • Fixed an issue that allowed more than a single entry for a given action to be saved to the actions session file
  • Made changes in preparation for support of custom panes
  • Extended DzPaneAction public API; added getPaneIdentifier()
  • Modified DzPaneAction SDK API; deprecated getPaneClassName()
  • Updated SDK version to 4.12.1.58; SDK min is 4.5.0.100
  • Updated public API documentation; DzActionMgr, DzPaneAction, DzActionMenu, DzActionMenuItem, DzPaneMgr

DAZ Studio : Incremented build number to 4.12.1.58


  • Source maintenance
  • Implemented support for defining multiple key sequences (up to 4) when assigning a shortcut to an action in the Customize dialog
  • Improved feedback when assigning a shortcut that is already in use
  • Fixed an issue where assigning the same shortcut to an action would erroneously prompt the user

DAZ Studio : Incremented build number to 4.12.1.59


  • Source maintenance
  • Improved capture of key sequences in the Customize dialog

DAZ Studio : Incremented build number to 4.12.1.60


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.61


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.62


  • Source maintenance
  • Extended DzApp scripting API; added isValidGuid()
  • Extended DzActionMgr SDK API; added findActionsForAccel()
  • Extended DzActionMgr scripting API; added getCustomActionByIndex(), findActionsForShortcut()
  • Extended scripting API; exposed DzCustomAction
  • Updated public API documentation; DzApp, DzActionMgr, DzCustomAction
  • Updated SDK version to 4.12.1.63; SDK min is 4.5.0.100
  • The main window now respects up to 4 (GNU Emacs style) key sequences assigned as action shortcuts
    • Key sequences consist of successive key codes entered within an allotted amount of time - where time is based on the maximum number of key codes in all sequences that start with the first in the sequence
    • Widgets that implement their own (common) shortcuts (e.g., line-edits, text-edits, etc) can cause interference if the cursor is positioned over them when the shortcut is entered - this is not a new behavior, but it can become more apparent as more sequences that include overlapping key codes are used

DAZ Studio : Incremented build number to 4.12.1.63


  • Source maintenance
  • The action key sequence acceleration cache is now automatically rebuilt when an action's shortcut is modified (be it via UI or API)

DAZ Studio : Incremented build number to 4.12.1.64


  • Source maintenance
  • Optimized the action key sequence acceleration cache
  • Updated “Duplicate *” action selection error messages to reflect current usage constraints
    • Messages erroneously stated a narrower scope than is currently supported
  • Fixed object names on various DzAction subclasses
  • Extended DzPaneMgr public API; added getCustomPane(), removeCustomPane(), removeAllCustomPanes(); added customPaneAdded(), customPaneRemoved() signals
  • Extended DzActionMgr public API; added customPaneActionAdded(), customPaneActionRemoved() signals
  • Extended DzActionMenu public API; added insertCustomPaneAction()
  • Extended scripting API; added DzCustomPane
  • Updated public API documentation; DzPaneMgr, DzActionMgr, DzActionMenu, DzAction, DzCustomPane, DzScriptAction, DzEventScriptAction, DzCustomAction
  • Updated SDK version to 4.12.1.65; SDK min is 4.5.0.100
  • Cleanup meta-actions when custom pane action is added
    • Restore shortcut/icon from meta-actions

DAZ Studio : Incremented build number to 4.12.1.65


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.66


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.67


  • Source maintenance
  • Pane menus are now updated (case-insensitively alpha-numerically sorted) prior to display
  • DzActionMenuItem::getLabel() now returns the current label for Action and CustomAction types
  • Updated public API documentation; DzActionMgr, DzActionMenuItem
  • Added a (hidden) “Ignore Local Transform” property
    • When active, causes geometry associated with the node to ignore the local transform
    • Allows the node to be used in a node hierarchy as a “helper node” or as part of a “control rig” with no effect on its own geometry
  • Changed the label of the (hidden) “Disable Transform” property to the more accurate “Disable Local Transform”
    • When active, dynamically overrides the transform properties and the local transform to be at its identity
    • Allows the node to be dynamically restored/locked
  • Extended DzNode public API; added setLocalTransformDisabled(), setLocalTransformIgnored(), getPointAtTarget(), getPointAtStrength(), isLocalTransformDisabled(), isLocalTransformIgnored(), getIgnoreLocalTransformControl()
  • Updated public API documentation; DzNode
  • Updated SDK version to 4.12.1.68; SDK min is 4.5.0.100
  • Fixed an issue with certain property values being copied during a duplicate (node) operation

DAZ Studio : Incremented build number to 4.12.1.68


  • Source maintenance
  • Made preliminary changes to support integration of NVIDIA Iray RTX 2020; internal
  • Renamed DzSceneAssetModifier to DzMeshModifier
  • Extended public API; added DzNodeModifier
  • Updated SDK saving sample; rename DzModifer subclass to clarify type of modifier is of the mesh variety, not the node variety
  • Fixed an issue with auto moc of SDK samples
  • Updated SDK version to 4.12.1.69; SDK min is 4.5.0.100

DAZ Studio : Incremented build number to 4.12.1.69


  • Source maintenance
  • Attempt to get new OpenGL profile on systems that support it
  • Update to dForce 1.2.1.6

DAZ Studio : Incremented build number to 4.12.1.70


  • Source maintenance
  • Extended DzNode public API; added addModifier(), removeModifier(), moveModifier(), removeAllModifiers(), getNumModifiers(), getModifier(), findModifier(), findModifierIndex(), findModifierIndexFromEnd(); added modifierAdded(), modifierRemoved(), aboutToAddModifier(), modifierStackChanged() signals
  • Extended DzNode SDK API; added getUniqueModifierName(), modifierIterator(), modifierDuplicate()
  • Updated SDK version to 4.12.1.71; SDK min is 4.5.0.100
  • Updated public API documentation; DzNode, DzObject

DAZ Studio : Incremented build number to 4.12.1.71


  • Source maintenance
  • The “Point At” property on a node is now located in the General > Constraints group by default instead of General > Misc
  • The (hidden) “Disable Local Transform” and “Ignore Local Transform” properties on a node are now located in the General > Transforms group by default instead of General > Misc
    • These properties are now also ordered before transform properties to reflect their scope
  • The “Fit to” and “Fit to Mode” properties on a skeleton are now located in the General > Constraints group by default instead of General > Misc
  • Extended DzNode SDK API; added propertyVersion()
  • Extended DzSkeleton SDK API
  • Updated SDK version to 4.12.1.72; SDK min is 4.5.0.100
  • Updated public API documentation; DzNode, DzSkeleton
  • Fixed #CS-320298: Offset key selection in the Timeline pane Dopesheet keys column when the Play Range Start is not at 0
  • Fixed an issue where double-clicking the Dopesheet keys column to snap the playhead to the closest frame (i.e., set the current scene time) would be offset when the Play Range Start is not at 0
  • Fixed an issue where clicking on a key in the Timeline pane Dopesheet keys column to select it while viewing a play range with many frames would sometimes cause the key to move to an adjacent frame even if the cursor position had not changed
  • Fixed an issue where dragging selected keys in the Timeline pane Dopesheet keys column that ultimately resulted in no change would unnecessarily cause an undo item to be created and added to the stack

DAZ Studio : Incremented build number to 4.12.1.72


  • Source maintenance
  • Fixed an issue where dragging keys in the Timeline pane Dopesheet would not cancel an undo operation if those keys were dropped/released in the same position they started the drag from
  • Extended DzNode scripting API; added getUniqueModifierName()
  • Extended DzNodeModifier SDK API
  • Fixed access specifier on DzNodeModifier ctor
  • Extended DzPropertyHelper SDK API; added isNodeModifierProperty()
  • Extended DzSceneHelper scripting API; added isNodeModifierProperty()
  • Updated SDK version to 4.12.1.73; SDK min is 4.5.0.100
  • Updated SDK API documentation; DzPropertyHelper
  • Updated scripting API documentation; DzNode, DzSceneHelper

DAZ Studio : Incremented build number to 4.12.1.73


  • Source maintenance
  • Updated public API documentation; API version
  • Extended SDK API; moved DzGLUtility to public
  • Updated SDK version to 4.12.1.74; SDK min is 4.5.0.100
  • Updated SDK API documentation; DzGLUtility, Compiling DAZ Studio Plugins (Win/macOS)
  • Updated SDK CMakeLists

DAZ Studio : Incremented build number to 4.12.1.74


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.75


  • Source maintenance
  • Update to NVIDIA Iray RTX 2019.1.6 (317500.11080)
  • Added a Render Settings (NVIDIA Iray) > Optimization > Ray Tracing Low Memory property
    • Controls the memory used by ray tracing acceleration hierarchies
    • Currently only reduces memory usage on pre-Turing generation GPUs (while potentially harming rendering performance) if set to “on”
  • Updated registration of script accessible classes

DAZ Studio : Incremented build number to 4.12.1.76

Public Beta (4.12.1.109)

  • Source maintenance
  • Updated SDK API documentation; DzComponentController

DAZ Studio : Incremented build number to 4.12.1.77


  • Source maintenance
  • Renamed custom DzViewTool SDK sample classes
  • Updated SDK custom view tool action icon styling sample
  • Renamed custom DzViewTool SDK sample files
  • Fixed issues with Dz3DBrushTool 4.5+ SDK ABI; removed virtual specifier from member functions added post-4.5.0.100
  • Extended DzPolygonSelectionTool public API; added setFaceGroupVisibility(), setMaterialGroupVisibility(), setRegionVisibility(), setRigidityGroupVisibility(); added visibilityChanged() signal
  • Modified DzPolygonSelectionTool public API; deprecated setFaceGroupVisiblity(), setMaterialGroupVisiblity(), setRegionVisiblity(); deprecated visiblityChanged() signal
  • Updated SDK version to 4.12.1.78; SDK min is 4.5.0.100
  • Updated SDK API documentation; DzPolygonSelectionTool, Dz3DBrushTool

DAZ Studio : Incremented build number to 4.12.1.78


  • Source maintenance
  • Update to NVIDIA Iray RTX 2020.0.0 (327300.312)
    • Increases minimum driver requirement (on Windows) to 441.22 for pre-Turing GPUs (to support CUDA 10.2), and 441.87 for Turing GPUs (to support OptiX 7.1)
    • Failure to update to the minimum driver is likely to produce a blank image and a render error (e.g., “Invalid parameters (NULL pointer)”) being written to the log
  • Made changes (i.e., additions, modifications, deletions) to Shader Mixer low-level MDL bricks that correspond to integration of NVIDIA Iray RTX 2020
    • Added DzMdlArray, DzMdlBaseSellmeierCoefficientLambda, DzMdlDfSheenBsdf, DzMdloperatorLen
    • Modified DzMdlDfBackscatteringGlossyReflectionBsdf, DzMdlDfMicrofacetBeckmannSmithBsdf, DzMdlDfMicrofacetBeckmannVcavitiesBsdf, DzMdlDfMicrofacetGgxSmithBsdf, DzMdlDfMicrofacetGgxVcavitiesBsdf, DzMdlDfSimpleGlossyBsdf, DzMdlDfWardGeislerMoroderBsdf, DzMdloperatorCast
    • Removed DzMdlBaseIntN256NAt, DzMdlBool2At, DzMdlBool3At, DzMdlBool4At, DzMdlDfTint, DzMdlDouble2At, DzMdlDouble2x2At, DzMdlDouble2x3At, DzMdlDouble2x4At, DzMdlDouble3At, DzMdlDouble3x2At, DzMdlDouble3x3At, DzMdlDouble3x4At, DzMdlDouble4At, DzMdlDouble4x2At, DzMdlDouble4x3At, DzMdlDouble4x4At, DzMdlFloat2At, DzMdlFloat2x2At, DzMdlFloat2x3At, DzMdlFloat2x4At, DzMdlFloat3At, DzMdlFloat3x2At, DzMdlFloat3x3At, DzMdlFloat3x4At, DzMdlFloat4At, DzMdlFloat4x2At, DzMdlFloat4x3At, DzMdlFloat4x4At, DzMdlInt2At, DzMdlInt3At, DzMdlInt4At

DAZ Studio : Incremented build number to 4.12.1.79


  • Source maintenance
  • Made a minor tweak to display of Render Settings (NVIDIA Iray) > Advanced > Canvases canvas type

DAZ Studio : Incremented build number to 4.12.1.80


  • Source maintenance
  • Extended DzIrayRenderer scripting API; added getHighThreshold(), setHighThreshold(), getMediumThreshold(), setMediumThreshold(), getAllowCPUFallback(), setAllowCPUFallback(), getAllowGPUDetection(), setAllowGPUDetection(), getGPUDriverCheck(), setGPUDriverCheck(), getNVLINKPeerGroupSize(), setNVLINKPeerGroupSize(), getCPULoadLimit(), setCPULoadLimit(), getCPUThreadAffinityEnabled(), setCPUThreadAffinityEnabled(), getGPULoadLimit(), setGPULoadLimit()
  • Updated scripting API documentation; DzIrayRenderer
  • Added backend support for scheduling configuration (i.e., CPU/GPU load limits, CPU thread affinity) of NVIDIA Iray
  • Modified/Extended logging of NVIDIA Iray process/status

DAZ Studio : Incremented build number to 4.12.1.81


  • Source maintenance
  • Updated SDK version to 4.12.1.82; SDK min is 4.5.0.100
  • Initial functional implementation of Node Transform Constraints
    • Constrains (weighted) position
    • Does not currently account for node hierarchy
    • Does not currently constrain rotations
    • Does not currently constrain scale
    • Does not currently handle target node deletion, etc
  • Node Transform Constraints now account for target node origin offset
    • Addresses initial jump when adding a the constraint to a node
  • Node Transform Constraints now support X|Y|Z Translation toggling

DAZ Studio : Incremented build number to 4.12.1.82


  • Source maintenance
  • Extended DzNodeProperty public API; added unexclude()
  • Extended DzNumericNodeProperty public API; added exclude(), unexclude(), isExcluded()
  • Extended DzNumericNodePropertyWgt SDK API; added isExcluded()
  • Extended DzStyledNumericNodePropertyWgt SDK API; added isExcluded()
  • Updated SDK version to 4.12.1.83; SDK min is 4.5.0.100
  • Updated public API documentation; DzNodeProperty, DzNumericNodeProperty
  • Updated SDK API documentation; DzNumericNodePropertyWgt, DzStyledNumericNodePropertyWgt
  • Fixed an issue where the “Point At” property for a given node listed the node it is on as a viable target
  • Fixed an issue where the description of a Transform Constraint Controller did not include the list of its target nodes
    • Displayed in Parameter Settings > Controllers

DAZ Studio : Incremented build number to 4.12.1.83


  • Source maintenance
  • Extended DzNodeProperty SDK API; added emitAboutToChange()
  • Modified DzSkeletonProperty SDK API; deprecated emitAboutToChange()
  • Updated SDK version to 4.12.1.84; SDK min is 4.5.0.100
  • Updated SDK API documentation; DzNodeProperty, DzSkeletonProperty
  • Update to NVIDIA Iray RTX 2020.0.0 (327300.2022)
    • Increases minimum driver requirement (on Windows) to 441.22 for pre-Turing GPUs (to support CUDA 10.2), and 442.19 for Turing GPUs (to support OptiX 7.1)
  • Added Scheduling options (i.e., CPU Load Limit, CPU Thread Affinity) to Render Settings (NVIDIA Iray) > Advanced > Hardware
  • Fixed an issue with saving (and therefore restoring) of NVIDIA Iray scheduling options
  • Node Transform Constraints now guard against cyclical evaluation (infinite loop) caused by disallowing selection of the parent node as a target node
  • Node Transform Constraint target controls on the same node now guard against selection of the same target node across multiple controls

DAZ Studio : Incremented build number to 4.12.1.84


  • Source maintenance
  • Node Transform Constraints now account for the node they are on being a child of another node; position
  • Node Transform Constraints now handle the parent of the node they are on being changed

DAZ Studio : Incremented build number to 4.12.1.85


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.86


  • Source maintenance
  • The Render Settings (NVIDIA Iray) > Advanced > Hardware > Scheduling : CPU Thread Affinity option is not supported by macOS
    • The option has been hidden/disconnected on macOS
    • Platform specific (preprocessor) API guards have been added

DAZ Studio : Incremented build number to 4.12.1.87


  • Source maintenance
  • Implemented support for NVIDIA Iray Deep-Learning based Structural Similarity Image Metric (SSIM) prediction
    • Added Progressive Rendering > Completion > Post Prediction > Post SSIM Available
      • Makes SSIM available
      • Triggers generation of additional data needed for SSIM in the event that SSIM is enabled
      • Must be enabled prior to starting a render
      • Toggles visible state (and use of) of other “Post SSIM” properties
      • If enabled, may cause memory/performance overhead
    • Added Progressive Rendering > Completion > Post Prediction > Post SSIM Enable
      • Controls whether or not SSIM is used to predict convergence
    • Added Progressive Rendering > Completion > Post Prediction > Post SSIM Target
      • The target amount of convergence for the SSIM prediction
    • Added Progressive Rendering > Completion > Post Prediction > Post SSIM Max Memory (hidden)
      • Maximum amount of GPU device memory the SSIM predictor is allowed to use
    • Disabled/Hidden when “Post Denoiser Available” is set to “On”
    • Runs under the first GPU found by the system
    • No CPU fallback
    • Photoreal render mode only (currently)
  • Added a (hidden) “Post Denoiser Max Memory” property to the “Filtering/Post Denoiser” property group
    • Photoreal render mode only (currently)
  • Updated NVIDIA Iray progress messages

DAZ Studio : Incremented build number to 4.12.1.88


  • Source maintenance
  • Added support for rotations to Node Transform Constraints
  • Node Transform Constraints now support X|Y|Z Rotation toggling
  • Node Transform Constraints now guard against cyclical evaluation (infinite loop) caused by parenting the node that a constraint is on to a node in one of the participating constraint target's node hierarchies

DAZ Studio : Incremented build number to 4.12.1.89


  • Source maintenance
  • Added a Render Settings (NVIDIA Iray) > Environment > Matte Fog > Matte Fog property
    • Toggles the state of the matte fog effect
    • Toggles display of additional matte fog related properties
  • Added a Render Settings (NVIDIA Iray) > Environment > Matte Fog > Matte Fog Visibility property
    • Specifies the visibility range, in meters, that is the distance at which the contrast between bright and dark objects is still perceivable according to the Koschmieder equation
  • Added a Render Settings (NVIDIA Iray) > Environment > Matte Fog > Matte Fog Visibility Tint property
    • Allows variance in the visibility range per color channel
  • Added a Render Settings (NVIDIA Iray) > Environment > Matte Fog > Matte Fog Brightness property
    • Specifies the brightness of the in-scattered lighting, either as an absolute value or as a multiplier (see next property)
  • Added a Render Settings (NVIDIA Iray) > Environment > Matte Fog > Matte Fog Brightness Relative to Environment property
    • If enabled, the brightness of the in-scattered lighting is automatically determined to be relative to the total illuminance of the environment or sun and sky
    • If disabled, the brightness is an absolute value
  • Added a Render Settings (NVIDIA Iray) > Environment > Matte Fog > Matte Fog Brightness Tint property
    • Allows for color tinting in-scattered lighting

DAZ Studio : Incremented build number to 4.12.1.90


  • Source maintenance
  • Updated public API documentation; DzPushModifier

DAZ Studio : Incremented build number to 4.12.1.91


  • Source maintenance
  • Fixed #DS-2074/#CS-318168: “Play All Frames” action missing from Timeline pane option menu
    • Recommend clicking the Window > Workspace > Update and Merge Menus action
  • Work toward asset IO support of node modifiers

DAZ Studio : Incremented build number to 4.12.1.92


  • Source maintenance
  • Fixed an issue with DzPopupMenu that prevented menu items from being checkable/checked using legacy API
  • Extended DzPopupMenu scripting API; added isItemCheckable(), setItemCheckable()
  • Updated scripting API documentation; DzPopupMenu

DAZ Studio : Incremented build number to 4.12.1.93


  • Source maintenance
  • Added a guard against use of the Iray Auto Exposure tool (NVIDIA Iray DrawStyle) resulting in an invalid (-inf) Exposure Value
  • Inline help for DrawStyle tool actions associated with a DrawStyle DzViewTool subclass (e.g., Iray Auto Exposure tool) is now used/displayed (if defined) for the in-viewport icon
  • Updated inline help; Iray Auto Exposure tool, Content Library pane

DAZ Studio : Incremented build number to 4.12.1.94


  • Source maintenance
  • Extended DzPropertySideNavHierarchy scripting API; added forceRefresh(), toggleShowFollowers(), getDefaultSelectionPath()
  • Modified DzPropertySideNavHierarchy scripting API; deprecated forceRefesh(), toogleShowFollowers()
  • Updated scripting API documentation; DzPropertySideNavHierarchy

DAZ Studio : Incremented build number to 4.12.1.95


  • Source maintenance
  • Performance of Node Transform Constraints has been optimized based on which components are enabled
  • Implemented an alternate (quaternion based) rotation blending on Node Transform Constraints
    • An improvement, but still suffers a flip >= ~180 deg
  • Scale components of Node Transform Constraints are now “Off” by default
  • Node Transform Constraints now support X|Y|Z Scale toggling
    • Enabling scale components does not yet produce the intended result
  • Implemented saving of Node Transform Constraints
    • Saving of animations for DzNodeProperty instances (i.e. target nodes) needs attention (in general, not specific to constraint targets), and its presence in the file will currently cause restoration of target nodes to be incorrect
    • Stripping animation data for DzNodeProperty instances allows target nodes to be restored
  • Implemented loading of Node Transform Constraints
    • Loading of animations for DzNodeProperty instances (i.e. target nodes) needs attention (in general, not specific to constraint targets), and its presence in the file will currently cause restoration of target nodes to be incorrect
    • Stripping animation data for DzNodeProperty instances allows target nodes to be restored

DAZ Studio : Incremented build number to 4.12.1.96


  • Source maintenance
  • Updated scripting API documentation; DzListView, DzHeader, DzListViewItem, DzCheckListItem
  • Extended DzLineEdit scripting API; added setValidator(), getValidatorSettings()
  • Extended DzComboEdit scripting API; added setValidator(), getValidatorSettings()
  • Added the Physically-Based Rendering (PBR) DrawStyle plugin, and supporting libraries/resources, to the public Win64 footprint
    • Mac64 is still limited to the internal footprint
    • Implements Google Filament as a DrawStyle
    • Implementation is designed to translate properties of the “!Iray Uber Base” (Default Resources) and “Iray Blended Dual Lobe Hair” (dForce Starter Essentials) shaders as faithfully as possible

DAZ Studio : Incremented build number to 4.12.1.97


  • Source maintenance
  • Fixed crash issues relating to the deletion of a Node Transform Constraint
  • Fixed an issue where attempting to transform a node after deleting its Node Transform Constraint would cause a crash
  • Fixed an issue where the relative position of nodes involved in a Node Transform Constraint, in conjunction with the direction of the constraint relationship, would cause the offset of the constrained node to be incorrect
  • Improved performance of Node Transform Constraints
  • Post-install package finalization now includes setting an application setting used by external applications/plugins (e.g., bridges) to locate the installed path of this application
  • Updated pre-install script handling of cross-sku package conflicts for Photoshop 3D Bridge
    • Only one channel package should be installed via Install Manager at any given time
  • Updated pre-install script handling of cross-sku package conflicts for GoZ
    • Only one channel package should be installed via Install Manager at any given time

DAZ Studio : Incremented build number to 4.12.1.98


  • Source maintenance
  • Made modifications to Shader Mixer low-level MDL built-in bricks to correspond with changes in NVIDIA Iray RTX 2020.0.0 (327300.2022)
    • Modified DzMdlBool2GetX, DzMdlBool2GetY, DzMdlBool3GetX, DzMdlBool3GetY, DzMdlBool3GetZ, DzMdlBool4GetW, DzMdlBool4GetX, DzMdlBool4GetY, DzMdlBool4GetZ, DzMdlDouble2GetX, DzMdlDouble2GetY, DzMdlDouble3GetX, DzMdlDouble3GetY, DzMdlDouble3GetZ, DzMdlDouble4GetW, DzMdlDouble4GetX, DzMdlDouble4GetY, DzMdlDouble4GetZ, DzMdlFloat2GetX, DzMdlFloat2GetY, DzMdlFloat3GetX, DzMdlFloat3GetY, DzMdlFloat3GetZ, DzMdlFloat4GetW, DzMdlFloat4GetX, DzMdlFloat4GetY, DzMdlFloat4GetZ, DzMdlInt2GetX, DzMdlInt2GetY, DzMdlInt3GetX, DzMdlInt3GetY, DzMdlInt3GetZ, DzMdlInt4GetW, DzMdlInt4GetX, DzMdlInt4GetY, DzMdlInt4GetZ
  • Reinstated Shader Mixer low-level MDL bricks removed in 4.12.1.79
    • Manually recreated DzMdlBool2At, DzMdlBool3At, DzMdlBool4At, DzMdlDouble2At, DzMdlDouble3At, DzMdlDouble4At, DzMdlFloat2At, DzMdlFloat3At, DzMdlFloat4At, DzMdlInt2At, DzMdlInt3At, DzMdlInt4At

DAZ Studio : Incremented build number to 4.12.1.99


  • Source maintenance
  • Fixed multi-dimensional array “*At” function return types in basic MDL
  • Reinstated Shader Mixer low-level MDL bricks removed in 4.12.1.79
    • Manually recreated DzMdlDouble2x2At, DzMdlDouble2x3At, DzMdlDouble2x4At, DzMdlDouble3x2At, DzMdlDouble3x3At, DzMdlDouble3x4At, DzMdlDouble4x2At, DzMdlDouble4x3At, DzMdlDouble4x4At, DzMdlFloat2x2At, DzMdlFloat2x3At, DzMdlFloat2x4At, DzMdlFloat3x2At, DzMdlFloat3x3At, DzMdlFloat3x4At, DzMdlFloat4x2At, DzMdlFloat4x3At, DzMdlFloat4x4At
  • Fixed an issue where default focus for the Render Window was always being awarded to the What's This? (inline help) button
    • Focus behavior has been modified such that when a destination path/filename has been defined in the Render Settings pane, focus is awarded to the Save button as it becomes enabled
    • If either the destination path or filename has not been pre-defined, focus is awarded to the corresponding field/button
  • Finishing an edit of the filename for a render in the Render Window (i.e., pressing the [Enter] or [Return] key) is now interpreted as though the Save button was clicked (if enabled)
  • Fixed an issue where attempting to save a render over an existing file would prompt the user for whether or not to overwrite the existing file multiple times if the question was answered “No”
    • Answering “No” now also re-raises, and makes active, the Render Window
  • The Render Window is now raised and made active when the window is not active and a render is finished or canceled
  • The “File Already Exists” message has refactored to include additional detail
  • Modified DzProductAssetContainer public API; deprecated getRealtiveInstallPath()
  • Extended DzProductAssetContainer public API; added getRelativeInstallPath()
  • Extended DzAssetMgr public API; added getProductName()
  • Extended SDK API; added DzNonEmptyComboEditDlgValidator
  • Updated SDK version to 4.12.1.100; SDK min is 4.5.0.100
  • Updated public API documentation; DzAssetMgr, DzProductAssetContainer
  • The “Create a Product from…” dialog has been refactored
    • It is now a standard basic dialog
    • It now uses a validator to prevent invalid characters from being entered
  • The “Create a Product from…” actions (underlying functions) now check for and prevent an empty product name
  • The “Create a Product” dialog is now initially focused on the name field upon display

DAZ Studio : Incremented build number to 4.12.1.100


  • Source maintenance
  • Build system tweaks

DAZ Studio : Incremented build number to 4.12.1.101


  • Source maintenance
  • Update to NVIDIA Iray RTX 2020.0.1 (327300.3640)

DAZ Studio : Incremented build number to 4.12.1.102


  • Source maintenance
  • Fixed an issue where the backdrop material was not named
  • Extended DzElement public API; added NameEditScope enum; added getTypeLabel(), getNameEditScope()
  • Extended DzElement SDK API; added setTypeLabel(), setNameEditScope()
  • Updated SDK version to 4.12.1.103; SDK min is 4.5.0.100
  • Updated public API documentation; DzElement, DzBackdrop
  • Type label and name edit scope are now explicitly set for DzMaterial, DzNode, DzObject, DzSkinBinding, DzModifier, DzMorph, DzNodeModifier, DzShape

DAZ Studio : Incremented build number to 4.12.1.103


  • Source maintenance

DAZ Studio : Incremented build number to 4.12.1.104


  • Source maintenance
  • Fixed an issue with the “Choose Value” Shader Mixer brick failing to function correctly for any type other than an integer (singular)
    • Implemented a temporary workaround for an issue in the Iray 2020 SDK API
    • Workaround supports the color, string, bool, bool2, bool3, bool4, int, int2, int3, int4, float, float2, float3, float4, double, double2, double3, double4, float2x2, float2x3, float2x4, float3x2, float3x3, float3x4, float4x2, float4x3, float4x4, double2x2, double2x3, double2x4, double3x2, double3x3, double3x4, double4x2, double4x3, double4x4, and material types
    • Workaround does NOT support the user-defined struct, enum, texture_2d, texture_3d, texture_cube, texture_ptex, light_profile, BSDF, EDF, or VDF types
  • Added warnings messages to the “Choose Value” Shader Mixer brick for unsupported types

DAZ Studio : Incremented build number to 4.12.1.105


  • Source maintenance
  • Refactored code that deals with the generation of certain Shader Mixer bricks
    • Changes processing of MDL function signatures to address issues (generic types as parameters, in particular) stemming from the integration of NVIDIA Iray RTX 2020 and its switch to MDL 1.6
    • As a result of this refactoring, the “Choose Value” Shader Mixer brick now handles all known/supported types and therefore nullifies/resolves the workaround implemented in 4.12.1.105

DAZ Studio : Incremented build number to 4.12.1.106


  • Source maintenance
  • Automated Shader Mixer brick generation for MDL functions that have generic parameters (i.e., “<0>”) is now skipped
    • These kinds of functions must now be manually wrapped/exposed
    • As a result, the recently added (4.12.1.79) DzMdlArray and DzMdloperatorLen bricks have (temporarily?) been removed
  • A Node Transform Constraint now provides the ability to choose the space in which rotations occur (local vs target)
  • A Node Transform Constraint now has the ability to record/adjust its positional offset from a given target node
  • Fixed an issue with doubling of scale values in Node Transform Constraints
  • Extended Node Transform Constraint scripting APIs

DAZ Studio : Incremented build number to 4.12.1.107


  • Source maintenance
  • Fixed issues with rotation and scale calculations in Node Transform Constraints
  • Fixed issues with parent transform compensation in Node Transform Constraints
  • Changed Node Transform Constraint controllers to be of the replace type rather than the add type
    • This has the effect of strictly enforcing the constraint and increases the responsibility/importance of target offset properties
  • Fixed an issue where loading a Node Transform Constraint from a saved file would cause a doubling effect
  • Node Transform Constraints now use “Constraint Context” (instead of “Rotation Space”) in UI/API to refer to the context in which the constraint operates
    • “Local” operates such that rotation of the constrained node occurs about its own origin
    • “Target” operates such that the constrained node's position orbits the origin of the target node(s) in a parent/child-like relationship, but does not itself rotate
  • Renamed Node Transform Constraint properties for consistency
    • Improves filtering possibilities
  • A Node Transform Constraint now has the ability to record/adjust its rotational offset from a given target node
  • Node Transform Constraints now support General Scale toggling
  • Node Transform Constraints offset properties are now styled like transform properties
  • Adjusted sensitivity of Node Transform Constraints offset properties to be consistent with node transform properties
  • Modified Node Transform Constraint scripting APIs; renamed member functions
  • Extended Node Transform Constraint scripting APIs; added member functions
  • Extended DzNode public API
  • Modified DzDistantLight SDK API; deprecated updateIsLightPortalVisiblity()
  • Extended DzDistantLight SDK API; added updateIsLightPortalVisibility()
  • Modified DzDistantLight public API; deprecated getLightTempature()
  • Extended DzDistantLight public API; added getLightTemperature()
  • Updated SDK version to 4.12.1.108; SDK min is 4.5.0.100
  • Updated public API documentation; DzNode, DzDistantLight

DAZ Studio : Incremented build number to 4.12.1.108


  • Source maintenance
  • Fixed an issue with photometric point lights rendered with NVIDIA Iray, where the combination of “Two Sided” enabled and “Light Geometry” set to “Point” would cause the light to contribute no light to the rendered scene
  • Extended DzDistantLight SDK API; added updateTwoSidedVisibility()
  • Updated SDK version to 4.12.1.109; SDK min is 4.5.0.100
  • The “Two Sided” property on a light where “Photometric Mode” is enabled is now dynamically shown/hidden based on whether or not “Light Geometry” is set to a value where “Two Sided” has meaning
    • e.g. “Two Sided” has no meaning for “Point”, so the “Two Sided” property is hidden when “Light Geometry” is set to “Point”
  • Moved the Physically-Based Rendering (PBR) DrawStyle plugin, and supporting libraries/resources, back to the internal Win64 footprint
    • Not ready for general public consumption yet

DAZ Studio : Incremented build number to 4.12.1.109

Public Beta (4.12.1.115)

  • Source maintenance
  • Disabled the “Store” page in the Smart Content pane footer
  • Updated Splash/About images

DAZ Studio : Incremented build number to 4.12.1.110


  • Source maintenance
  • Extended DzNode public API; added getWSTransformAxisValues(), getLocalTransformAxisValues()
  • Extended DzNode SDK API; added calcWSTransformAxisValues(), calcLocalTransformAxisValues()
  • Modified Node Transform Constraint scripting APIs
  • Updated SDK version to 4.12.1.111; SDK min is 4.5.0.100
  • Updated public API documentation; DzNode

DAZ Studio : Incremented build number to 4.12.1.111


  • Source maintenance
  • Updated public API documentation; DzApp

DAZ Studio : Incremented build number to 4.12.1.112


  • Source maintenance
  • Improved reporting of NVIDIA Iray render progress information
  • When (NVIDIA Iray) > Progressive Rendering > Completion > Post Prediction > Post SSIM Available and Post SSIM Enable are enabled, render progress is now dynamically calculated based on SSIM prediction data
  • When (NVIDIA Iray) > Progressive Rendering > Completion > Post Prediction > Post SSIM Available and Post SSIM Enable are enabled, the active rendering process will now automatically terminate when the Post SSIM Target (convergence) value is met
  • (NVIDIA Iray) > Progressive Rendering > Completion > Post Prediction > Post SSIM Enable and Post SSIM Target now behave as expected (and have the expected impact on progress reporting) when edited in the Render Window editor
  • Renamed the (NVIDIA Iray) > Progressive Rendering > Completion > Post Prediction > “Post SSIM Target” property to “Post SSIM Predict Target” in order to more closely match the Iray SDK
  • Fixed an issue with the value of (NVIDIA Iray) > Progressive Rendering > Completion > Post Prediction > Post SSIM Predict Target not being respected
  • Fixed an issue where changing the name of a canvas using the Render Settings (NVIDIA Iray) > Advanced page would not update the name of the canvas in the Canvases > Active Canvas property on the Render Settings (NVIDIA Iray) > Editor page

DAZ Studio : Incremented build number to 4.12.1.113


  • Source maintenance
  • Work around an issue resulting from the integration of NVIDIA Iray RTX 2020, where attenuating a color and adjusting its alpha value is not being respected when rendered
    • Manifests as the “Grayscale From:” option in the Image Editor producing a different result than previous versions of Iray when set to the “Alpha” value
    • Manifests as the “Invert” option in the Image Editor producing a different result than previous versions of Iray when set to the “On” value
    • This workaround is intended to be temporary - until the issue can be addressed in Iray proper

DAZ Studio : Incremented build number to 4.12.1.114


  • Source maintenance
  • Applied the alpha adjustment workaround in the previous build to the “Texture Instance” Shader Mixer brick (DzTextureInstanceBrick)
    • Has a potential ripple effect due to extensive use - warrants extensive testing

DAZ Studio : Incremented build number to 4.12.1.115

Public Beta (4.12.1.117)

  • Source maintenance
  • Extended DzApp public API; added hasActiveModalWidget()
  • Fixed an issue where DzApp::postScriptEvent() did not wait for the main event loop to be started before executing the script
  • Updated SDK version to 4.12.1.116; SDK min is 4.5.0.100
  • Fixed an issue that could cause an errant PostgreSQL connection message to be displayed during startup
    • The “A valid PostgreSQL CMS connection could not be established…” message would be displayed, but database driven content views would become populated without further interaction by the user
  • Fixed an issue where colors in Render Settings (NVIDIA Iray) > Environment group (e.g., Matte Fog Visibility Tint, Matte Fog Brightness Tint) were being sent to the renderer with their respective green and blue component values transposed

DAZ Studio : Incremented build number to 4.12.1.116


  • Source maintenance
  • Merged to trunk

DAZ Studio : Incremented build number to 4.12.1.117

Private Beta (4.12.1.118)

  • Source maintenance
  • Fixed an issue that allowed a disabled action to be triggered using its shortcut
    • e.g., WASD keyboard navigation actions would still trigger when their respective assigned shortcuts were pressed even though the Keyboard Navigation action was toggled off and the individual actions were disabled
  • Fixed an issue where actions bound to keyboard shortcuts with a sequence count of 1 were waiting as though there was a potential subsequent shortcut in the sequence instead of immediately triggering the action
    • e.g., WASD keyboard navigation actions seemed to suffer a delay even though no actions were bound to multiple shortcut sequences
  • Added a guard against multiple events for a single keyboard shortcut causing validation (and ultimately the triggering of an associated action) multiple times
    • e.g., guard against actions (render, save, etc) being triggered more than once for a single shortcut
  • Made adjustments to event filtering
  • Patched Qt 4.8.7 SSL/TLS support

DAZ Studio : Incremented build number to 4.12.1.118



Release to Production

  • 4.12.1.117 - 2020-4-29
  • 4.12.1.118 - 2020-6-29