BlendLuxCore Animation Improvements

Discussion related to the LuxCore functionality, implementations and API.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

BlendLuxCore Animation Improvements

Post by Dade »

Sharlybg wrote: Thu Dec 28, 2017 6:56 pm Hi ! just to continue here the nakaging capsule WIP. I also think an animation with this will be nice for a demoreel ;) something like this fstorm render project:

https://www.youtube.com/watch?v=oFzt-3sRExI
I have some interesting idea for animations and collection of scenes. It is already possible, with the latest sources, to save all the information required for a rendering in a single file. This is very handy to move the file around and doing the rendering on different PCs, etc. Indeed, this can be used for animations too however every single frame scene file will include a copy of shared meshes and image maps. This is a not trivial amount of data to store and move across networks.
My idea is to add a cache across all frame scene files to have every unique asset (i.e. mesh or image map) stored only once. This would be effectively a LuxCore animation file format and it would be very compact and easy to move across networks. I would than develop a tool to render the animation/collection across multi PC and/or server instances on AWS, Google Cloud, etc. Using spot instances on Cloud services can be a very cheap and fast way to render animations.

I'm looking for a test project where to try this idea (however I have yet to develop a lot of code so isn't going to happen very soon).

P.S. the linked animation was rendered with 7 x 1080TI. I haven't done the math but I have the strong feeling that using spot instances can be far more cost effective and/or faster (i.e. there is no upper bound, more you spend and faster you render).
Support LuxCoreRender project with salts and bounties
User avatar
Sharlybg
Donor
Donor
Posts: 3101
Joined: Mon Dec 04, 2017 10:11 pm
Location: Ivory Coast

Re: nakaging capsule

Post by Sharlybg »

My idea is to add a cache across all frame scene files to have every unique asset (i.e. mesh or image map) stored only once. This would be effectively a LuxCore animation file format and it would be very compact and easy to move across networks. I would than develop a tool to render the animation/collection across multi PC and/or server instances on AWS, Google Cloud, etc. Using spot instances on Cloud services can be a very cheap and fast way to render animations.
I'm looking for a test project where to try this idea (however I have yet to develop a lot of code so isn't going to happen very soon).
Thanks you for let me discover Amazon EC2.I just wonder how fast it could be.they say it is 90% cost effecient than power on demand service. the ability to have a light file format for rendering still and animation is very clever.But as you already said we have to go step by step.I've think about something like this when i discover how bitcoin pool mining work. It is a really nice idea. This give some idea. With a feature like that luxcore development team could have own project at a lower scale like blenderfoundation (sintel/goosberry) and any user could help by connecting it own Pcs to a project he want help to render.
Support LuxCoreRender project with salts and bounties

Portfolio : https://www.behance.net/DRAVIA
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: nakaging capsule

Post by Dade »

Sharlybg wrote: Fri Dec 29, 2017 3:23 pm Thanks you for let me discover Amazon EC2.I just wonder how fast it could be.they say it is 90% cost effecient than power on demand service.
Yup, they can be very cost effective in general and, in our case, we can use spot instances with their up to 90% discount: https://aws.amazon.com/ec2/spot/pricing/?nc1=h_ls

For about 0.5$/hour you get a 40cores Xeon with 160GB (!) of ram. The bigger instance available has 96cores and 384GB of ram.
Sharlybg wrote: Fri Dec 29, 2017 3:23 pmthe ability to have a light file format for rendering still and animation is very clever.But as you already said we have to go step by step.I've think about something like this when i discover how bitcoin pool mining work. It is a really nice idea. This give some idea. With a feature like that luxcore development team could have own project at a lower scale like blenderfoundation (sintel/goosberry) and any user could help by connecting it own Pcs to a project he want help to render.
Yes, I would like to have some kind of mini-project/animation in the future for testing the software and showing the capabilities.
Support LuxCoreRender project with salts and bounties
blibli
Posts: 29
Joined: Thu Jan 18, 2018 2:52 pm

Re: nakaging capsule

Post by blibli »

Dade wrote: Fri Dec 29, 2017 12:51 pm I have some interesting idea for animations and collection of scenes. It is already possible, with the latest sources, to save all the information required for a rendering in a single file. This is very handy to move the file around and doing the rendering on different PCs, etc. Indeed, this can be used for animations too however every single frame scene file will include a copy of shared meshes and image maps. This is a not trivial amount of data to store and move across networks.
My idea is to add a cache across all frame scene files to have every unique asset (i.e. mesh or image map) stored only once. This would be effectively a LuxCore animation file format and it would be very compact and easy to move across networks. I would than develop a tool to render the animation/collection across multi PC and/or server instances on AWS, Google Cloud, etc. Using spot instances on Cloud services can be a very cheap and fast way to render animations.
That would definitely be a big plus compared to other renderer! Even more if fly-through animations are made with only one scene preparation and then only pure rendering, like in viewport.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: nakaging capsule

Post by Dade »

blibli wrote: Sat Jan 20, 2018 5:52 pm That would definitely be a big plus compared to other renderer! Even more if fly-through animations are made with only one scene preparation and then only pure rendering, like in viewport.
BlendLuxCore could have already the potential do this: something like a special mode to export the scene at frame 0 than update only the camera with position of frame 0 to n. Or just automatically detect that the scene hasn't changed and update only the camera, a kind of optimized path for camera-only animations, no idea of the amount of work required :?:

Side note: a crazy idea, BlendLuxCore has the potential, not only to generate a standalone-all-including scene files but also the python source code for doing the rendering of an animation ... this is border line to something similar to a Blender Game Engine, ok I'm derailing a bit :mrgreen:
Support LuxCoreRender project with salts and bounties
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: nakaging capsule

Post by B.Y.O.B. »

Dade wrote: Sat Jan 20, 2018 6:07 pm BlendLuxCore could have already the potential do this: something like a special mode to export the scene at frame 0 than update only the camera with position of frame 0 to n. Or just automatically detect that the scene hasn't changed and update only the camera, a kind of optimized path for camera-only animations, no idea of the amount of work required
I have attempted to implement something like this in the past, it's still in some mercurial branch in LuxBlend. It was not exactly trivial, but a lot has changed in the new implementation. When we are feature-complete we can start the work on cool stuff like this.
Dade wrote: Sat Jan 20, 2018 6:07 pm Side note: a crazy idea, BlendLuxCore has the potential, not only to generate a standalone-all-including scene files but also the python source code for doing the rendering of an animation ...
Interesting idea.
It would eliminate the (V)RAM usage of Blender.
blibli
Posts: 29
Joined: Thu Jan 18, 2018 2:52 pm

Re: nakaging capsule

Post by blibli »

B.Y.O.B. wrote: Sat Jan 20, 2018 6:55 pm
Dade wrote: Sat Jan 20, 2018 6:07 pm BlendLuxCore could have already the potential do this: something like a special mode to export the scene at frame 0 than update only the camera with position of frame 0 to n. Or just automatically detect that the scene hasn't changed and update only the camera, a kind of optimized path for camera-only animations, no idea of the amount of work required
I have attempted to implement something like this in the past, it's still in some mercurial branch in LuxBlend. It was not exactly trivial, but a lot has changed in the new implementation. When we are feature-complete we can start the work on cool stuff like this.
Isn't this already implemented for viewport? I mean, what I describe is viewport with user defined resolution and file output instead of frame buffer output?
B.Y.O.B. wrote: Sat Jan 20, 2018 6:55 pm
Dade wrote: Sat Jan 20, 2018 6:07 pm Side note: a crazy idea, BlendLuxCore has the potential, not only to generate a standalone-all-including scene files but also the python source code for doing the rendering of an animation ...
Interesting idea.
It would eliminate the (V)RAM usage of Blender.
Yep, would be awesome :) It would definetly make a lot of noise together with the "1-click" cloud rendering.
User avatar
B.Y.O.B.
Developer
Developer
Posts: 4146
Joined: Mon Dec 04, 2017 10:08 pm
Location: Germany
Contact:

Re: nakaging capsule

Post by B.Y.O.B. »

blibli wrote: Sun Jan 21, 2018 7:26 pm Isn't this already implemented for viewport?
Currently if you switch to the next frame, the whole session will be stopped, destroyed, exported from scratch and a new session is started.
blibli
Posts: 29
Joined: Thu Jan 18, 2018 2:52 pm

Re: nakaging capsule

Post by blibli »

That's the way Blender works and why Cycles also doesn't has this function yet, but I was speaking about the possible standalone py script Dade mentioned. It would remove all Blender's limitations, reduce memory footprint as you said and would be much easier to implement I thing.
User avatar
Dade
Developer
Developer
Posts: 5672
Joined: Mon Dec 04, 2017 8:36 pm
Location: Italy

Re: nakaging capsule

Post by Dade »

blibli wrote: Mon Jan 22, 2018 6:47 am That's the way Blender works and why Cycles also doesn't has this function yet, but I was speaking about the possible standalone py script Dade mentioned. It would remove all Blender's limitations, reduce memory footprint as you said and would be much easier to implement I thing.
We could even use a trick to change nearly nothing: the scene could be exported with a multi-segment motion blur camera with all camera movement segments of the animation. Rendering a single frame would be than a matter only to set the camera shutter open/close to the begin/end time of the single frame :idea:

It would require only 2 things:

1) a support in LuxCoreUI to render a single frame and/or, may be, use an RT render engine to preview the animation;

2) an option in BlendLuxCore FILESAVER support to export all the camera movements instead of only the current frame.

I'm not sure how much this would be used and if it is worth investing time on it but it is interesting. Fly trough animations have many applications (ArchiViz, etc.).
Support LuxCoreRender project with salts and bounties
Post Reply