# Chapter 4; A Universe of Brushes World Geometry In-Depth

In this tutorial I’ve used:

1. UnrealEd.

BSP brushes provide the means to create the base layout for your levels. BSP brushes can also be used to “prototype” a level, allowing you a fast way to generate a preview of what the level will look like without having to wait for assets to be created.

There are two important acronyms you must remember when working with world geometry: BSP and CSG. BSP stands for Binary Space Partition, a name which derives from the calculations used to tell the game’s engine the proper order to render each polygon. However, the intricacies of how BSP works internally are more than most level designers will really need. Because of this, we will simply show you the available tools, and give you some insight on how they can be used during level construction.

CSG stands for Constructive Solid Geometry, and is simply another word for world geometry. When working with UnrealEd, it simply refers to the geometry that is created from your BSP brushes. The general workflow is that the user creates the BSP brushes, and then UnrealEd uses those brushes to create the level’s CSG, or world geometry.

All BSP creation revolves around the construction and placement of brushes. In UnrealEd, a brush is simply a three-dimensional object used to designate a certain area of space. There are three different types of brush that you will use most often during level creation:

1. The Red Builder Brush
3. Subtractive brushes.

If you need to hide the Red Builder Brush while working in UnrealEd, you may simply enter Game Mode by pressing the G key.

Additive brushes allow you to add mass into your level. They are created from the Red Builder Brush by clicking the CSG: Add button in the Toolbox. Additive brushes appear in your viewports as blue wireframes. Additive brushes will be created in the precise shape of the Red Builder Brush.

Subtractive brushes are used to remove mass from your level, similar to carving out the current shape of the Red Builder Brush. You can create them by clicking the CSG: Subtract button in the Toolbox. Subtractive brushes appear as yellow wireframes in your level

Whether you primarily use additive or subtractive brushes in your level will usually depend on the type of level you create. As of the release of Unreal Engine 3.0, users can create levels in an additive or subtractive manner, rather than being limited only to subtractive levels as they were in previous generations of the engine. The difference is quite simple; an additive level can be thought of as a massive area of open air, into which you will additively create a level. A subtractive level, on the other hand, is a massive area of solid mass, much like being inside a mountain. From this mass, you will carve out your level. Neither approach is technically “better” or more efficient than the other; the decision of which to use will typically be a matter of personal preference.

Moving with Pivots

Brush pivots provide center of movement for your brushes. When you’re snapping to the grid, this pivot determines the point at which the brush snaps. The pivot is also used as a point of rotation. For example, say you have a cube-shaped brush with its pivot precisely at the center of the cube. If you rotate the brush, you would see the cube appear to spin in place. However, if you relocated the pivot to the corner of the brush, you would see the cube rotate about its corner. You can change the pivot of a BSP brush by right-clicking on one of its vertices, or by right-clicking anywhere on the screen and using the options under Pivot.

Brush Order

Brush order is another important, if not so often used, aspect to BSP creation. Say you’ve constructed a level of a multistory building, all of which is contained within a large cube-shaped subtraction. Perhaps you later decide that placing the building inside a cylindrical subtraction would make more sense, and so you delete the subtractive cube and replace it with a cylinder. However, when you build your geometry, you find that the entire building has disappeared! This happens because the brushes were created in the wrong order. Think about it: If the last operation you perform is a large subtraction, then all of the additive brushes within that subtraction would be removed.

The Volumetric primitive is actually just a specified number of vertical sheets rotated about the Z-axis to give the effect of having volume. This can be used for creating effects such as fire, smoke, plasma, chains, or trees, where exact three-dimensional detail is not necessary or would become a hindrance to performance.

Brush solidity plays an important role in how your level’s world geometry will be created. If your brushes are too complex, you can end up with many divisions in your world geometry, which can harm performance. In general, it’s best to remember that BSP brushes should be used for prototyping your levels and to create the general volume, not for any sort of decoration. Save your decoration for static meshes!

Brush Types:

1. Solid Brush: Solid brushes are by far the most common. In fact, every brush you have created so far has been a solid brush.
1. Solid brushes have the following main properties:
1. Solid brushes block players and projectiles in the game. This means you can’t run through them or shoot through them.
2. Solid brushes can be additive or subtractive.
3. Solid brushes create BSP cuts in their surrounding world geometry.
2. Semi-Solid: Semi-solid brushes can be placed in a level without adding any extra BSP cuts to the surrounding world geometry. This can be beneficial when using brushes to create things such as pillars and beams, but you should note that such objects are typically reserved for static meshes.
1. The following is a list of key attributes for semi-solid brushes:
1. Semi-Solid brushes block players and projectiles, just as Solid brushes do.
2. Semi-Solids can only be additive, never subtractive.
3. Semi-Solids don’t leave BSP cuts in their surrounding world geometry.
3. Non-Solid: Non-Solid brushes behave similarly to a hologram. They have no collision capabilities, and are therefore of fairly limited use.
1. The following is a list of their properties:
1. Non-Solid brushes do not block players or projectiles.
2. Non-Solids can only be additive, never subtractive.
3. Non-Solids do not leave BSP cuts in their surrounding geometry.

Brushes in Unreal are composed of polygons, which are shapes with many sides. When you are working in 3D, a polygon is a surface comprised of vertices, edges, and at least one face.

Soft selection uses a specified spherical radius from the selected vertex to determine all affected vertices’ selection weights. The weight falls off from 1 at the selected vertex to 0 at the specified radius. All vertices at or beyond the radius are essentially unaffected. Any transformation will be applied based on the weight of all affected vertices. The selected vertex will receive the full transformation, while a vertex halfway along the radius from the selected vertex will receive only half the transformation and a vertex at or beyond the radius will not receive any transformation at all.