Geometry Brush Actors

Choose your OS:

BSPHouse.png

This document breaks down the use of Geometry Brushes in level creation.

Geometry Brushes are the most basic tool for level construction in Unreal. Conceptually, it is best to think of a Geometry Brush as filling in and carving out volumes of space in your level. Long ago, Geometry Brushes were used as the primary building block in level design. Now, however, that role has been passed on to Static Meshes, which are far more efficient. However, Geometry Brushes can still be useful in the early stages of a product for rapid prototyping of levels and objects, as well as for level construction by those who do not have access to 3D modeling tools. This document goes over the use of Geometry Brushes and how they can utilized in your levels.

In general, you can think of Geometry Brushes as a way to create basic shapes for use in your level design process, either as permanent fixtures or as something temporary to test with while your artists finish creating final meshes.

Uses for Geometry Brushes

While StaticMeshes are now primarily used to populate levels with geometry, Geometry Brushes still have their place. Here are some of the typical uses of Geometry Brushes:

Blocking Out Levels

A standard workflow for developing a level might go something like:

  • Block out and path level

  • Playtest flow and gameplay

  • Modify layout and repeat testing

  • Initial meshing pass

  • Initial lighting pass

  • Playtest for collision and performance issues

  • Polish pass

ElementalBSP.png

ElementalComplete.png

Brush Blocking / Rough-In

Final level

The first step is to first block out the level to nail down the layout and flow before putting any time into populating the level with Static Meshes and other finished art assets. This is usually done using Geometry Brushes to create a shell for the level and then, through testing and iterating, the final layout is agreed upon. Geometry Brushes are perfect for this aspect of the level design process because it does not require any time or involvement from the art team. The level designer can simply use the tools built into the Unreal Editor to create and modify the Geometry Brushes until they are happy with the layout and the way the level plays.

As testing finalizes and meshing begins, Geometry Brushes are gradually replaced by Static Meshes. This allows for fast initial iterations, as well as providing a nice reference for the art team to build from.

Simple Filler Geometry

Often, when a level designer is creating their level, they will come upon a situation where they need a fairly simple piece of geometry to fill in a gap or space. If no existing Static Mesh will fill the space, instead of bothering the art team tasking them with creating a custom mesh, the designer can simply use Geometry Brushes to fill the space. Even though Static Meshes are better performance-wise, Geometry Brushes can occasionally be used without any serious impact as long as the geometry is simple.

Creating Brushes

Brushes are created using the Geometry tab in the Place Mode panel:

  1. Choose the Brush Type (additive or subtractive) using the radio buttons at the bottom of the panel:

    add_subtract.png

  2. Drag and drop one of the primitive types from the list into a Viewport:

    BoxBrush.png

  3. Modify the Brush Settings, use the transform tools, or activate Geometry Editing Mode to reshape and resize the Brush. See Modifying Brushes for more details.

Brush Primitives

Primitive

Description

BSP_Box.png

Creates a Geometry Brush Actor in a Box shape that can then be customized within the Details panel. Options include:

Box Builder Settings

X

Size in the X-Axis.

Y

Size in the Y-Axis.

Z

Size in the Z-Axis.

Wall Thickness

How thick the inside walls of the Brush will be. Only relevant if Hollow is checked.

Hollow

Sets whether or not the Brush will be solid or have a hollow space inside, which is a fast way to make a room. Use Wall Thickness to control.

Tessellated

Whether the sides of the box are tessellated into triangles, rather than remaining as quads.

BSP_Cone.png

Creates a Geometry Brush Actor in a Cone shape that can then be customized within the Details panel. Options include:

Cone Builder Settings

Z

Height in the Z-Axis.

Cap Z

Height of the inner cap in the Z-Axis. Only relevant if Hollow is checked.

Outer Radius

Radius of the base of the cone.

Inner Radius

Radius of the inner wall of the cone. Only relevant if Hollow is checked.

Sides

Number of sides around the shape of the cone.

Align to Side

Whether to align the rotation of a side along the X-Axis, or let one of the angles point down the axis.

Hollow

Sets whether or not the Brush will be solid or have a hollow space inside, which is a fast way to make a room. Use Wall Thickness to control.

BSP_Cylinder.png

Creates a Geometry Brush Actor in a Cylinder shape that can then be customized within the Details panel. Options include:

Cylinder Builder Settings

Z

Height in the Z-Axis.

Outer Radius

Sets the radius of the cylinder.

Inner Radius

Sets the radius of the hollow space inside the cylinder. Only relevant if Hollow is checked.

Sides

Number of sides around the shape of the cylinder.

Align to Side

Whether to align the rotation of a side along the X-Axis, or let one of the angles point down the axis.

Hollow

Sets whether or not the Brush will be solid or have a hollow space inside, which is a fast way to make a room. Use Inner Radius to control.

BSP_CurvedStair.png

