“This is the 13th day of my participation in the November Gwen Challenge. See details: The Last Gwen Challenge 2021”.
Participate in the 29th article of the campaign
The body of the
In this life
SmartFX solves this problem by reversing the sequence of calls. Effect is told how much output it needs and must explicitly ask the host for the input it needs. The rendering process is divided into two parts: pre-rendering and rendering.
During pre-rendering, effect describes the input pixel data it needs; This required input can vary based on anything you like (for example, non-input layer parameters, non-layer parameters, information from in_data, Settings in sequence data, etc.) . The effect must also return the extent of the result output, which may be less than the size of the request if there are empty pixels in the portion of the layer request.
In the rendering phase, Effect can only retrieve pixels that it has previously requested. This two-channel (Pass) approach helps with many important optimizations. For example, an effect that multiplies one input with another or masks may find that its first input is not needed at all if the mask does not intersect the first input. Some important optimizations are also performed internally in After Effects to ensure as little copy of the image buffer as possible, and these optimizations are only possible once the host knows the buffer size and all the inputs and outputs.
Like AEGP, the SmartFX plugin is not uninstalled by After Effects.
The Way Things Are Now
SmartFX solves this problem by reversing the calling sequence. The effect is told how much of its output is required, and must explicitly ask the host for the inputs it needs. The render process is split into two parts: pre-render and render.
During pre-render, the effect describes the input pixel data it needs; this necessary input can vary based on anything you like (non-input layer parameters, non-layer parameters, Information from in_data, Settings in sequence data… . The effect must also return the extent of the resulting output, which may be smaller than the requested size if there are empty pixels in the requested portion of the layer.
During the render stage, the effect can only retrieve pixels that it has previously requested. This two-pass approach facilitates many important optimizations. For example, an effect which multiplies or mattes one input against another might discover that its first input is not needed at all, if the mask does not intersect it. There are also important optimizations that are performed internally by After Effects to ensure that image buffers are copied as little as possible, and these optimizations are only possible after the host knows the buffer sizes and for all inputs and outputs.
Like AEGPs, SmartFX plug-ins are never unloaded by After Effects.