Proxies and RAM ?

hmmm…

I could find out, that if you make a instance, they disappear, but render.
Weired… but if you use Reference, you can see all of them in the viewport.

But it’s weired: If you download my scene file i’ve uploaded for you, and you make instances, they don’t disappear - you can see all of them.

In another scene file, they disappear - don’t really know what’s the reason for, but would be really good to know.

By the way:
is there a big difference, between instance and reference ?

here is the result testing the proxies compared with the regular mesh.

1st: regular mesh

2nd: regular mesh, using 30 instances of them:

3rd: The Proxy render, including 170 clocks

thx,
bernhard

Basically a instance is exactly the same as the original meaning if you change one you change both at the same time, but a reference is a one way link so if you alter the reference it doesn’t change the original but changing the original alters the reference. For vrayproxies I don’t imagine it makes any difference though, since you can’t do much to the proxies beyond positioning them anyway. But there could be some conflicts… haven’t tested it.

…that’s a LOT of clocks!

dude.. one clock is enough to tell the time..

/Thomas

You can also try to render with the “Dynamic” memory option instead of proxy, it will save a lot of memory on instances and might be somewhat faster.

Best regards,

Vlado

hmmm…

Thank you guys for all your replies.

@vlado:
Dynamic memory option ? :sweat_smile: I didn’t hear that before. How can I use it, where can I find it, and how effective is it compared to vrayproxies ?

That’s really very interesting. :idea:

@Shimakaze:
Using the references.. well, i’ve made a quick test using references instead of instances. Couldn’t find any issue yet - seems to be it works as well.

@suurland:
Thomas, hey , nice to hear from you… haha, obviously there are really some clocks to get rid of… :smile: but never trust one clock especially you render with vray proxies, for getting some better scene statics datas … :lol:

thank you for every little help,
bernhard

Re: hmmm…

In the “V-Ray::System” rollout in the Render Scene dialog, there is a parameter “Default geometry”, which is typically set to “Static”. If you switch this to the other alternative, “Dynamic”, V-Ray will treat each mesh as sort of a proxy, but instead of reading it from a file, will just take it from the 3dsmax scene. The dynamic meshes take a lot less memory, and also instances are very cheap (similar to instances of proxy objects). The drawback is somewhat slower rendering. Ideally it would have been best for the user to choose which meshes are dynamic and which not, but this is not yet implemented.

Best regards,
Vlado

Vlado, isnt a proxy basically like choosing a specific mesh to be “dynamic”

Or would a dynamic mesh (not proxied) be quicker than its proxied equivilent.

From what I understood, proxy was for specifically choosing objects to be rendering in dynamic memory and switching to dynamic memory is effectivly like putting the whole scene into a proxy of sorts.

So if we were able to specific which objects rendered with dynamic memory wouldnt that make proxy obselete?

Not exactly, although it is similar. The proxy is read from disk, in chunks, while a dynamic mesh is all in RAM. However, if the entire proxy is loaded, it will probably take a similar amount of RAM as a dynamic mesh.

Or would a dynamic mesh (not proxied) be quicker than its proxied equivilent.They are similar, although a dynamic mesh is expected to be a little faster than a proxy (since there is more book-keeping connected with proxies).

From what I understood, proxy was for specifically choosing objects to be rendering in dynamic memory and switching to dynamic memory is effectivly like putting the whole scene into a proxy of sorts.Well, the difference is in the disk file component. Also, proxies can be loaded in chunks (only portion of the mesh), while a dynamic mesh is all in memory. Further on, with dynamic memory, each object becomes a separate proxy-like thing, rather than treating the scene as a whole.

So if we were able to specific which objects rendered with dynamic memory wouldnt that make proxy obselete?Not quite. The dynamic memory option still must keep all meshes in RAM (with instances optimized, of course). Proxies are read from disk. That means that proxies allow you to render larger amounts of unique geometry. And they are also portable across different V-Ray versions (e.g. 3ds Max and Maya).

