Exit
  • Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
  • 한국 커뮤니티
0

Is it possible to access all input pixels in smartFX if the input is offscreen?

Participant ,
Apr 16, 2018 Apr 16, 2018

Hi. To optimise things, I think smartFX discards input pixels if they are outside the output buffer. I need to access all of them regardless if the input is partially offscreen. Is this possible? Non smartFX does this but I'm hoping to do it in smartFX. Thanks!

TOPICS
SDK
754
Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Expert ,
Apr 17, 2018 Apr 17, 2018

isn't it just a matter of declaring your output rect size during prerender?

here are another things to try (i don't remember if these do the trick or

not):

1. in PF_RenderRequest, set "preserve_rgb_of_zero_alpha" to "true".

2. use PF_RenderOutputFlag_RETURNS_EXTRA_PIXELS.

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jul 20, 2021 Jul 20, 2021

Sorry for my (3 year) late reply. If I understand correctly, those two suggestions will expand the output buffer. But the only way to ask smartFX for any input pixels that were out of the comp buffer bounds is to use the params[INPUT]->u.ld instead of checkout_layer_pixels?

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jul 20, 2021 Jul 20, 2021

I should have clarified, I'm applying this to layers that have continuous rasterization on (like text layers). From my experiments, it's not possible to access these layers out-of-bounds, as their out of-bounds-pixel were never drawn by AE in the first place. 

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jul 20, 2021 Jul 20, 2021

Though it seems it is possible, because the transform effect can achieve it (the text is completely off screen, but the transform effect can still display it in the output buffer):

Screen Shot 2021-07-21 at 2.00.15 pm.pngexpand image

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
Jul 20, 2021 Jul 20, 2021
LATEST

Seems it can be done in preRender on the checkout layer:

reqBig.rect.top =
reqBig.rect.left = -1000;
reqBig.rect.right =
reqBig.rect.bottom = 1000;

 

ERR(extra->cb->checkout_layer(in_data->effect_ref,
INPUT,
INPUT,
&reqBig,
in_data->current_time,
in_data->time_step,
in_data->time_scale,
&in_result));

Translate
Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines