Jump to content
catchyid

slow viewport performance when loading cached simulation

Recommended Posts

Hi,

I saved a rigid simulation as .bgeo.sc sequence (total frame count is 390, each frame is 34 MB). When I use File node to load the simulation, the viewport becomes very slow (i.e. If I try to rotate the camera, it takes couple seconds to refresh the viewport). When I middle click on the File node it says it has 3,159 points/primitives/vertices/packed Fragments.

To improve the performance:

a-I've checked "Pre-fetch Geometry" on the File node AND set "Cache Frames to 390, HOWEVER this did not fix the problem and I am still getting that slow performance? Actually, there was nothing to indicate that the node has loaded the entire 390 frame, I feel it's like still reading from the disk!?

b-I've tried to use File Cache node instead but it refused to load the sequence, I get an error message "Not enough resources specified", although nothing seems wrong, I just point the node to the same file sequence and enable "Load from Disk".

Note: I have 32GB RAM, and I see only 5GB is used, no swapping, so there is no memory issue here. I think that slow performance is due to reading the geometry frame by frame AND maybe the viewport OpenGL implementation is not optimized (just guessing :) )  

So, is there any way to display the entire simulation geometry and get good viewport performance? is there anyway to improve the viewport interactivity?

Share this post


Link to post
Share on other sites

What is your video hardware?

What I often do when I kick out .bgeo.sc sequences is place an Attribute Delete right before the ROP Output Driver and seriously consider what attributes do I really need to include in this output. Typically you want @P, @v and @Cd. If you know you require others keep them, but you may be able to remove some of that attribute bloat and get the file size per-frame down a bit. A smaller file size should translate into better performance because of a faster load.

Share this post


Link to post
Share on other sites

Hi Atom, 

It's AMD Radeon R9 270/ 2GB Memory. 

When I restarted Houdini I noticed that the viewport performance was okay: I only experience a delay ( around a second or so) when I display a new frame, but once the geometry is loaded,  it's possible to rotate and zoom very quickly. I think the problem I experienced before might have been related to the rendering engine that was running on the background and it's what caused that performance hit.

BTW, I actually removed all attributes, except for P and Cd. Just out of curiosity, you mentioned I should keep V, why is that?

I wonder if the delay when scrubbing the animation (i.e. when loading a new frame) is due to disk I/O or OpenGL. I have solid state hard disk so I don't think this is the reason, but also Games have way higher poly count and they run nicely! If there is a way/node to cache the entire animation sequence this would help! Or maybe I should store the scene as Alembic and see how Houdini (or even Maya) will load behave. Also, I have packed geometry, I am not sure if this is related to the problem, I've tried to unpack it and store it to disk but Houdini crashes due to memory leaks! i.e. I run out of memory quickly when I unpack!

Anyways, will keep you posted if I was able to nail down the problem :)

Share this post


Link to post
Share on other sites

Not sure what else to offer up. I only mention keeping V because it is useful for motion blur. You can always drop down a trail and recompute if you find you need it later and have discarded it. The help seems to indicate that .bgeo.sc is the fastest file format but I have not done a lot of work with packed primitives or Alembic yet.

Any time my individual files in a .bgeo.sc sequence get larger than 7-10Mb, per-frame, I start to experience slow down as well. In my setups I try to keep any scene that generates a cache in a separate file then I have another scene, I call the render stage, which is essentially a series of File nodes that reads all my exported sequences. I place my cameras and lights in this scene and also do my material work in the stage as well. This is the most optimized performance I have been able to get with Houdini. But I still don't experience any real-time playback using Houdini except in the most basic of animations.

Edited by Atom
  • Like 1

Share this post


Link to post
Share on other sites

Thanks Atom. At least I know I am not doing something wrong :)I think the problem is that I've converted VDB volumes into geometrical mesh which resulted in ~700K points, ~2M verties, ~800K primitives and this seems hard to handle. 

Share this post


Link to post
Share on other sites
On 09/11/2016 at 7:10 PM, Atom said:

Not sure what else to offer up. I only mention keeping V because it is useful for motion blur. You can always drop down a trail and recompute if you find you need it later and have discarded it. The help seems to indicate that .bgeo.sc is the fastest file format but I have not done a lot of work with packed primitives or Alembic yet.

Any time my individual files in a .bgeo.sc sequence get larger than 7-10Mb, per-frame, I start to experience slow down as well. In my setups I try to keep any scene that generates a cache in a separate file then I have another scene, I call the render stage, which is essentially a series of File nodes that reads all my exported sequences. I place my cameras and lights in this scene and also do my material work in the stage as well. This is the most optimized performance I have been able to get with Houdini. But I still don't experience any real-time playback using Houdini except in the most basic of animations.

Hey Atom, 

 

I was wondering if you could supply an example of your scene files where you split out your caches to a new scene and light and render in there. Are you essentially treating it like your own production pipeline and so you are exporting your caches as an FX artist in one scene and then you send it to your new scene where you will work on it as a Lighting Artist exclusively as if you have sent it to someone else to work on?

Share this post


Link to post
Share on other sites

Am still new to Houdini but I found your thread when experiencing viewport lag too and found something that fixed my issue at least.

I disabled Displacement textures in the viewport which immediately improved performance to near real-time. Hope it helps :)

Thanks for your suggestions on other improvements. I feel like the ROP Export and File load system is a bit iffy too, not really giving me anything. Maybe I am just using it wrong >.<

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×