Anyways, I think I could do the following: add another Geometry mode “Automatic”, which would make an estimate of how much memory a mesh will take along with its instances. If this is above a certain threshold, it will create a dynamic mesh for it. Otherwise, it will create static geometry. Along with an option to explicitly specify the geometry type for a mesh, it should make the workflow somewhat easier, I think.

Best regards,
Vlado

that would be gr8 Vlado!
looking forward!
:wink:

Right got it. So basically ones disk based and the other ram based.
Dynamic memory will use more ram (but still less ram than static) and it will be slightly quicker than proxy. However proxy uses less ram than dynamic but is slightly slower due to increased overheads.

Kind like Half a dozen of one, and six of the other. Very similar, yes?

But they are both there to lessen the ram usage.

The automatic mode you are talking about sounds like a pretty good trade off. And will work better in most cases. As it sounds like there might end up being too many options with basically little difference.

Thanks Vlado :smile:

Proxies also has the (in my opinion) huge advantage of not slowing down max while working, because as far as max is concerned it’s just a helper object (assuming you don’t use the display mesh functionality). If you instance the original meshes then Max still has to display them in the viewports even if it doesn’t need to use much extra ram. Well, I suppose you could display them as bounding boxes but that’s no fun!

The automatic mode does sound like a really good idea though. But I’ll still be using proxies :wink:

Anyways, I think I could do the following: add another Geometry mode “Automatic”, which would make an estimate of how much memory a mesh will take along with its instances. If this is above a certain threshold, it will create a dynamic mesh for it. Otherwise, it will create static geometry. Along with an option to explicitly specify the geometry type for a mesh, it should make the workflow somewhat easier, I think.

Another feature that might work, is a check box in the VRay Object Properties so that we can tell VRay that an object is to be treated as dynamic without having to make a VRay Proxy. That would really help me a lot.

-Ray

Shimakaze:
If your just using proxies to speed up your viewports thats abit of a waste as it will be slowing your renders as well.
But if you need the ram saving feature of a proxy then thats all good, otherwise you may want to a look into alternate methods so you can get your rendertime back.

Well yea. I mainly use it for things like huge forests, scattered ground objects and similar. Otherwise it would be no different from the things we’ve already mentioned in this thread :wink:
My point though was that having a huge amount of instanced proxies is much easier to handle (at least on my computer) then a huge amount of regular instances.

Yeah definitly.

My uber sphere which had 11billion polys, had to be all instance proxies, as if i just instance spheres it would bog down in about half the time.

It still did become a chore moving around the proxies after awhile. viewport updates were at about 2 mins near the end of it all.

woww…

That’s pretty interesting now. :idea:

So, please let me know, if I did understand you.

If I use a lot of instances (no matter if you use proxies or a standard mesh) just instances, then I should use the DYNAMIC option.
That will help me saving memory.

Hmm, is this correct now - or did I missunderstand ? :?:

Thx for all your help,
I really appreciate that much,
bernhard :smile:

Using the Dynamic option will save memory, yes.

Best regards,
Vlado

thank you

Thank you vlado, you made my day :smile: !
I’d like to thank you all - really great forum - great people :!:

appreciate that,
bernhard

just another thing you can do even with the instanced proxies is that you can apply a different multi-sub material to each instance. the materials dont instance like the geometry does (so if you change one, it doesnt effect all)

For example, a recent job with about 140 houses, there was 3 types of geometry and 12 colourschemes. So basically 1 proxy type can be broken into many different colour schemes. I dont know how much more memory that uses though :frowning:

your proxies may have dissapeared if you didnt select instance because you need to relink the external file if you clone and select Copy - this also crashes when you try to render!

Hi everyone, i have a question, if my scene is a building with a lot of trees (about 300 proxys, 20 types of vegetation instanced) and 17 3d cars also proxys and still doesnt render eve if i try to use backburner with stripes, it always crash, would it be a solution to use dynamic and how to use it?