Skip to main content
Inspiring
September 1, 2016
Question

Pass Through Effect

  • September 1, 2016
  • 1 reply
  • 652 views

Another possibly stupid question...

My plugin has a number of module effects that are used to drive a render effect at the end of the chain. These are all UI-only effects - they don't render anything* but are merely a collection of parameters whose values are collected using AEGP_EffectCallGeneric calls.

* Of course they have to render *something*; Because my plugin is designed to be applied to a footage layer each module effect is required to at least copy the bytes from input to output. Depending on how many modules are used, this could stack up processing time.

My question - is there a way to have the effect do absolutely no rendering at all, and act as a dumb pass-through effect, passing through the source pixels? I tried disabling Smart Render but, not surprisingly this just gave me a black comp. I also thought PF_OutFlag_I_WRITE_INPUT_BUFFER might work, but this isn't valid with SmartFX plugins.

Other examples of such effects are the expression effects.

Thanks.

This topic has been closed for replies.

1 reply

Community Expert
September 1, 2016

i remember staya meka mentioning something of the sorts. i think that

setting the output rect to a 0 sized rect on the pre-render call makes AE

skip the render of that effect.

i'm not 100% sure though.

another trick to consider is making your plug-in an audio only plug-in.

that will surely skip any video rendering.

Inspiring
September 1, 2016

Thanks Shachar, I'll give the 0-sized rect a go. Not sure about the audio only route, as it's something of a hack ;-)

Inspiring
September 1, 2016

The zero-sized rect doesn't work unfortunately.

The audio only hack does work, in that it passes through fine, however I think I'll need to force a re-render every time a parameter is changed upstream, because it's now no longer doing that itself (which is something I'd not considered). As using PF_OutFlag_FORCE_RERENDER is discouraged now, (and there's technically nothing to render anyway), I think this is a bust.

Thanks for the suggestions though!