Brush
Brushes are wireframe models, made directly within UnrealEd, which are used by the build process to compile the BSP world. In general, brushes are simple shapes, such as cubes and cylinders. The Unreal Engine differs from most other 3D engines in that its brushes combine with CSG: they can be additive or subtractive, removing or adding matter to the world.
Default brush colours
The brush wireframes are coloured according to the brush solidity. These global colours can be changed under UnrealEd Main Menu → View → UnrealEd Advanced Options.
- Active : red, hence the name red builder brush
- Subtractive: yellow
- Additive: blue
- Semisolid: pink
- Non-Solid: green
- Zone Portal: yellow-green
Properties
- bColored & BrushColor
- set the flag to true and choose your own colours for an individual brush...
- CsgOper
- sets the brush CSG type. This is equivalent to doing Brush Context Menu → CSG to change between additive and subtractive CSG types.
- CSG_Active
- CSG_Add
- CSG_Subtract
- CSG_Intersect
- CSG_Deintersect
- MainScale & PostScale
- see brush scaling and brush transformation.
- Scale – a summary readout of sub items
- X, Y, Z
- SheerAxis
- Sheer None, Sheer ZX, etc
- SheerRate
- Scale – a summary readout of sub items
- PolyFlags
- The PolyFlags property overrides the Surface Flags (UT) for all this brush's surfaces. This is set on brushes made with the Add Special command.
Known subclasses
- Mover (UT) – in UT and similar versions of the engine, movers are a special type of brush. In UT2003 and later, movers are static meshes.
Related Topics
Making brushes
- Red Builder Brush has a complete list
- Brushbuilders
Working with brushes:
Brush toolbox modes
Brush techniques
- Brush Sinking
- Brush Hacking (for the l33t...)
- Brush Transformation
Types of Brush
- Brush Solidity: Solid?, Semisolid, Nonsolid
- Hardware Brush
General
Technical
weird brush mojo
(Tarquin writes...)
Just been playing around trying to see if it's possible to pre-merge polys in the building process... it's not, but if anyone from Epic reads this, please nudge Warren, I think it would be a good idea.
Anyway... I was copying brushes and pasting to Textpad to see how merged polys are stored internally. (yes, it's another of those "gather round the fireside with tarquin" moments, as he tells an interminable story where two lines would suffice...)
Two kinds of behaviour spotted. Some brushes look like this:
Begin Brush Name=Model4 Begin PolyList ... blah Brush=Model'MyLevel.Model4'
and some skip the whole "Begin brush" thing, and just have:
Brush=Model'MyLevel.Model4'
So... what's happening here? Does UnrealEd secretly keep models of brushes that are the same? I made a second cube after I'd made 2D-ed sheets, and this one was fully defined.
My initial hypothesis is this:
- brushes made with the same incarnation of the RBB are only stored once as a model. any beyond the first "stamp" are stored with a reference to the model of the first.
- this would seem to imply (unless there's a later optimization phase) that there's a way to keep map filesize down here.
So what happens if you intersect a brush after it's been made - does it then reference the model the brush ws built from? – EntropicLqd.
I think it's as follows: First off, UnrealEd always keeps the brush geometry in a Model object that's referenced from the Brush object (at least that is confirmed). I'm guessing that UnrealEd fails to copy the Model object to the clipboard due to some confusion in some cases, nothing more.
In any case, you can do some pretty interesting things by manually editing what has been copied to the clipboard. If you, for instance, give two brushes the same model reference, vertex editing one instance of that brush will automagically vertex-edit all other instances as well (and real-time). Since I guess that unused model objects won't be saved along with the map, I suppose that can indeed serve to save some file space (not too much though since the rendered, cut world polygons are stored separately) and probably even as a comfortable editing tool. —Mychaeel
- Link: Brush Hacking
Category Class (DX)
Category Class (P2)
Category Class (RTNP)
Category Class (UT)
Category Class (UT2003)
Category Class (UT2004)