Resource management best practices (disable items out of frame, etc)


#1

I’m rapidly approaching thousands of moving parts where only a small fraction are on screen at any given time, and would like to keep things running efficiently before it gets any heavier.

  1. Generally speaking, I’m assuming it might be helpful to disable elements that out of frame. Is this correct?

  2. For those objects that have green check marks, is simply unchecking the box the best way to do this?

  3. Most of my objects are contained in nulls (which don’t have check boxes). In those cases, should I turn the green render dots for the null to red? Does that disable resources for all children of the null?

  4. Is there some more global setting which would automatically disable resource consumption for unseen items?

  5. Does it matter if I have thousands of individual items with materials, phong tags, etc attached, or am I better off where possible applying those tags to parents of groups of such objects?

  6. Any other basic concepts I should be taking a closer look at?


#2

Hi there I know it will be a stress to keep enabling tens or hundreds of those scene files but the main issue is always the viewport.

  1. I suggest you organize your objects into layers and you can switch them on and off. that does what the enable will do if you solo it.

  2. you could create a script to help you disable all the child objects & enable them

  3. or you could just leave it and use this scripts to increase your viewport speed it just turns large numbers of over data off in your viewport that way you wlll not have to do anythingVP-SPEED.zip (8.0 KB)


#3

or if you feel like you still want to disable all the children then you can download this scripts and just select the null objects and double click on the quick disable script then** it will disable all the children** and of you now need them back just Select your nulls and double click on the quick enable script.e-z5d Quick disable.zip (709 Bytes)


#4

Doing this in the editor viewport might help, but maybe not that much - Cinema’s editor display is pretty decent at clipping out un-viewed objects. Doing it at render time is a bad idea, as you’ll have jumping reflections and shadows.

For me, the biggest culprit is live generators (symmetry, boolean, spline mask etc.) Collapse these guys down as soon as possible if your viewport is chugging. Also use cloners set to ‘render instance’ is a big help.

Collapsing complicated multi-part objects into a single mesh is a good idea too when possible.


#5

OK, thx. Everything working fine at the moment. Just trying to think ahead as the object count grows. Scripts may come in handy. Hopefully it just doesn’t choke, and I’m ok as is. Hadn’t thought about reflections/shadows, though It’s cartoonish stuff where those would be minimized.

Beyond the fact that there will be thousands of flying bits, though, I’d ultimately like to work in some character animation I’ve worked out where even the proxy character is a bit of a system killer. He’s doing some dance moves (worked out in a separate project), so the idea would be to then merge his project into this one so the camera moves around him as it moves around the other objects. I just have a dummy solid in his place for now.

It’s going to get very heavy when he’s added in, and much less snappy to work with, so no sure if I should put him in, and output in two passes (one for hiim, and one for everything but him) where everything NOT being rendered is disabled).


#6

Downloading scripts now…

As I work through it, it looks like there are a few times I want to disable something manually anyway because camera is flying past it, and it’s just a distraction in the background at that particular moment, but wil be featured later.

If I understand correctly, sounds like those would be ideal moments to just shut down the entire background scene from the parent null on down via quick disable script… which should also allow me to put scenes on top of each other if things get too congested since only one scene will be visible at a time. (assuming camera focuses somewhere else, and comes back.)


#7

Going through some of the script options, and quite confused by VP-speed. The turning off “over data” in viewport sounds like the description of what GSG’s Filteer Switch does. I just downloaded that as well. When I activate VP-Speed, though, it opens up a new window, starts some kind of timer, changes what’s in my viewport. Can’t make any sense at all of what it’s doing, and don’t see any documentation for it. Is it technically called something else so I can find some docs?


#8

hi I just saw your message now. yes I forgot to mention this take it one step further than the GSG filter switch. it gives you 4x the speed. You will notice this only if you are on a large scene file. but not to worry your works is still 100% the same. Just render it and you will see it did nothing to your scene

For the popup box this is because I asked it to call a plugin so to solve this all you have to do is follow this steps

open the script manager
1![2|439x271]
search for e-z5d vp speed
click on it
(upload://1Ohh5rOsdeGNgy8nr0ArWpSpFrZ.JPG)

!
now select what you see in the screen short and delete you will notice a yellow color
4|586x500![5|690x407]
just save it with CTRL OR CMD S

(upload://31McQ9CAavlhhCSz8O9KDEwxIJt.JPG)

there we go cancel and and test it will not bring up any pop up box


#9

OK, thx. got that much working, and I think it’s helping speed, but even though I only have generators showing in usual filter view and default omni lighting, it’s also causing some odd deformations, lighting changes in preview. As far as I can tell, it all pans out on render, but I’m hesitant to save once engaged until I understand a bit better what’s changing and why.

Best place to start is probably here: How do I turn off the script? If I want to switch it on and off to do some testing, I see how to turn it on, but not off.

Also, still not quite clear whether it’s necessary or not to disable children if parent null render is disabled. I’ve got the quick disable installed, and trying to do some quick tests to see if it’s helping render times, but looks like I’d need to use it across hundreds of nulls to really test the speed effectively.

Basically, camera morphs from scene 1 to scene 2. The moment it hits scene 2, I never again need anything from scene 1. Then it goes to scene 3, and I no longer need anything from scene 2… repeated dozens of times. Right now, I’ve already got the first 15 scenes and camera morphs worked out where each scene’s null is render disabled as soon as morph camera hits the next scene. Not quite clear if it matters or not whether I do quick disable. I don’t care one way or another… except if it helps resource consumption.

I know very little about resource consumption in c4d, but the one thing I have noticed is that the preview is skipping more frames (playing audio in real time) as the project grows despite disabling each scene null as I go.


#10

Yes don’t worry about the deformations it reducing the quality so your viewport works faster. “you still get the original thing in the render”

to turn off the script you will have to use the vp-slow script i think it should be in the zip file above.

I don’t know about that. but with using the script all you have to do is shift select all the nulls and double click on the script and vise-vasal for the the other script “quick disable and quick enable”

well you can make an xpresso setup to turn off all all that at a certain key frame

bake out your scene and it should play at a normal speed with out skipping frames.

a very good plugin would be the nitro bake plugin…

nitro4d.com/