Octane C4D and nested Render Instances

Maxon Cinema 4D (Export script developed by abstrax, Integrated Plugin developed by aoktar)

Moderators: ChrisHekman, aoktar

forward
Licensed Customer
Posts: 10
Joined: Tue Jul 05, 2016 12:24 pm

When referencing existing "Render Instances" in a new Instance Object it seems that Octane for C4D does not display/calculate those Instance Objects.
The same happens when referencing a mixed group containing Instances set to "Render Instance". Instances set to "Instance" will be displayed correctly even if nested.

Ist this a limitation/bug or is this the intended behaviour for Octane?
Nesting instances in this way may not be wise in regards to using less memory for rendering but we are working on some CAD data we received which contains this type of nested Instances.
The problem for us comes from the difference between what we see in the C4D viewport and what is actually rendered in Octane. I attached an example file and you can see the basic problem in the following screenshot:
Screenshot showing that nested Instances are not rendered.
Screenshot showing that nested Instances are not rendered.
Manually selecting all Instances and setting them to "Instance" instead of "Render Instance" fixes the problem but the data we are working on contains thousands of nested Instances which makes it hard to correct the hierarchy of the Instances so that the very first Instance keeps using the "Render Instance" to optimize scene speed / RAM usage.

This behaviour is not specific to a particular Octane or C4D Version as we have this behaviour with 3.08.5-R3 in C4D R19 as well as Octane 4.0-RC6 in C4D R20.
Any info on this would be greatly appreciated.
Attachments
Nested_Instances.zip
Example scene.
(66.74 KiB) Downloaded 202 times
User avatar
aoktar
Octane Plugin Developer
Posts: 16066
Joined: Tue Mar 23, 2010 8:28 pm
Location: Türkiye
Contact:

It's a limitation of current plugin. Mentioned on features list.
Octane For Cinema 4D developer / 3d generalist

3930k / 16gb / 780ti + 1070/1080 / psu 1600w / numerous hw
forward
Licensed Customer
Posts: 10
Joined: Tue Jul 05, 2016 12:24 pm

Thanks for the info!
tim_grove
Licensed Customer
Posts: 63
Joined: Thu Sep 29, 2016 4:26 am

I come across/do this often myself.

What is the correct workflow for selecting the lightest memory use?
forward
Licensed Customer
Posts: 10
Joined: Tue Jul 05, 2016 12:24 pm

I would think that the most memory effective workflow (with the limitation in mind) would be to set the very first instance of an object as "Render Instance" and then use "Instance" for all instances refereing to the very first one set to "Render Instance".
I am not 100% sure about that though. If anyone knows better they are more than welcome to share their knowledge!
User avatar
aoktar
Octane Plugin Developer
Posts: 16066
Joined: Tue Mar 23, 2010 8:28 pm
Location: Türkiye
Contact:

forward wrote:I would think that the most memory effective workflow (with the limitation in mind) would be to set the very first instance of an object as "Render Instance" and then use "Instance" for all instances refereing to the very first one set to "Render Instance".
I am not 100% sure about that though. If anyone knows better they are more than welcome to share their knowledge!
Yes, you can without embedding render instances
Octane For Cinema 4D developer / 3d generalist

3930k / 16gb / 780ti + 1070/1080 / psu 1600w / numerous hw
forward
Licensed Customer
Posts: 10
Joined: Tue Jul 05, 2016 12:24 pm

I just did a quick test with a very high poly object and my assumption was correct. There is no additional RAM cost when referencing an Instance Object set to "Render Instance" with the Instance mode set to "Instance" and they are all rendered correctly as well.
See here:
nested_instances_workflow.png
So if you do have/need nested Instances this would be the way to go.
tim_grove
Licensed Customer
Posts: 63
Joined: Thu Sep 29, 2016 4:26 am

Awesome thanks for testing forward. That's good to know.
alexlomarco
Licensed Customer
Posts: 11
Joined: Mon Jun 11, 2018 9:00 am

Do you know if in the latest versions of octane they have fixed this limitation ? Unfortunately I have a very complex model with thousands of instances and I can't split between instance and render instance, I need to dictate them all in render instance.
I'm trying with 2022.1.1 r6 but it doesn't seem to work.
frankmci
Licensed Customer
Posts: 917
Joined: Fri May 26, 2017 2:00 pm
Location: Washington DC

As far as I know, it's still a limitation of the instancing system Octane uses. True Instances and can be re-instanced as either Instances or Render Instances, but Render Instances themselves can not. In other words, Octane only looks one level deep to find the source geometry. In my experience, setting sub instances to to true Instances and Render Instancing only the top level works fine, although it's not quite as memory efficient as it could be.
Animation Technical Director - Washington DC
Post Reply

Return to “Maxon Cinema 4D”