• Please make sure you are familiar with the forum rules. You can find them here: https://forums.tripwireinteractive.com/index.php?threads/forum-rules.2334636/

Level Design Overcoming the dreaded BSP lag

Catalavos

Grizzled Veteran
Oct 5, 2010
1,327
53
Baltimore, MD
Hey guys,
Does anyone have a strategy for overcoming the horrible lag induced by BSP objects in the SDK? The best I've been able to come up with is to manipulate the camera in wireframe mode and then switch back and forth to unlit mode but this is a real pain. The "Hide Selected" tool is nice but unfortunately you need to select each individual face in order for it to work; you cant just draw a box (ctrl-alt/ right mouse) around them to "select all" and then hide selected as you can in wireframe mode.

Also, I've given "convert to static mesh" a try but it cant re-create complex shapes with additive and subtractive geometry a'la walls with windows.
 
Yes on all counts

I have a TON of BSP and makes the camera slow down and have a very jittery movement as you move about the scene when in unlit mode. If I switch to Wireframe mode, the camera moves at normal speed and if I hit the "Q" key to turn off BSP the camera moves normally.

Oddly, if you re-build lighting the camera will move perfectly until you start to add or edit more BSP.

Lag is happening in SDK Editor window, not in PIE mode.
 
Upvote 0
The SDK becomes very crash-prone when trying to manipulate large amounts of BSP actors. For me, it crashed the most if you tried to do anything with them except for translating in x, y, or z in sequence of each other. Rotating, scaling, and mirroring should be be done on an individual basis to improve stability.

If you need to rotate multiple actors, select the group, move it around a little, and then rotate. It will be less likely to crash this way.
 
Upvote 0
Thanks for the tips, I have learned many hard lessons when playing BSP roulette. Drecks, I got your message but I'm in too deep to change plans :). I'm letting my idiot side win again by trying to make something too historically accurate. I think I might try making a static mesh for the apartment facades. It will save a few hundred BSP shapes.

Here's what I'm working on; don't want to start a WIP thread here yet until I have a lot more work done. http://www.raidersmerciless.com/showthread.php?t=16474
 
Upvote 0
You can create a static meshe with additive and substractive BSP.. make a brush around your BSPs and click CSG intersect button, it will create a unique additive BSP and you can convert it to static mesh.


BUT you better create real static meshes in 3d program, because:

- you will have no collision in the static mesh, but you can make a blocking volume with your newly created brush when you click the intersect button..
- you will surely not have the real footstep sound (concrete, wood, etc..) in the static mesh
- you will surely have problem with dominant directional light passing through the walls at some places.
- you will have to select all surfaces with same material and 'realign them all the same way like 'planar' or you will have the default blue/white material on some parts of your created static meshes
- you will have some random invisible collision box at some random place.. don't know why... depending on your building shape or other things...

I spend two complete day to convert and have nice result of a little village build in BSP to static meshes, but after all efforts i notice to much problems, and went back to BSP. I think BSP is not optimized too, static meshes would be better but.. as I said you better create real static meshes and no BSP conversioon.
 
Last edited:
Upvote 0
I am not sure there is a particular problem with BSP per se. Sure BSP is heavy on physical RAM and pretty heavy duty on the CPU but it shouldn't cause the entire editor to lag.

To stop that lag that I suspect you are referring to, select ANY covernode then ANY link node on the covernode then press the middle mouse button to align it to the surface beneath it. Voila!, the lag is gone. Why? Dunno. Problem solved? Yes, probably. :p

As an aside, you should only convert BSP to static mesh when it will be handed over to an artists to clean it up. Simplistic DOP-6 style BSP-StaticMesh conversions are ok-ish but by and large the Unreal engine butchers BSP conversions to StaticMesh in ways that are not the most intuitive or flattering to performance.

Regards
 
Upvote 0
To add onto Swag's post: Many stock maps in RO2 actually make use of BSP geometry in the buildings. It looks better to leave them as BSP instead of converting into static meshes, and the performance penalty is often negligible if you are only doing things like walls floors and ceilings (ie. anything flat). Even some of the bunkers on IwoJima are just simple BSP.
 
Upvote 0