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.
@vlado:
Dynamic memory option ? 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… but never trust one clock especially you render with vray proxies, for getting some better scene statics datas … :lol:
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.
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.
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.
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
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.
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
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.
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
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
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?