Turned off all my objects in the blend and viewport is still slow!

I dont have what I would consider to be too complex of an animation, but I am getting slow 10-14fps playback in evee on a 3090 GPU and a 3080 Ti on a 32-core AMD running the blends off of speedy M2 SSDs. In an attempt to isolate what object in my file was causing a slow down, I gradually turned EVERYTHING off using the eyeball in the viewport. Speeds increased marginally, but even with everything off except my camera and an empty Im only getting 18fps! So something is fundamentally wrong here but I dont know what. Help!

  • Windows 11
  • AMD 32-core 128GB RAM
  • RTX 3090
  • RTX 3080 Ti (both monitors plugged into this card. Two 4k Monitors.)
  • 2x 8TB SSDs
  • Blender 2.93.5
  • Latest nvidia drivers as of 11.10.21

Eyeball just makes them invisible, Blender is still calculating everything about them…You need to use the Screen Icon…so that Blender is not internally rendering them invisibly to the viewport…
image

3 Likes

Ahhhh. Ok I think that was my problem! Thank you!!! This is going to help SO MUCH!

With this I was able to find out were my slowdown is! I have this cathedral model and amazingly, all the elements in it animate at 24fps without my added objects! Incredible!! Now I found my slowdown… I had to reproduce this lights on the candelabra. The light in this picture has light objects around it that are inside a glass housing. I added the lights and the housing, and had to duplicate these things probably 70 times for all the other candelabra’s in the cathedral. I just created one lamp and did the shift+d method to duplicate the object. Im probably creating thousands of times more vertices and things in the process. Is there a better way to duplicate these without slowing down blender from 24fps to 8fps?

Have you tried making the duplicate using Alt+d instead of shift+d?

Using shift+D tells Blender that the 2 resulting objects (the original and the copy) are different objects(different mesh data). So even though they are technically identical in terms of mesh, Blender will calculate separately each of them. When using alt+D , the objects will share the mesh data so that Blender has to calculate it only once , even though you have 374893 copies :smiley:

1 Like

On a side note, this node tree can also speed up the viewport animation playback: Way Faster Normal Map Node (for realtime animation playback with tangent space normals)

Nice! I didn’t know this and Im sure this is the reason why Im having huge slow downs. One more question. If I make a copy using ALT+D of item A, and the new item becomes item B. Will I run into trouble if I make an ALT+D copy of item B to create an item C? Or do all copies have to be from the same original item A in order to avoid this problem?

You can Alt+D from any copy you want, be it item A, B, C, D, E etc. You will see that if you create more duplicates like this and try to edit the mesh of one, you will actually edit the mesh of all the copies created this way. And yes, creating copies this way requires less resources to render them/work with them etc :smiley:

Over the years… I have stopped clicking “Play Animation” in the viewport. Sometimes I step forward and back with the arrow keys.

If I need to see if my lighting and scenery look good, I render 1 frame.

If I need to see if my animations look good at the intended frame rate, I use “Viewport Render Animation” - in the View menu at the top of the viewport. Also I set the Viewport Shading to “Solid” (or “Material Preview”), and my Eevee Viewport Sampling to 2 - and then watch that video.

If I just MUST see the real full render… I render it, and go do some of the household chores I need to do.

You just have to learn to trust yourself.

Thanks! So I deleted all my duplicated glass housings and lamps and started re-making them using ALT+D. I’ve recreated so far just the man floor which is about maybe 30% of all the lights I need to do, and I’m already seeing slow down to 18fps. So… it still seems to be dragging down the viewport speeds :frowning:


forgot to add this pic

A lot of your glass housings and lamps are behind the camera.

Do you really need all of them?

Not for that shot. Is there a way to tell Blender not to calculate objects out of frame?

I have a feeling that the simple answer is “No”.

I know of a shader node called “Light Path” that has a “Is Camera Ray” output.

litePath

Might be very tedious to add to every shader of every object.

Just think through your shots… (Watch YouTubes about Alfred Hitchcock :upside_down_face:)

Try to figure out, based on camera movement, what will be visible. Use the Screen Icon to turn everything else “off”. EDIT: Maybe set those objects up in a collection - collections can be turned “off” with their Screen Icons

Then render it all in small pieces and reassemble them in the VSE.

Good Luck !

For example…

My last two videos are of 2 people sitting at a booth in the dining area of a tavern.

The tavern has a dining area and a bar area. If my story takes place in the dining area, I turn off the bar area - and vice versa.

The tavern is in the left basement unit of a 6-flat building in a neighborhood. I can walk to the building, go down the stairs and through the front door of the tavern. I can turn the entire neighborhood “off” when I don’t need it.

Here’s one of them…

You might want to instance the collection containing these objects instead, this saves even more memory. Shift+A → collection instance

Yes, in Cycles you can turn on camera culling (in render properties, simplify panel)
It’ll only affect your rendering performance though, the viewport doesn’t do that kind of optimization (yet).

So I deleted all my lights and re-created these candelabra’s as instances. I watched the vertices count remain the same as I duplicated the instances (ALT+D) which was great. So imagine my surprise when they are all turned on that playback is still 8fps! Is this expected or am I doing something wrong?

I can’t seem to grasp this “instance” idea.

(Yes,… I found some tutorials - will watch…)

Any “Instancing for Dummies” wisdom? Thanks.

What seems unclear ?