Open
Conversation
c70d1ec to
547671f
Compare
3e9f54a to
bae5025
Compare
ppt-adsk
previously approved these changes
May 5, 2026
Collaborator
ppt-adsk
left a comment
There was a problem hiding this comment.
Had a quick read-through, looks good to me!
| // the manager's lookup key. The const_cast is required because | ||
| // MPxNode::thisMObject() is non-const in the Maya API; the call has no | ||
| // observable mutation. | ||
| MFnDependencyNode depFn(const_cast<UsdSettingsNode*>(this)->thisMObject()); |
Collaborator
There was a problem hiding this comment.
MFnDependencyNode has a const-correct constructor.
Collaborator
Author
There was a problem hiding this comment.
Missed that, fixing! Thanks!
Add the "activeSettingsPath" to the sceneRenderSettings, which holds the RenderSettings that should be used, with maching tests. Lighten up the doc verbosity. Remove locks that had no place. Locking the node doesn't lock the attribute value.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
MayaUSD RenderSettings DG node
EMSUSDC-373
What
Adds a generic, singleton USD settings DG node family to
mayaUsdPlugin, and ships the first concrete instance:UsdDefaultRenderSettings. Each settings node owns an in-memory USD stage that is serialized into the Maya scene file (no external.usdasset).The infrastructure is generic so future settings (e.g. OpenEXR) drop in as a single registration call.
How
UsdSettingsNode— pure DG node (UsdDefaultSettings), locked at creation, name == lookup key. ImplementsProxyStageProvider. Persists root + session layers via two hidden string attrs.UsdSceneSettingsManager— name-keyed populator registry, MObjectHandle-tracked singletons, scene-callback lifecycle (kAfterNew/kAfterSceneReadAndRecordEdits/kBeforeSave), stage observer hook UFE plugs into.sceneRenderSettings.cpp— registers"UsdDefaultRenderSettings"; populator builds the/Renderscope +UsdRenderSettingsprim and publishes the path as stage metadatarenderSettingsPrimPath.UFE
ProxyShapeHierarchy[Handler]→GatewayHierarchy[Handler](file + class rename) so the same hierarchy can serve any Maya-side gateway, not only proxy shapes. No behavioural change for proxy-shape paths.dgNodeToUfePath()+DGPathSeparator = '\0'.Utils::getStage/stagePathgain a settings-node fallback so DG-segment paths resolve andStagesSubject::stageChangedcan map a settings stage back to its UFE path.UsdStageMapstays proxy-shape-only.MayaStagesSubject::observeStage()(idempotent, sweeps stale weak-ptr entries) wires settings-node stages into the same TfNotice flow as proxy-shape stages.isReferencedUsdSettingsNode()so they cannot collide with the local singleton.Other changes
mayaUsd.lib.UsdDefaultRenderSettings.{find, getUsdStage, getDefaultRenderSettingsPrim}.plugin/adsk/plugin/plugin.cpp;