Brush (video game)

Brushes are templates used in some 3D video game engines, such as the Quake engine, its derivatives the GoldSrc and Source game engines, or the Unreal Engine, to construct levels.[1] Brushes can be primitive shapes (such as cubes, spheres and cones), pre-defined shapes (such as staircases), or custom shapes (such as prisms and other polyhedra).[2][3] In order to describe these shapes mathematically, each brush is made up of planes that define its boundaries. A plane can be represented by an equation in 3D space, which looks like this:

This equation describes a single flat surface (or plane) in 3D space, where a, b, and c are coefficients that determine the orientation of the plane, and d is a constant that shifts the plane along its axis.

To construct a brush, the game engine uses multiple planes working together. For example, a cube can be defined by six planes, each restricting space within a certain region. Here’s how a set of three planes would be represented mathematically:

Each of these equations corresponds to a different plane that helps define the shape of the brush.

In some engines such as Unreal, brushes are categorized as either additive or subtractive. Additive brushes add volume to the level, forming walls, platforms, or other structures, while subtractive brushes carve out spaces within these volumes, like windows or doorways.[4]

During the map compilation process, brushes are turned into meshes that can be rendered by the game engine. Often brushes are restricted to convex shapes only, as this reduces the complexity of the binary space partitioning process. However, using CSG operations, complex rooms and objects can be created by adding, subtracting and intersecting brushes to and from one another.[5] Additionally, brushes can be used as liquids[6] or as an area trigger.[7]

  1. ^ "Definition of Brush in the Valve Developer Community". Valve. Retrieved 2011-03-24.
  2. ^ Finney, Kenneth V. (2004). 3D Game Programming All in One (Course Technology PTR Game Development Series). Muska & Lipman/Premier-Trade. ISBN 1-59200-136-X.
  3. ^ Holmes, Shawn (2002). Focus on Mod Programming for Quake III Arena. Premier Press. ISBN 1-931841-56-X.
  4. ^ "Mastering the Basics of Unreal Engine 4: BSP Geometry". www.pluralsight.com. Retrieved 2024-10-03.
  5. ^ "UDN – Two – BspBrushesTutorial". Epic Games. Retrieved 2012-04-21.
  6. ^ BSP Headquarters - BSP Quake Tutorial #5
  7. ^ BSP Headquarters - BSP Quake Tutorial #6