Skip to content

BSP Editing

Colin Basnett edited this page Aug 15, 2024 · 13 revisions

NOTE: This document is incomplete. More information will be added soon.

The BDK provides a way to create and edit CSG brushes, as well as building and texturing the resulting level geometry.

Note that at this time, light building is not yet supported, though is planned for a later date.

Creating Brushes

In order to add a BSP brush. Press Shift+A in the 3D Viewport, and navigate to BDK > BSP Brush.

From the Brush panel in the BDK tab in the Sidebar, you can select the CSG Operation, as well as any Poly Flags that you want to be applied to the brush.

The brush objects are simply normal Blender meshes, so their shape can be edited like any other mesh.

Converting Meshes to Brushes

Another useful but less common method for creating brushes is to create one from an existing Mesh object. You can do this by selected an existing mesh object and executing the Convert to BSP Brush operator. The will convert the mesh to a brush and preserve the texturing of the mesh as best it can.

Building the Level

Just like UnrealEd, in order to see the build level geometry, you must run a command to build it. This is done by executing the Build Level operator (Ctrl+Shift+B).

image

This will create a Level mesh object that will be used and re-used on subsequent builds.

Note that at the moment, Lighting is not supported in the BDK, although it is planned.

Build Order

In contrast to UnrealEd, the BDK allows fine-grained control over the BSP brush build order in a way that's easy to modify and reason about.

The brush build order is determined by the the scene hierarchy as it appears in the Outliner, evaluated from the top down.

A notable exception to this rule is that sibling objects (i.e., objects within the same collection and same "scene depth") are evaluated in an unpredictable order.

The most effective way to control the build order is through the use of Collections, as these can be easily re-ordered and grouped together in logical ways. In addition, objects hierarchies are also evaluated in a top-down manner, so parent objects are evaluated before their children.

As an added benefit, keeping brushes in logically grouped collections and object hierarchies makes them easier to work with.

image

In the example above, a House 2 is divided up into its main addition brushes (the outside shape of the house), followed by the subtraction brushes for the rooms and doors of each floor.

Asset Instances

Asset instances are treated as normal collections, and any brushes within them will be included in the BSP build.

This is a powerful feature that allows you to combine multiple brushes (and other actors such as static meshes) into reusable instances. For example, you may have a door asset that contains the door's subtraction brush and a static mesh of the door-frame together as one.

Keep in mind that faces created by brushes within asset instances will be marked as "read-only" and will not be editable through the BSP surface editing operators.

Build Order Property

When copying brushes from UnrealEd to the BDK, the Build Order property (found in the Brush > Advanced panel) is used to preserve the original brush order from the T3D contents. Note this property is only used for determining sort order of objects within the same collection and the collection order still takes precedence.

Generally, you should not edit this property or use it for new maps; it's only for matching the build order of the imported map.