When creating a vrayproxy we have a small switch to “optimize for instances” on/off.
When this is on, this can help greatly when the vrayproxy will be heavily instanced. BUT in the other hand with some heavy geometry, creating a vrayproxy with “optimize for instance” On, can make scenes way slower, with 10x longer times to first pixel, and use way more ram.
The problem is that once a vrayproxy is created, theres no way to switch this optimize for instance on/off, I could understand this needs to be at creation time, but then the other problem is that after a vrayproxy is created theres no way (that I am aware) to know if that vrayproxy was created with “optimize for instancing” on or off.
So my idea will be to have a way to know if a loaded vrayproxy was created with this option on or off (maybe an indicator somewhere of number of voxels on a vrayproxy).
Second and ideal will be an option to convert an existing vrayproxy with “optimization for instancing” on to off, and if it was to off, to on. So far, the only option I know is to unpack the vrayproxy, and recreating it again.
Hello Eloi! This is something I’ve been wondering about recently, in which exact situations it worth to “optimize for instances”, when instancing at least 3-10 times? or at least 100 times? I haven’t notice any huge differences in performance though, would you mind sharing some real world tests?
This would be a great improvement. Right now there’s no easy way to know if a V-Ray Proxy was exported with “optimize for instances” enabled, which makes troubleshooting heavy scenes difficult. Being able to view or convert this setting without rebuilding the proxy would save a lot of time.
Thats good to know, but still, not very straight forward, we should be able to know within leaving the app.
Why not do like in VrayVolumeGrid object, where we have an info rollout with relevant information about the external object we are loading? it could display if object is loaded or not. Number of total polys. Number of voxels (that will tell us if it was optimized for instancing or not). Number of frames cached in case of an animation. Deformation or no deformation, and so on?
I have not specific numbers. But we found that if “optimize for instance” was off, and you scatter with forest pack (talking about thousands of instances and up), things can get very slow.
But the other situation happened at work yesterday. We had a scene with around 150 vrayproxies (not instanced),just vrayproxies to optimize scene saving/loading/viewport. Each object having from 500K to 1.5M polys. All visible totally on viewport. We notice that when rendering, max will hang out for a good 1 minute and a half on “transforming vertices” before vray starts loading the scene. Also the ram was quite high. By converting again to vraymesh but deactivating the “optimize for instancing”, ram was reduced by 2.5X times. And the 1minute and a half loading time when rendering was totally gone.