Hi guys. Let’s talk about BSP, the crippled product of UE4.
I’m a fan of BSP. It is a fast tool to block out Levels and I’m more interested in BSP as a construction kit for interior Levels and thanks to the Grid Snapping I can build rooms in a few seconds.
However, there are some heavy problems that exist since the first version. I wonder why
BSP doesn’t have proper Lightmaps. No matter what you do, changing the Lightmap resolution of a BSP surfaces doesn’t change the Resolution. Quite the opposite: the Lightmaps get worse.
Here’s a construction I quickly made.
The Lightmap Resolution of all surfaces is 32 (default).
Here’s the same scene, but this time, the Lightmap Resolution of the Floor of the left room is set to 256:
As you can see, the Lightmap is anything but correct.
In my case, BSPs get converted to Static Meshes (Most of the time the walls).
I admit that I’m a bit lazy here, but BSP Brushes get converted to Static Meshes as if they are to connected to nothing.
For Walls and no visible faces this wastes Lightmap Space (and a Drawcall if the non-visible face has the default texture)
Here’s an example: Imagine that these parts separate Rooms. The Wall with the texture has non visible faces (to the Ground and the adjacent Wall).
However, when converting them to a Static Mesh, the Invisible Faces are there:
As I said, it wastes a lot of Lightmap Space and sometimes may cause Lightbleeding.
I know I can export/import them into a 3D App. but why rely on Third Party Software?
Let’s stay at the non-visible Faces of BSP Brushes.
What, if I simply delete these faces?
Deleting BSP Faces results in an annoying bug that exists from the beginning:
The deleted face creates a space beyond infinity in which additional BSP Faces disappear:
Here, I’m gonna delete the selected Face and see what happens:
POOF, many faces of nearby BSP Brushes disappear and are unselectable (Still selectable in Outliner though)!
This is a hindrance when working in interiors and you want to have the Walls separate of adjacent rooms, because the deleted non-visible faces of one room wall make the room on the other side disappear.
The Flip Face Function of the Edit Mode does the same.
The Clip Brush Function in the Edit Mode does what it says, half at least.
The Flip Normal and Split Functionality don’t have any impact on the result. The Result when applying Clip Brush is always the same.
I’m tempted to switch to Hammer’s Source as my Level Editor with HammUEr importing the Levels. It removes faces that have Hammer’s “NoDraw” Material applied automatically and the Brushes are imported as Static Meshes.
I’m asking myself: Why is the workflow with BSP so broken?
Why don’t BSP Brushes behave like Static Meshes from the beginning with proper Lightmaps and maybe Physic Simulations?
I mean if we can convert them explicitly to Static Meshes, why aren’t they directly converted to Static Meshes at compile time?
I would sacrifice some build time for this.
I know BSP is nowadays used for blocking out only and “everything get’s replaced by static Meshes anyways”, Well, walls are walls and are pretty much just a block/plane what BSP Brushes are.