Author Topic: Please find a way to not regenerate a whole scene each frame of a flythrough.  (Read 1711 times)

2017-08-01, 09:53:42

Rhodesy

  • Active Users
  • **
  • Posts: 464
    • View Profile
This has long been a frustration with me. I'm currently rendering out a flythrough. Parsing and geometry takes 5 mins to generate and the frame takes 6 mins to render. Nearly 50% of the rendering time is just loading the scene where only the camera moves! Maybe I've missed a check box somewhere? But if not this is crazy. Is there a way to keep the scene in memory by scanning for the camera info in the scene file each frame and just taking that back to corona?

Perhaps the work done on the IPR can be used to track camera changes whilst keeping the scene in memory? I dont do many flythroughs but everytime I do it feels like going back 10 years. Does this also happen in Max?

Thanks

2017-08-07, 11:08:42
Reply #1

houska

  • Corona Team
  • Active Users
  • ****
  • Posts: 1489
  • Cestmir Houska
    • View Profile
Hello Rhodesy!

Thanks for the suggestion. This is really something that should be done and you're right that the work that we are doing to implement interactive rendering would help us with this improvement too. We will definitely look at it one day. I'm adding it to the list.

2017-08-07, 14:35:09
Reply #2

Rhodesy

  • Active Users
  • **
  • Posts: 464
    • View Profile
If its something you can wrestle away from C4D then please do. Any render speed progress on the corona side is negligible compared to the time wasted by the regeneration of each frame - you would instantly gain a massive speed up in rendertimes without even  touching the corona core.

As a side note is it possible to use a ram holding technique for materials as well to speed up material creation after those bitmaps are loaded for the first time? There might need to be some allocation settings that the user can tweak to partition off an amount of RAM for this. Working with large textures when tweaking materials can be pretty tedious. Or perhaps an easier way would be to have the default material scene / preview ball in the ipr environment that would cache those textures automatically after first load.
« Last Edit: 2017-08-07, 14:40:43 by Rhodesy »

2017-08-07, 17:03:37
Reply #3

houska

  • Corona Team
  • Active Users
  • ****
  • Posts: 1489
  • Cestmir Houska
    • View Profile
Just one idea - how big is your scene? Could you for example post the render statistics after one frame? From what I've been told, the parsing in Max version is optimized such that the need for incremental parsing is not so urgent. It might as well be that we have a bug in C4D in scene parsing...

2017-08-10, 00:21:35
Reply #4

Rhodesy

  • Active Users
  • **
  • Posts: 464
    • View Profile
I dont have that scene to hand just now unfortunately. But I imagine some of it might have been due to pulling all the assets over the network as it was the render nodes that were taking 5/6 mins before any rendering was kicking in on screen. I think the issue still stands that C4D has to regenerate the whole scene each and every frame it would seem which is very inefficient, especially if its just the camera moving. I dont know the workings behind everything and what power you have to interrogate the scene being exported from C4D, but it would look like cinema has to pull all the textures over a network, generate rendertime generators like mograph, surface spread, forester etc and then export the polygons with all shaders assigned. It feels like it does this from scratch every frame no mater what the render engine.

So is there a way to utilise the work you have done with keeping everything in ram and just scanning for changes in the IPR environment and passing that info over to the corona engine / VFB which can quickly load through the changes from one frame to the next and start rendering much quicker? The VFB can already save out images so we can perhaps dispense of the C4D PV entirely for this process as all its doing is hosting the scene and then saving out each frame which could all be handled by corona in its VFB?