Creates a Geometry Brush Actor in a Curved Staircase shape, meaning a staircase that bends around at an angle but cannot wrap over itself - for that, you would need a Spiral Staircase. The Curved Staircase extends all the way to the ground. The shape can be customized within the Details panel. Options include:

Curved Stair Builder Settings

Inner Radius

Radius of the inner column around which the steps will wrap.

Step Height

Height of each stair from top to bottom.

Step Width

Width of each stair from side to side.

Angle of Curve

The angle of rotation the stair will have.

Num Steps

Number of steps in the staircase.

Add to First Step

Adds the provided height to the first step, effectively raising the height of the entire staircase.

Counter Clockwise

Check this box if you want the stairs to curve counterclockwise instead of clockwise.

BSP_LinStair.png

Creates a Geometry Brush Actor in a Linear Staircase shape, meaning a straight staircase that does not bend. The staircase extends all the way to the ground. The shape can then be customized within the Details panel. Options include:

Linear Stair Builder Settings

Step Length

Length of each stair from front to back.

Step Height

Height of each stair from top to bottom.

Step Width

Width of each stair from side to side.

Num Steps

Number of steps in the staircase.

Add to First Step

Adds the provided height to the first step, effectively raising the height of the entire staircase.

BSP_SpiralStair.png

Creates a Geometry Brush Actor in a Spiral Staircase shape, meaning a staircase can repeatedly wrap over itself. This staircase does not extend all the way to the ground. The shape can be customized within the Details panel. Options include:

Spiral Stair Builder Settings

Inner Radius

Radius of the inner column around which the steps will wrap.

Step Width

Width of each stair from side to side.

Step Height

Height of each stair from top to bottom.

Step Thickness

Increases the thickness of the staircase as a whole.

Num Steps Per 360

Determines the number of steps required to make one complete revolution.

Num Steps

Number of steps in the staircase. Each time this reaches the value (or multiple) of Num Steps per 360, the staircase will wrap around itself again.

Add to First Step

Adds the provided height to the first step, effectively raising the height of the entire staircase.

Sloped Ceiling

This causes the ceiling to be sloped rather than tiered.

Sloped Floor

Effectively turns the floor into a spiraling ramp, instead of a traditional staircase.

Counter Clockwise

Check this box if you want the stairs to curve counterclockwise instead of clockwise.

BSP_Sphere.png

Creates a Geometry Brush Actor in a Sphere shape that can then be customized within the Details panel. Options include:

Sphere Builder Settings

Radius

Sets the radius of the sphere.

Tessellation

Controls the number of sides used to make the sphere. Due to the method of tessellation, this is capped at 5.

Modifying Brushes

You can modify Brushes using several methods, each of which is suited to particular situations and how you wish to edit the Brush.

Geometry Editing Mode

The best way to change the actual shape of a Brush is to use Geometry Editing Mode. This editor mode allows the direct manipulation of the vertices, edges, and faces of the Brush. It is very similar to working in a very simplified 3D modeling application.

For more information about Geometry Editing Mode and how to use it to modify Brushes, see the Level Editor Modes page.

Transform Widgets

It is also possible to modify your Brush using the various editor transform widgets. These allow for interactively translating, rotating, and scaling and are accessible via the widget buttons in the viewport toolbar:

TransformWidgets.png

For more information on the Transform widgets and how to use them, please see Transforming Actors .

Brush Properties

Existing Brushes can be edited by selecting the Brush and then looking in the Details panel. If you have the entire Brush selected, you will see the Brush Settings category:

BrushDetails.png

Brush Types

The Brush Type dropdown includes the following:

Brush Type Dropdown

Additive

Sets the Brush to Additive.

Subtractive

Sets the Brush to Subtractive.

There is a variety of different Brush types you may use throughout the level creation process. Each type is particularly suited to specific situations.

Additive

Additive Brushes are like solid, filled-in space. This is the type you will use for any Brush geometry you wish to add to the level. A good way to visualize an additive Brush is to imagine the four walls, the floor, and the ceiling of a room. Each of these would be a separate box-like additive brush in your map with their corners matching up to form an exclosed space.

Subtractive

A Subtractive Brush is a hollow, carved-out space. This is the type of Brush you would use to remove solid space, such as to create doors, windows, etc, from previously created additive Brushes. Subtractive space is the only area that players can freely move around in.

Advanced Properties

Clicking the Advanced button at the bottom of the Brush Settings exposes the advanced Brush properties:

BrushDetailsAdvanced.png

Polygons

The Polygons dropdown offers the following options:

PolygonsDropdown.png

Polygons Dropdown

Merge

Merges together any planar faces on a Brush.

Separate

Reverses the effects of a merge.

Solidity

The Solidity dropdown includes the following:

Be sure to read the Brush Solidity section for more details.

SolidityDropdown.png

Solidity Dropdown

Solid

