Instances in C4D arnold are taking a lot of memory, is this right?

Tito_Moreno
Not applicable

Instances in C4D arnold are taking a lot of memory, is this right?

Tito_Moreno
Not applicable

Hi,

I am testing a landscape, used instances for trees and bushes, and chose the "render instances", option in the instances attributes options, for memory preservation.

But it seams that the memory keeps increasing more and more like I was using regular geometry. In short the instances render perfectly but it has no effect on the memory, the memory keeps increasing like regular objects where used.

For 35 instances of around 100k polys each, it gives an increase of aprox. 10.000MB in memory.

I´m doing something wrong is this right?

Is there a way to duplicate objects in arnold without having such a drastic effect on memory?

0 Likes
Reply
721 Views
8 Replies
Replies (8)

peter.horvath6V6K3
Advisor
Advisor

That does not sound right. I just tested a 2.4 million poly object and 25 instances, which does not give any significant memory overhead.

Sounds like no instances are created in your scene for some reason. You can check in the logs, set the log level to Debug in the render settings (Diagnostics tab), start a render and check the console, you should see a summary of the number of nodes, like this:

[c4dtoa] 00:00:00  2903MB         |  there are 1 light and 26 objects:
[c4dtoa] 00:00:00  2903MB         |        3 persp_camera
[c4dtoa] 00:00:00  2903MB         |        1 skydome_light
[c4dtoa] 00:00:00  2903MB         |        3 utility
[c4dtoa] 00:00:00  2903MB         |        1 standard_surface
[c4dtoa] 00:00:00  2903MB         |        1 physical_sky
[c4dtoa] 00:00:00  2903MB         |        1 gaussian_filter
[c4dtoa] 00:00:00  2903MB         |        1 closest_filter
[c4dtoa] 00:00:00  2903MB         |        1 polymesh
[c4dtoa] 00:00:00  2903MB         |       24 ginstance
[c4dtoa] 00:00:00  2903MB         |        3 list_aggregate
[c4dtoa] 00:00:00  2903MB         |        3 color_manager_ocio
[c4dtoa] 00:00:00  2903MB         |        1 driver_c4d_display

Look for the polymesh and ginstance entries.

You can also try a procedural workflow, which should be more efficient. Save your mesh to an ASS or USD via Arnold > Scene Export (set mode to Procedural) and load it via the Arnold Procedural node.

0 Likes

Tito_Moreno
Not applicable

Hi Peter,

Thank you for your reply.

I have been testing it and it did not improve.

1-The log file is huge and keeps increasing in memory, does not seam to recognize the instances. But I cannot read it I am not a coder.

2-The Ass file did export has a procedural but the file it self became 2.5 GB, and upon rendering the memory usage was the same.

3-The USD I was not able to export it crashed.


I made another test with the same exact objects using Arnold Scatter and with many more instances it gave only 7GB of memory when rendering oposed to 117GB using instances created with C4D engine.

So something is not right.

Below are the print screens of the tests and the log file.

I can send you the scene if you like, but only on PM and it is 350MB.



arnold.zipinstances-memory-abuse-01.jpg

0 Likes

Tito_Moreno
Not applicable

Ps. Images that did load in the last message.


instances-memory-abuse-02.jpg



instances-memory-abuse-03.jpg


instances-memory-abuse-04.jpg

0 Likes

peter.horvath6V6K3
Advisor
Advisor

Yeah, does not sound right. The Arnold Scatter performance looks better, which suggests that the instances are not created properly. Btw, Multi-Instances should be the same as the Arnold Scatter, don't know if you have tried that.

Would be nice if you could send me the scene, hopefully I can figure out what's going on. If I have enough memory. 😉

0 Likes

Tito_Moreno
Not applicable

Sure I can send you the scene, just tell me how. It is a 307MB file, it has copyrighted products in it so it cannot go public.

No, I haven´t tried with multi-Instance but I will, didn´t thought it would made a diference since the render instance is the one for memory enhancement in C4D engine.

0 Likes

Tito_Moreno
Not applicable

I have done the test with multi-instances and it works just fine it gives around 10GB of memory even with many hundreds more instances.

Also tested the bushes with render instances and with geometry, the same exact position and objects.

With render instances it gives even more memory usage not much more but 99GB with plain geometry to 105GB in render instances.

The problem that I have now is because it is a urban landscape the position and scale of the trees is strategic, and was placed manually, and I cannot do that with a scatter or a cloner... I wonder if there is a way to turn the existing instances into a cloner, matrix, or Arnold Scatter?...

Here are the images of the tests:


instances-memory-abuse-05.jpg


--


0 Likes

Tito_Moreno
Not applicable

Ps. Images Test with render Instances versus geometry.

instances-memory-abuse-06-in-geometry.jpg


instances-memory-abuse-07-in-instances.jpg

0 Likes

peter.horvath6V6K3
Advisor
Advisor
Please send it to support(at)arnoldrenderer(dot)com.
0 Likes