Blender Slowing Down and Stuttering in Large Scenes. Considering Upgrading My CPU

I’m a game dev and use blender for nearly all of my 3D work. I’m currrently using Blender 2.93.

The main issue is that undo and redo gets really slow in large scenes. I’m not sure if its the obect count or the triangle count that is the problem. Adding new objects, deleting objects and duplicating objects all cause blender to pause for a couple of seconds. Its started to really break my flow.

My current scene (with everything visible) has 444 objects and about 420,000 triangles. When I’m working about half of that is probably visible at most.

I’m curious as to whether or not upgrading my pc might help speed things up. I don’t use my blender for any rendering aside from Eevee while modelling, unwrapping etc. I export to Unity after and do a lot of object placement and set decoration there. By comparison Unity runs a lot better in editor and there is a much higher object/triangle count as I’ve duplicated lots of rock and tree meshes and placed them around the scene.

My current pc (some of which is quite old at this point):
CPU: Intel Core i7-4770K CPU @ 3.50GHz
GPU: Sapphire Radeon RX 590 Nitro+ 8192MB
Ram: 16GB Hyper X Fury 1866 MHz DDR3 CL10 DIMM
Motherboard: MSI Z87-G45 Gaming
Main Drive is an SSD.

Any help or insights would be appreciated. Thanks!

Have you looked at your system RAM usage when working on such scenes? You could be potentially be running out of RAM.

I wouldn’t have thought that RAM would be the bottleneck but I’ll keep and eye on it and see if there are any obvious issues. Thanks!

I’ve been keeping an eye on my systems performance as I’ve been working and I think the RAM usage is fine. It’s pretty consistent at around 66% with both blender and Unity open at the same time and I’m still getting the pauses while working in blender. The CPU spikes whenever I do an action that causes blender to pause so I assume the CPU is the main issue.

Try instancing your objects.

Tutorial: https://youtu.be/HfMldZ2xYzY

Thanks! I should have said that I’m already using instances a lot as it makes it really easier to make some tweaks and fixes to all the models after I’ve placed them everywhere. I’m making race tracks and deform a lot of models with arrays along curves (like barriers and walls etc).

Have you thought about using a particle system ? You can make an emitter object with the vertices placed where you want the particle instances to be. If the rotation of the instances is important to you, use quad faces instead of vertices.

Thanks but I don’t think I’d be able to use particles for this as my different model instances tend to have array and curve modifers with different settings on them. Maybe its the modifiers that are causing the slowdown.

I wonder if the scene would run faster if all the modifiers were applied? I might test this out later just to see. I’m very unlikely to do this though as it would be too destructive of a workflow.

Try closing the Outliner. The Outliner - esspecially when set to “blend file” - can cause significant slow down.

Thanks I tried that but didn’t notice any real difference. I tend have the outliner set to ‘View Layer’ when I’m working. I think I’d need it open too just to be able to organise and manage all the different objects etc.

I’ve been considering overclocking my CPU to see if that would have any benefits before I make the big decision to try and upgrade to some newer components. Just need to get an aftermarket cooler before trying it.

If you have modifiers on instances, that could be a cause of slow performance, especially if the mesh has lots of polygons. When you place a modifier on an instance, the memory saving benefits of the instancing are cancelled and Blender will treat that object with its full polygon count. Of course, using instances in that case is still useful for editing all objects at once, but if you want to use instances to save on viewport performance, this only works without modifiers.

Alternatively, a cause of low performance could be the number of objects. If you have lots of objects, even if they are low poly, this can be bad for performance. However, for me it usually happens with thousands of objects.

If these issues are not in cause, then I would try applying the modifiers, just to see (maybe in a copy of the scene). I have a computer I think is of similar strength to your specs and I could easily support the object and polygon count you have written, but it sounds like you are using a lot of modifiers. If you are exporting objects for a game engine, maybe it would be possible to split them in separate Blend files?

Object Properties > Viewport Display > Display As Bounds can improve viewport perfomance. But you have to manage toogling on/off, would be stressful. Set dressing in your game engine is the best option as you already doing. Consider a new workflow using Blender to handle assets individually, quite sure worth shot before spending money in new gear or overclocking your current.

Thanks for explaining! That makes a lot of sense. I tested the same geometry with all of the modifiers applied and it ran silky smooth and quick. I really like the non-destructive workflow that I have but I might try and figure out a way to better approach this kind of work. Maybe separate different areas into different chunks etc or try and finish certain sections to such an degree that I can apply the modifiers before moving onto the next and also backing up all my work as I go (which I do anyway for fear of making mistakes!)

Update! I went looking through an older file to try and show my workflow and I noticed it ran a lot better. Undo’s and redo’s were much more responsive as was adding and deleting objects etc.

The only real difference I can think of between my older work and newer work is that I have more textures loaded and maybe a couple of more complex rock tunnels with subivision, displacement and then decimation modifiers on them. I’m going to test applying all those modifiers and see if that speeds things up. If those are constantly being recalculated then I would imagine that would cause a lot of slowdown.

Thanks, I’ll try that out and see if it impacts performace at all. Might be a useful way to hide objects. Yea going to try and figure this all out before investing in any new gear.

I’ve had a breakthrough!

I tried applying the modifiers on those complex rock tunnels but that didn’t have any noticeable impact on performance. I then removed all of the images/textures in the file and that made a HUGE difference! I really didn’t expect them to be the bottleneck.

I’m working with a couple of 4k textures in this file and in my older work (like the one I posted above) I only used up to 2k textures. Also some of the textures are photoshop files and I’m curious as to whether or not blender has to interpret them in a way that causes some slow down. Regardless I now know how to approach fixing this and getting this file back to a useable state!

Thanks for all the help everybody! You have all saved me a lot of time and money!