-
Notifications
You must be signed in to change notification settings - Fork 196
SG-41316: Add Dissolve blend composite mode to stackIPNode with UI controls #940
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
SG-41316: Add Dissolve blend composite mode to stackIPNode with UI controls #940
Conversation
This commit implements a new dissolve blend composite mode for OpenRV's stack compositor with full UI integration and real-time controls. Features: - Dissolve blend mode in StackIPNode for 2-input compositing - GPU shader implementation (Dissolve2.glsl) with configurable dissolve amount - UI slider and text input controls in Session Manager - Real-time dissolve amount adjustment (0.0 to 1.0 range) - Immediate UI updates when switching between composite modes Technical Implementation: - StackIPNode.cpp: Added dissolve mode support with m_dissolveAmount property - ShaderCommon.cpp: Implemented newDissolveBlend() function for GPU shader management - Dissolve2.glsl: GLSL shader for hardware-accelerated dissolve blending - composite.ui: Added QSlider and QLineEdit controls for dissolve amount - Composite_edit_mode.mu: Enhanced with slider integration and UI synchronization - CMakeLists.txt: Updated build configuration for dissolve shader compilation Tested on macOS with existing OpenRV build system. UI controls properly show/hide when switching composite modes, and dissolve blending works correctly with 2-input stacks. Signed-off-by: nigel sumner <[email protected]>
pbergeron-adsk
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks OK to me, needs to be view tested.
| F = blend(size, name, | ||
| overShaders[size - 2]); //*2_glsl is at position 0 | ||
| break; | ||
| // TODO: dissolve |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @nigelsumner for adding the dissolve !
(I checked in the git history of the original RV code base and this comment dates back from 13 years ago)
|
|
||
| IntProperty* autoSizeProperty() const { return m_autoSize; } | ||
|
|
||
| // float dissolveAmount() const { return m_dissolveAmount->front(); } |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Detail: Please remove if not used: we prefer not to leave any deadcode if possible unless you think it might be useful.
| maya_tools.mu | ||
| # See rvnuke_mode.mu.in | ||
| rvnuke_mode.mu | ||
| rvnuke_mode.musrc/plugins/rv-packages/session_manager/composite_ui.py |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe there is a newline missing after rvnuke_mode.mu and before composite_ui.py.
Also: where are those *_ui.py files coming from ?
bernie-laberge
left a comment
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thank you @nigelsumner for this great contribution !
Add dissolve blend composite mode with UI controls
This PR implements a new dissolve blend composite mode for OpenRV's stack compositor with full UI integration and real-time controls.
OpenRV_dissolveBlend.mov
Features Added
Dissolve2.glsl) with configurable amountTechnical Implementation
Core Implementation
StackIPNode.cpp: Added dissolve mode support withm_dissolveAmountpropertyStackIPNode.h: Added property declaration for dissolve amount controlShaderCommon.cpp/.h: ImplementednewDissolveBlend()function for GPU shader managementGPU Shaders
Dissolve2.glsl: GLSL shader for hardware-accelerated dissolve blendingUI Integration
composite.ui: AddedQSliderandQLineEditcontrols for dissolve amountComposite_edit_mode.mu: Enhanced with slider integration and UI synchronizationBuild System
CMakeLists.txt: Updated build configuration for dissolve shader compilationTesting
Usage