From Surf Wiki (app.surf) — the open knowledge base
Brush (video games)
Video game templates
Video game templates
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. 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). 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:
ax+by+cz+d=0
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: \begin{cases} a_1x + b_1y + c_1z + d_1 = 0 \ a_2x + b_2y + c_2z + d_2 = 0 \ a_3x + b_3y + c_3z + d_3 = 0 \end{cases}
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.
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. Additionally, brushes can be used as liquids or as an area trigger.
History
Brush-based techniques originated during the period of three-dimensional game development, being developed around the same time period as Quake. These games required 3D geometry for constructing more advanced true 3D environments different from previous raycasting approaches. During this time brushes became used with and closely associated with Binary Space Partitioning as this allowed for sustaining real-time performance on constrained computational hardware. Brushes offered a viable solution, enabling level designers to utilize elementary geometric primitives for the creation of intricate spatial structures.
Modern use
Brush-based modeling is extensively used in constructive solid geometry, a technique that builds complex surfaces by combining simpler ones using Boolean operations such as union, intersection, and difference. In modern game engines, brushes are usually limited to only being used during the initial prototyping or "Block out" phase. This is due to the fact that they are less efficient when overused, slowing down performance due to their simple, non-optimized geometry.
References
References
- "Definition of Brush in the Valve Developer Community". Valve.
- Finney, Kenneth V.. (2004). "3D Game Programming All in One (Course Technology PTR Game Development Series)". Muska & Lipman/Premier-Trade.
- Holmes, Shawn. (2002). "Focus on Mod Programming for Quake III Arena". Premier Press.
- "Mastering the Basics of Unreal Engine 4: BSP Geometry".
- "UDN – Two – BspBrushesTutorial". [[Epic Games]].
- [http://www.bspquakeeditor.com/q1tutor/q_liquid.html BSP Headquarters - BSP Quake Tutorial #5]
- [http://www.bspquakeeditor.com/q1tutor/q_trigger.html BSP Headquarters - BSP Quake Tutorial #6]
- Kushner, David S.. (2003). "Masters of doom: how two guys created an empire and transformed pop culture". Random House.
- Kremers, Rudolf. (2009). "Level design: concept, theory, and practice". A.K. Peters.
- Hughes, John F.. (2014). "Computer graphics: principles and practice". Addison-Wesley.
- "Mastering the Basics of Unreal Engine 4: BSP Geometry".
This article was imported from Wikipedia and is available under the Creative Commons Attribution-ShareAlike 4.0 License. Content has been adapted to SurfDoc format. Original contributors can be found on the article history page.
Ask Mako anything about Brush (video games) — get instant answers, deeper analysis, and related topics.
Research with MakoFree with your Surf account
Create a free account to save articles, ask Mako questions, and organize your research.
Sign up freeThis content may have been generated or modified by AI. CloudSurf Software LLC is not responsible for the accuracy, completeness, or reliability of AI-generated content. Always verify important information from primary sources.
Report