How to speed up mograph?


#1

Hi there,

I have a scene with about 40 cloners, each of them cloning a group of three objects onto surfaces.
I’m using Octane and the IPR works, although it takes a while before it starts.
The big issue comes when I need to render. C4D’s picture viewer pops up and remains empty for about 8-10min.
I don’t know whether the render would be done or not at some point as I didn’t wait longer, I need the scene to be rendered faster than that.
Other than the number of clones, the scene is pretty simple. A few lights, and basic octane materials.
I tried with Redshift and the result is quite the same, picture viewer doesn’t deliver.
Is there anything I can do in order to optimize the scene?
The box I’m using is quite new, AMD ryzen theradripper, 32GB ram, 2 GTF 1080ti and samsung 960.


#2

Is your timeline marker at Frame 0, or is it much farther down - at frame 100 or 200? When you use the picture viewer, every frame leading up to the frame you’re rendering needs to be “prepared” before anything begins rendering - and this often takes time, especially if you have mograph simulations in the scene.


#3

Thank you, Luke,

In my initial tests, I was rendering frame 0, and I’ve got the same result.
It’s quite frustrating, especially considering the IPR works but the final render doesn’t.

Edit: also, I was trying to figure out where to find some info about the number of clones I have in the scene, but I can’t seem to find anything under the HUD.


#4

Have you tried rendering the same scene with C4D’s standard renderer (and with generic materials instead of Octane mats)? It’d help to eliminate variables, and see if this was an Octane issue or a C4D one.

If there’s a ton of clones in scene (over 5,000) that could very well be the issue as well - in that its just taking a while to prepare. C4D isn’t the best with large amounts of individual objects.


#5

Thanks again for your hints, Luke,

Your last sentence most likely explains what’s happening.
Each of this cloner (like I said, it’s 40 cloners total) has a minimum of 1000, some 12000 and a few 24000 clones.
I thought C4D could handle it. I should probably switch to Xparticles.

Edit: I still haven’t found a way to get the information of how many clones I have in my scene, but even assuming it’s roughly 250,000 is that really too much?


#6

Well there’s your problem. That’s a ton for C4D, and its an issue that a lot of C4D users want Maxon to improve. Is there anyway you could make those cloners editable and merge the clones into a single mesh? Not sure if your scene will allow for that. It would definitely improve speed.

Just to confirm - is render instances turned on for all the cloners?


#7

Yes, render instances is on.
At this stage of the work, I don’t know yet whether we need to keep the cloner or if we can make them editable.
What I ended up doing is using takes, for now it’s kind of OK.

That said, I definitely see why many users requested improvement in this area.
I really hope Maxon will come up with a solution, either a way for C4D to handle a bigger amount of clones or a workaround to allow the user to get the render done.

The other option is X-Particles, which could be great for this. Due to the deadline, I couldn’t spend too much time playing with it. I can easily get the setup ready to mimic what I have done with Mograph, but one thing I’ve got stuck in, is the nice falloff effect I have with mograph effectors. The falloff in XP doesn’t seem to give me the same results.

Thanks again for helping to figure this out.


#8

Yeah, it’d be amazing to work relatively fluidly with 250K objects; that’s why a lot of people use xParticles or have simply migrated to Houdini (or use both, as I’m trying to do).

Regarding the falloff - If you shared a sample scene, someone on the forum may be able to help out with that.


#9

If you are using Octane then you should try Octane Scatter rather than a cloner. It works much the same way but it can easily handle hundreds of thousands, even over a million objects.

Octane Scatter = fast viewport + fast render. And you can render things you flat can’t render any other way.

If you are putting a cloner inside a cloner…I don’t know what you’ll get…you might need to convert child object.


#10

you could try to cache the cloners via mograph cache tag.


#11

To give you a sense of scale. 50,000 objects will slow c4d down. 100,000 will be the realistic limit of what is bearable.

One thing you can do, simplify the object as much as possible. eg if you have a cube object, make it editable; that will be a dozen settings c4d no longer needs to check a quarter of a million times. If the objects have children, try merging them. Dump any unused uvw tags etc.


#12

This is one of those areas where GPU accelerated processing would probably work wonders.

You have around 7,000 CUDA cores in your 1080 TI GPUs combined that - in your case - would each only have to calculate the positions and/or behavior of about 35 objects each.

Pushing 250,000 polygon objects through a general purpose 8, 12 or 16 Core CPU will slow things down to a crawl. A lot also depends on how Mograph is evaluated on multiple cores, nesting of the cloners and so on.

Unless you can find a really efficient alternative scattering/instancing solution as others have suggested, or can get the complexity of the cloned objects down somehow, the slowdown you are seeing is probably unavoidable.


#13

Thank you all for your valuable help!

I have tried a couple of things.
As Matthew suggested, I have made objects editable and also, wherever I could, connected them into one object. It didn’t do the trick.
By the way, if 100,000 can be considered the limit, I’m very well beyond that.

I haven’t tried the cache yet.

Octane scatter seems fast, but I didn’t have the time to rebuild the whole scene and see if the scatter holds up.

At the moment I need the renders done and the takes are working great: it took a little time to set up everything, but other than that it’s pretty straightforward (although I haven’t checked yet how to render only one or two takes if I need to - hope there’s a way to do it).


#14

See the orange check boxes? Use those to select the takes you want to render, then click Render --> Render Marked Takes (or Team Render Marked Takes, or Add Marked Takes to the Render Queue, etc, etc…). Just to be sure add the appropriate $tokens to your save directories to make sure each take doesn’t overwrite the previous one (In some situations they’ll rename the files for you, but it’s a rather obnoxious numbering system) .


#15

Thank you, Luke.

Actually, today I had to bake some more renders and I figured that out :slight_smile:
I must say, the take system is quite handy!

Thanks again for helping.


#16

Yes! The take system is pretty fantastic.