Skip to main content
benp1711322
Inspiring
March 17, 2020
Question

"Result rect must not exceed request rect"

  • March 17, 2020
  • 1 reply
  • 1207 views

I'm getting the following error, which seems to be caused when I change Position using the layer properties. 

 

After Effects error: 😧 result rect must not exceed request rect in PF_Cmd_SMART_PRE_RENDER.

 

I can check the request and result rect in Pre_render on the frame which causes the error:

 

--> Result rect: L0, R1920, T0, B1080
--> Request rect: L-193, R2113, T4, B1302

 

This does not seem to show the result rect exceeding the request rec. I create the result rect values to be the same as wdith & height. I don't need to know about pixels that are offscreen. 

 

It's not entirely clear to me what's going on in Smart Render, or what it wants from the numbers in return rect. Does the result rect need to reflect transformations/translation in the layer properties? How is this best acheived? 

 

 

 

 

 

 

 

This topic has been closed for replies.

1 reply

benp1711322
Inspiring
March 17, 2020

Oops... I can see now that the top of the result rect intersects the top of the request rect.

 

 

benp1711322
Inspiring
March 20, 2020

Is it possible to force AE to use the resultRect, to exceed the requestRect in PF_Cmd_SMART_PRE_RENDER?

 

I have made some progress with fully smartifying my effect plugin, which was lacking some things. I can now get my pixels in the right place using outputworld's dimensions and the origin to offset my drawings, plus also checking if I need to rerender using GuidMixInPtr in prerender. But I'm still having some problems getting the plugin to behave properly when the layer has scale transformations.

 

It seems that the request rect gives (more or less) the dimensions of the layer after its transformations (plus extra pixels). 

 

In the case of a layer with a 200% scale, I get the request rect (left, right, top, bottom) 383, 1537, 215, 865. In SmartRender, OutputWorld therefore = 1154 x 650 pixels, with an origin @ 383, 215. So I offset my drawing that amount. The problem with this is that, though these are useful to desribe the geometry of the area I want to render, 1154 x 650 pixels is smaller than the 1920x1080 screen -- AE just scales up the 1154 x 650 image my plugin makes, losing quality. 

 

Similarly, if the layer has a scale of 50%, the request rect is -1345, 3265, -757, 1837, and the outputWorld buffer is 4610 x 2594 pixles, with an origin ~ @ -1345, -757. I can of course send a smaller result rect back to AE, but this only solves the problem for this, and not the other case. 

 

I am presumably missing something. 

 

 

 

 

 

 

 

 

 

benp1711322
Inspiring
March 20, 2020

The answer, is setting flags in PF_PRERENDEROUTPUT to PF_RenderOutputFlag_RETURNS_EXTRA_PIXELS -- I am sure I read the page 100 times.