Since VRED 2026.1 its (finally) possible to reset the DLSS history! We added Python commands for setting the DLSS phase count to a higher accumulation phase count and reset DLSS history. Now, when switching variants, the colors of the two variants won't mix and result in an incorrect result, instead the DLSS accumulation history is reset. setDLSSMaxPhaseCount(framecount) - Sets the number of frames DLSS renders before going idle. The minimum frame count is 72. getDLSSMaxPhaseCount() - Returns the max phase count. resetDLSSHistory() - Resets the DLSS accumulation history and starts over. Calling this function might be necessary when switching color variants, in order to get the correct colors and reduce artifacts due to the accumulation history. For example, setDLSSMaxPhaseCount(279)
print getDLSSMaxPhaseCount() Source: VRED 2026 Help | General Improvements | Autodesk (Section "Scripting") API Documentation: VRED 2026 Help | vrOSGWidget | Autodesk That's really useful when DLSS is active and an immediate change between one material and another is neccessary. Without the use of vrOSGWidget.resetDLSSHistory, the appearance of the previous variant gets blended into the next. Example: Switching from a blue car paint to a red car paint will be visualized in purple colors and might stay a little bit purple, even when sampling stops. But how do you expect us to use this feature? Add it to all VariantSet scripts that might change the appearance like that? vSetScriptToAdd = """# VRED 2026.1 feature resetDLSSHistory()
# Resets the DLSS accumulation history and starts over.
# Calling this function might be necessary when switching color variants,
# in order to get the correct colors and reduce artifacts due to the accumulation history.
# https://help.autodesk.com/view/VREDPRODUCTS/2026/ENU/?guid=general-vred-20261
if float(vrController.getVredVersion()) >= 18.1:
resetDLSSHistory()
else:
vrLogWarning(f"VRED {getVredDisplayVersionYear()} doesn't support vrOSGWidget.resetDLSSHistory(). Use 2026.1 or newer.")
"""
vSets = [getVariantSet(vSetName) for vSetName in getVariantSets()]
for vSet in vSets:
vSetScript = vSet.getScript()
if not vSetScriptToAdd in vSetScript:
vSet.addScript(vSetScript + "\n\n" + vSetScriptToAdd)
vrLogInfo(f"Script added to VariantSet '{vSet.getName()}'") Result: Suggestion 1: Unfortunately, there's no API v2 signal (at least none that I'm familiar with) that I can connect to when VariantSets are switched. Please provide... an API v2 version of the vrVariantSetPtr class an API v2 service (e.g. vrVariantSetService) with capabilities similar to vrVariantSets, but with signals that we can connect to Suggestion 2: And enable us to use 'resetDLSSHistory()' with each activated VariantSet (when DLSS is active) with a setting in the VRED preferences Suggestion 3: ...ask the community for feedback and ideas! I'm just one person without Autodesk's knowledge and might have ****ty suggestions 😁 Sidenote: The class vrVariantSetPtr doesn't have the getters/setters we need and lacks so many features. Example: How to use the 'sequential animation' checkbox? 🙄 Export (all) variants with vrVariantSets.saveVariants(name) Manipulate (temporary) xml file on disk with python Re-Import manipulated XML with vrVariantSets.loadVariants(name) Delete temporary xml file
Show More