upper limit to dynamic memory?

I am trying to render shit loads of vrayproxies, using the universal method (so LC for secondary bounces). I set the default geometry type to dynamic, and use the dynamic memory limit to control how much ram i want it to use for dynamic geometry.

The problem is, vray just uses up all the available ram, when it runs out and starts paging to disk, cpu usage goes down to 5-10%. When i set the dynamic memory limit to 4000mb, it does the ‘unloading geometry’ thing as it should do, however when set it to say 6000mb, it just ignores it and uses all the ram available to it.

So i guess my question is: Is there a max limit that the dynamic memory limit can be set to?

(I’m aware that LC might not be the best way to render huge numbers of proxies)
(I’m using vista x64, on a mac pro with 12gb ram)

Thanks

I’m busy with a scene where I have 8 or 9 different proxies (trees, bushes, long grass and small stones or rocks) instanced a couple thousand times (using particles and script) to give me about 150 000 proxies total. I’m rendering with dynamic memory on 4096 and brute force for both primary and secondary. In my animation with my system I’m getting about 30minutes render time for 1st frame (due to forever transforming vertices), but thereafter I get between 12 and 15 minutes per frame render time. My system is Q9700, 8GB Ram, Vista 64-bit, Max 2009, VRay 1.5 SP2.

I don’t think there is a limit for dynamic memory. Only what you have available. If you have 12GB and you only have max open and not running other programs you could probably set it to 10GB. Leave 2gb or even 1gb for Windows Vista to do its thing in the background.

thanks for you reply DVP3D,

I’m working on a scene with vrayproxied tall grass (720 polys each x 20,000 of them) and flowers and trees.. in all there is something like 20 million polys. I’m using the vrayscatter plugin (otherwise I’d still be scattering the proxies!)

The weird thing is, when I set the dynamic memory limit to 4000mb, it correctly limits memory usage to 4000mb (ish) when i set it to 6000mb, it ignores it and uses all of my 12gb.

I did some more tests this morning:

4000mb limit - uses approx 4000mb
4500mb limit - uses approx 4500mb
4700mb limit - uses approx 4700mb
4900mb limit - uses approx 10000mb
5000mb limit - uses all available memory of the 12gb I have
6000mb limit - uses all available memory of the 12gb I have

so i’m just wondering if this is a bug , or expected behaviour?

EDIT: task manager info attached for 4000mb limit and 4900mb limit


Again, I really think all these settings should be explained better, and maybe even have a small calculator built in that would automatically set these settings to match the scene AND the system rendering it. I believe that would optimize vray and decrease render times.

Yes it would be nice to understand it better..

In this scene I have been playing about with (just messin!) I seemed to hit 4999mb as the ‘magic’ number where vray wouldn’t go nuts with ram usage (it used about double that):

that was something like 20,000 clumps of proxied grass (120kb, 720polys each), 500 odd birches (xfrog) and about 500 xfrog flowers.

It took about 8 hrs to render using Irradiance map and LC, of which probably 5hrs was ‘unloading geometry’. I also tried brute force for both bounces but that was going to take way longer.

I’d really like to know what the best approach for this kind of scene is. I’m starting to think a HDR mapped dome light with no GI is the only way.

scene looks awesome!
the light coming through the tress, grass, plants, … . .
wow!
8 hours is a long render, but it looks great.

I would also love to hear the best GI setup for this type of thing. I did a scene with grass that was no where near that level of instancing and just gave up on GI and just used a dome and then direct light cheats for fill and bounces. It was okay, but GI would be better I think.

b

I am currently rendering very massive scenes with displaced terrains, humongous proxy/polycounts, and a heckload of static, animated geometry to boot.
Domelight, and at time moblur, and NEVER run into a single issue (well, with proxies/displacement and dyn mem limit, at least :stuck_out_tongue: ) with a few thoushands frames rendered.
Never ran into any of this stuff.
Of course, my proxies are individual proxy instances, scattered trough particles and scripting, and then xrefed.
Maybe it’s from the side of the plugin code?
If not, then it’s likely fixed in the newer builds.
If not, i have been graced by unusual good luck :stuck_out_tongue:

Well I think that’s what he’s saying/asking. The answer seems to be that it’s only really possible with the Domelight and not GI (definately not LC!).

It would be good to know if others who use VRayScatter do this as well!

I might try recreating it without vrayscatter then.. just to be sure…

well, sorry, i gave something for granted here.
No, of course an LC would degrade proxies performance.
It’s 100 bounces of GI.
Vray is FORCED to load anything an LC ray sees as the ray sees it.
IE.: you can proxy the whole scene out (or use dynamic bsp), and insead of being BSPed into the static pool (ie. sit in ram BEFORE the render starts) it will be loaded AS the render starts (likely the first ray in the first bucket, for LC, or thereaout).
A dmc (primary, 3 secondaries) is a lot more tolerant, by design, than the LC itself.
And even more so, a domelight, which doesn’t take in account the othe obects’ contrbution as much (or a one boune dmc gi).

Out of curiosity: what happens when you set dynamic memory usage to AUTO and the limit to either 4000 or 6000MB ? I normally render 40000-80000 large (500K + poly) proxies inside GroundWiz using IRR-LC (Adaptive DMC AA, no filtering) without any problems !! I also see that it is not only the total number of instances that defines memory usage but also the number of unique base objects/proxies used !!

Auto mode is a hybrid between a static and a dynamic BSP, the difference is that VRay chooses what to use as static geometry and what to “proxy” out.
So in the case of proxies themselves, it woudn’t make a difference.
It could make a BIG difference if you had some poly-heavy, normal max mesh in the scene, and VRay decided to assign that to the dynamic pool, effectively lowering ram usage (in the right conditions, ofc) but increasing rendertimes. I always set it to static, so it’s me choosing what goes in Ram to stay there and what moves in and out of it.

You’re very right for the proxies: instances come virtually for free, ram-wise.
It’s the base models that make up the bulk of RAM usage.
So, 1 tree scattered 1000 times is a lot easier on RAM usage than 10 trees present only once.

Yes, I know, but what puzzles me that there is something weird going on when setting the limit higher then 4950 as I have read in earlier posts, which results in excessive memory use ! I wonder where this originates from: Max, VRay, VRayScatter…or Windows ?

exactly.
There’s potentialy SO much going on in a scene, that without access to it, and proper troubeshooting, it’s nigh impossible to know what’s going on.
I can only report that the stuff i’m dealing with right now has none of these issues, and that from what’s inferrable from the posts, the only difference is in the methods (ie. xrefed, hand scattered proxies versus the plugin).
But is that completely true?
There may be a hell of a lot more going on, without anyone the wiser.

As usual, one learns from one’s mistakes. I thought I better share what I did wrong with you here!

The strange memory limit thing remains, but I at least discovered why a relatively simple scene with only 3 different proxies (image above) was using so much memory. When I made the grass, i used advanced painter to scatter 3 different blades of grass over a small plane as instances, I then made a vrayproxy of it. Today I had the idea of going back to the grass and collapsing it all to one object, no instances (and a reset xform for good measure), and making a new vrayproxy of it.

Of course, it all works as it should now: the scene uses about 2gb of memory max instead of wanting more than 12gb.