Ben’s answer was relevant but perhaps I could rephrase it for a less technical audience. What is happening for your framerate drops within heavy scenes is known under the term of “Draw calls”
This is an issue every games using D3D11/OpenGL are facing. Hence why no one has ever tried building a game as big and heavy as the deeply playable universe of Star Citizen.
D3D11 and OpenGL were not designed to fully support the modern CPUs but everything roughly within 2004 to 2010, and they do not allow for manual/fine optimizations of the code.
This comes with D3D12 and Vulkan, unleashing your current gen and next gen CPUs. But the downside is that it gives a lot of engineering hurdles to implement.Short answer :
Blame Directx11 forcing your CPU to slow down your GPU and praise CIG engineers who are giving their best to put Star Citizen on Vulkan in order to get rid of everything wrong you have noticed.
I would add that it isn’t draw-calls slowing us down. Good engine design in the late days of D3D11 really focused on having a thread whose only job was to do draw calls, and everything else feeding into it as efficiently as possible. What we currently have is more like the ideal for the dual-core era, where you mostly just tried to balance the amount of work being done by each core, so there’s definitely things we’re currently doing on render thread that we shouldn’t be. There’s also a lot of legacy “just-in-time” stuff being done in our render code that pushes up our CPU cost per draw, but is impossible/illegal in the new generation APIs, so even restructuring things to be legal in those APIs should push CPU cost down.