Author Topic: Why does an empty scene renders slow?  (Read 3452 times)

2017-05-02, 09:20:48

Nupsi

  • Active Users
  • **
  • Posts: 58
    • View Profile
Hi,

I´m testing 1.6RC2 right now and wonder why an empty scene after a fresh 3ds max (2015) start renders slow? There are no objects or lights at all in the scene, but setting the output size to 4096x4096 Corona needs 20 sec. to render 10 passes. And it even gets worse when adding some render elements which makes Corona take 30 sec. to render 10 empty passes?!

Is this a normal behavior? It seems that Corona renders the whole scene, even when there is nothing to render?!

Thanks in advance,
Nupsi

2017-05-02, 21:05:12
Reply #1

JoeVallard

  • Active Users
  • **
  • Posts: 131
    • View Profile
    • Joe Vallard
Quick test of an empty scene at different resolutions.
i7 3770, 16GB

Resolution, Time, Memory Used
256x256 = 0:00 1116.4MB
512x512 = 0:00 1201.0MB
1024x1024 = 0:03 1237.8MB
2048x2048 = 0:12 1465.9MB
4096x4096 = 0:51 2378.8MB
6144x6144 = 2:02 3875.8MB
8192x8192 = 3:46 6005.1MB

At 256-512 renders instantly finished. But once you start getting higher in resolution it takes more and more memory, your adding alot of pixels (even if they are all black ones) once you get passed 2048. Of course Corona is gonna render the entire scene even if its empty, i'm not sure why you would want to do it different.

I added a 50k poly objected and a corona sky to the environment and rendered at 2048, it added 2 secs to the render time from above.

2017-05-03, 00:10:33
Reply #2

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
this comes down to about 8 000 000 pixels per second, which is quite acceptable performance. There is some overhead per-pixel, but it is totally acceptable - usually Corona renders at most about 100 000 pixels per second. So that comes down to about 1% overhead. We could optimize this case, but optimizing something that will add 1% performance at most is not that good idea... ;)
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2017-05-03, 12:58:49
Reply #3

Nupsi

  • Active Users
  • **
  • Posts: 58
    • View Profile
Hi,

and thanks for the reply :-)

I know Corona is a biased renderer and hardly to compare to non-biased renderer. But this behavior becomes really problematic when rendering product zoom animations in high resolution where the mesh takes most of the time only 10% of the whole image. The region selection speeds up the rendering a lot, and we´re talking here about 30-50 times faster, but that´s not usable for animations. And changing the region every frame by hand for hundreds of frames is not working either. And render farms do not support region selections, so they have to render the whole image which increases the costs also a lot.

What I don´t understand is the following: Rendering a single object in high res without region selection takes almost forever compared to the render time with region selection, but the rendered object does not look any different then when it was rendered without region selection. And here is my question: Why does Corona renders the whole screen, even when there is nothing to be rendered and the outcome is´nt any different? Even rendering only the selected object does not make any difference?!

Don´t get me wrong, I´m not complaining about Corona at all! I just think there is still room for improvement. And increase the render speed in such situations about 30-50 times seems to me worth the time :-)

Best regards,
Nupsi

2017-05-03, 13:22:42
Reply #4

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
What I don´t understand is the following: Rendering a single object in high res without region selection takes almost forever compared to the render time with region selection, but the rendered object does not look any different then when it was rendered without region selection. And here is my question: Why does Corona renders the whole screen, even when there is nothing to be rendered and the outcome is´nt any different? Even rendering only the selected object does not make any difference?!
because you dont know beforehand if there is really nothing - there could be a sub-pixel geometry or environment map detail, some volumetrics, ...  so you need to try it anyways
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)

2017-05-04, 10:38:35
Reply #5

sebastian___

  • Active Users
  • **
  • Posts: 197
    • View Profile
I stumbled on that scenario before. Needing to render a very small object/objects in animation, but I still need to render the entire screen to composite well after.
A solution would be a way to animate the render region.
An even better solution would be to animate an object as a mask, and choose to render "selected object" or something and the object is placed behind or made invisible, so only those other objects will be rendered.
I think other renderers have a similar option. Is this workflow possible with Corona ?

2017-05-04, 10:40:48
Reply #6

Ondra

  • Administrator
  • Active Users
  • *****
  • Posts: 9048
  • Turning coffee to features since 2009
    • View Profile
I can try to optimize this when I have some time, but as I explained before, it is pretty low priority thing at the moment
Rendering is magic.How to get minidumps for crashed/frozen 3ds Max | Sorry for short replies, brief responses = more time to develop Corona ;)