Making a vj board for the first time and have video effects running with a level top right after. Buttons on the ui part bring up the opacity of the video effect. Wondering if there is a way to do this but without each effect running in the background all the time. Not familiar enough with coding and hoping for a top render solution. My processing speed is struggling because of how I set things up.
Might be good to look at why operators are cooking / processing their data (explanation in the docs: Cook - Derivative) - examples are:
- the output of an operator is being displayed somewhere on screen
- the output of an operator is being used by some other operator that is being used for what is on the screen
So when using a Level TOP alone to enable or disable an effect, the whole chain will always be cooking as the Level TOP is processing the incoming data and it’s result is being composited to the final output.
Often times what makes sense is to use a Switch TOP in conjunction with a Level TOP and switch to a Constant TOP that is not cooking when the opacity of a Level TOP is set to 0.
Additionally collapsing effects into Base COMPs and adding custom parameters has the benefit that you can leave TOP viewers enabled as when you are “not looking at them” - aka you are outside the network, they are not displayed and not used.
An example of a similar workflow can be found in some of the ImageFilters in the Palette (for example rgbaBlur). Most of them have a
Dry / Wet Mix parameter which controls a
wetDryMix component inside. This component takes 2 inputs:
- first input is the passthrough of the unaffected texture
- the second input has the effect applied
Inside it you can see that it uses a Cross TOP to blend between these 2 inputs and if it is only showing the passthrough, a Switch TOP will switch to it.
Now when outside of this component you can compare cooking times and see how lots of the operators used by the effect stop cooking once the parameter is set to Dry.
There are exceptions where cooking is desired even if the effect is not being used: examples would be Feedback operations or effects where Caches are used as these depend on previous frames.
There are other ways to go about this, this is just an initial pointer.
Hope this helps a bit
That totally saved my bacon. Thank you! Everything worked and aside from the heavy processing time required for some effects, I was able to overlay quite a few together before experiencing any lag.
the component you’re referring to really irks my OCD because the channel, page, and functionality all reflect the way it should be called, dryWetMix, but instead the component is called wetDryMix. Is this a residual bad name that is now everywhere so that it will never change, or could those be updated to dryWetMix someday maybe pretty please?
this is renamed in an upcoming release.