Hi we are just starting to prepare to use instancing in the 3dsmax plugin but from everything we have read including in these forums we are not sure we completely understand how it works. So could someone from otoy clarify these points:
1) if we clone an object in 3dsmax using instance rather than copy does octane automatically deal with this and not duplicate the objects memory usage in its gpu render?
2) we think that when we set an objects octane properties in 3dsmax to be a 'movable' proxy that it will only voxelize the object once and just update it's transform from then on if we move it around in 3dsmax and that this behaviour only supports affine transformations?
3) the connection between instancing and movable proxies are not clear to us - could someone explain their relationship more clearly?
4) if we use the graphite modelling tool paint objects in 3dsmax 2012+ does this automatically set up instances in octane?
3dsmax instancing and movable proxy clarification
Forum rules
Please post only in English in this subforum. For alternate language discussion please go here http://render.otoy.com/forum/viewforum.php?f=18
Please post only in English in this subforum. For alternate language discussion please go here http://render.otoy.com/forum/viewforum.php?f=18
1) You need to set movable proxy.cybernoid wrote:Hi we are just starting to prepare to use instancing in the 3dsmax plugin but from everything we have read including in these forums we are not sure we completely understand how it works. So could someone from otoy clarify these points:
1) if we clone an object in 3dsmax using instance rather than copy does octane automatically deal with this and not duplicate the objects memory usage in its gpu render?
2) we think that when we set an objects octane properties in 3dsmax to be a 'movable' proxy that it will only voxelize the object once and just update it's transform from then on if we move it around in 3dsmax and that this behaviour only supports affine transformations?
3) the connection between instancing and movable proxies are not clear to us - could someone explain their relationship more clearly?
4) if we use the graphite modelling tool paint objects in 3dsmax 2012+ does this automatically set up instances in octane?
2) Yes, if you don't change object itself, only transform position.
3) If you don't set movable proxy, for Octane it doesn't matter whether it instance object or not.
4) You need to set movable proxy.
Great thanks for clarifying this and in a test we just did now this seems to be the case given the change in voxelisation speed. At a glance it seems like it was rendering slightly slower when using instancing but I haven't had chance to confirm this against the non-instanced render yet so take that with a pinch of salt - but its probably a tradeoff if so etc.
Out of interest is it not possible for a global 'Auto Movable Proxy for 3dsmax instances' setting in a future plugin update?
I know there can be some issues in reliably detecting what could be really 'instanced' in Octane due to certain 3dsmax modifiers but then it could be automatically disabled in those cases I believe.
Out of interest is it not possible for a global 'Auto Movable Proxy for 3dsmax instances' setting in a future plugin update?
I know there can be some issues in reliably detecting what could be really 'instanced' in Octane due to certain 3dsmax modifiers but then it could be automatically disabled in those cases I believe.
_________________
RTX 3090, Ryzen 5950x, 32GB RAM, Windows 10 64-bit
RTX 3090, Ryzen 5950x, 32GB RAM, Windows 10 64-bit
Yes it is very easy on the technical side to check if it is instanced which is why I asked if it was a planned feature - but there can be complications regarding whether the actual object is deforming and certain other behaviours which would effectively mean the object had to be re-voxelised per frame anyway.
So I suspect this might be part of the reason this hasn't been done automatically yet - but still it would be nice to have a global option to force automatic instancing anyway if this was the case.
So I suspect this might be part of the reason this hasn't been done automatically yet - but still it would be nice to have a global option to force automatic instancing anyway if this was the case.
_________________
RTX 3090, Ryzen 5950x, 32GB RAM, Windows 10 64-bit
RTX 3090, Ryzen 5950x, 32GB RAM, Windows 10 64-bit
For me it seems, that in essence "proxy" property is not related to instances at all. It's a way to tell Octane what model it should keep updating (re-voxelising).
Why Karba is using it to control instances is unclear to me? Instances are always instances. You can't deform one without altering others (well except transformation).
So when rendering you either treat them as instances or not (global checkbox to enable/disable like you suggested).
Currently the workflow is very clumsy. You have to set proxy property for every single instance instead of just one global parameter. When you have a lots of instances and you forget to do it, then there is a crash ahead cause you just run out of system ram. (has happened to me a lot).
I 2nd cybernoid opinion about the need of a global instances switch.
Suv
Why Karba is using it to control instances is unclear to me? Instances are always instances. You can't deform one without altering others (well except transformation).
So when rendering you either treat them as instances or not (global checkbox to enable/disable like you suggested).
Currently the workflow is very clumsy. You have to set proxy property for every single instance instead of just one global parameter. When you have a lots of instances and you forget to do it, then there is a crash ahead cause you just run out of system ram. (has happened to me a lot).
I 2nd cybernoid opinion about the need of a global instances switch.
Suv
Thanks for the second vote on this 
If I remember correctly from writing a 3dsmax plugin a long time ago there are issues with World Space Modifiers and similar that could effectively be distorting each instance and in Octanes case would mean it needed to re-voxelise the object. But also I think it is possible to check an objects modifier stack for such things and animated geometry channels and disable Octane's instancing in such a case.

If I remember correctly from writing a 3dsmax plugin a long time ago there are issues with World Space Modifiers and similar that could effectively be distorting each instance and in Octanes case would mean it needed to re-voxelise the object. But also I think it is possible to check an objects modifier stack for such things and animated geometry channels and disable Octane's instancing in such a case.
_________________
RTX 3090, Ryzen 5950x, 32GB RAM, Windows 10 64-bit
RTX 3090, Ryzen 5950x, 32GB RAM, Windows 10 64-bit