Sets the Brush solidity to be solid.

Semi Solid

Sets the Brush solidity to be semi-solid.

Non Solid

Sets the Brush solidity to be non-solid.

Order

The Order dropdown includes the following:

Be sure to read the Brush Order section for more details:

OderDropdown.png

Order Dropdown

To First

Makes the selected Brush the first to be calculated.

To Last

Makes the selected Brush the last to be calculated.

Align and Static Mesh Buttons

If you expand the properties under the Brush Settings Category, the following buttons appear:

Brush Type Dropdown

Align Brush Vertices

Snaps the Brush's vertices to the grid.

Create Static Mesh

Converts the current Brush to a Static Mesh Actor, saved at the location specified.

Drag Grid

The drag grid used to snap objects in the world is very important when working with Brushes. If the edges or corners of Brushes are not set on the grid, errors can occur causing rendering artifacts or other problems. You should always make sure the drag grid is enabled when working with Brushes and make sure that you keep the vertices of your Brushes on this grid at all times.

Brush Order

The order in which Brushes are placed is extremely important as the addition or subtraction operations are performed according to this order. Placing a subtractive Brush and then an additive Brush will not have the same effect as placing an additive Brush and then a subtractive Brush, even if they are in the exact same locations. If you subtract from empty space and then add on top of that, the subtractive Brush is essentially ignored as you cannot subtract from nothing. However, if you place those same Brushes in the opposite order, you are adding to empty space and then subtracting from the addition carving space out of it.

Sometimes you may place Brushes out of order or want to add a new Brush that needs to be calculated before an existing Brush. Luckily, the order of Brushes can be modified as you can see in the Brush Properties section.

Brush Surfaces

If you select a Brush surface (use Ctrl + Shift + Left Click to select the surface and not the Brush), you will see the following categories in the Details panel:

BSPSurfaceDetails.png

Geometry Category

The Geometry category contains a few tools for helping you manage Material application across Brush surfaces.

Geometry Category Buttons

Select Button

Various commands to help you select Brush surfaces based on a variety of situations.

Alignment

Realigns the texture coordinates for surfaces based on your desired settings. This is useful, for example, when you need a complex arrangement of Brushes along the floor to align and look like a single surface.

Apply Material

Applies the currently selected Material in the Content Browser to the Brush surface.

Clean Geometry Materials

If through any operations your Brush surfaces have lost their Material, this will fix the problem.

Surface Properties

The Surface Properties area contains a variety of tools to help you control how textures are placed across your surfaces, as well as lightmap resolution.

Surface Property Categories

Pan

The buttons in this section allow you to pan the texture of the Material either horizontally or vertically by the given number of units.

Rotate

Rotates the texture on a Brush surface's Material by the given number of degrees.

Flip

Allows you to flip the texture on a Brush surface either horizontally or vertically.

Scale

Resizes the texture of a Brush surface by the amount given.

Lighting

The Lighting section allows you to change a variety of important light-centric properties for your Brush surfaces.

Lighting Properties

Lightmap Resolution

Essentially allows for adjustment of the shadows across this surface. The lower the number, the tighter the shadows.

Lightmass Settings

Use Two Sided Lighting

If true, this surface will receive light on both the positve and negative side of each polygon.

Shadow Indirect Only

If true, this surface will only create shadows from indirect lighting.

Diffuse Boost

Scales the amount of influnce diffuse color will have on indirect lighting.

Fully Occluded Samples Fraction

Fraction of samples along this surface that must be occluded before it is considered to be occluded from indirect lighting calculations.

Brush Solidity

Brushes can be either Solid, Semi-solid, or Non-solid. The solidity of a Brush refers to whether it collides with objects in the world and whether the Brush causes BSP cuts to be created in the surrounding Brushes when building geometry.

The solidity of Brushes can be changed in the Details panel after the Brush is created:

BrushSolidity.png

The three types of solidity are explained below.

Solid

Solid Brushes are the default type of Brush. These are what you get when you create a new additive or subtractive Brush. They have the following attributes:

  • Block players and projectiles in the game.

  • Can be additive or subtractive.

  • Create cuts in the surrounding Brushes.

Semi-Solid

Semi-solid Brushes are colliding Brushes that can be placed in a level without creating cuts to the surrounding world geometry. These can be used to create things such as pillars and support beams, though such objects should normally be created through the use of Static Meshes. They have the following attributes:

  • Block players and projectiles, just as Solid Brushes do.

  • Can only be additive, never subtractive.

  • Do not create cuts in the surrounding Brushes.

Non-Solid

Non-Solid Brushes are non-colliding Brushes that also do not create cuts in the surrounding world geometry. These have the effect of being visible but unable to be interacted with in any way. They have the following attributes:

  • Do not block players or projectiles.

  • Can only be additive, never subtractive.

  • Do not create cuts in the surrounding Brushes.