OpenArena
Advertisement
OpenArena's Mapping manual
ProloguePre-mapping stageMap gameplayChoosing an editorYour first mapBrush manipulation2D/3D clippingCurve manipulationTexturesIntroduction to EntitiesLightingAdvanced lightingWeapon/Item placementTriggers and moversDynamic featuresShadersTerrains and liquidsMapmodelsSoundsGametype supportOptimization and TroubleshootingHint brushesBot playTroubleshootingFinal touchesCompilation & packaging
Glossary of termsAdvanced featuresModelling a mapEditor differencesDefault assets (Textures/Models/Sounds) • GPL

After learning how to create rooms, it's time to see more advanced things which can be done with brushes.

Movement[]

Moving a brush is a straightforward procedure. Select the brush, keep MouseButton1 pressed with the cursor inside the brush to be moved, and move the mouse with the button pressed. There are, however, more things which can be done than simply move:

  • Nudging moves the brush around the map in discrete map grid increments. The movement is in terms of the selected window, not in terms of XYZ coordinates. The keys are "Nudge Down" (Alt + ↓) "Nudge Up" (Alt + ↑) "Nudge Left" (Alt + ←) and "Nudge Right" (Alt + →).
  • It's also possible to move the selection by using the keys KeypadMinus and KeypadPlus in order to move the brush around the map in discrete map grid increments.

Rotation, scaling and flipping[]

In this section we're going to see how to scale, rotate and move brushes around.[1]

All the level editors follow the same processes, and in any of them you have two ways of doing these tasks, either by using the "specify <transformation>" and setting a determined value, or by using a free transformation button.

Note that brush transformation isn't really recommended, especially for structural brushes, as they may not seal the level from the void, causing leaks. Also, some brush manipulation tools may make some areas harder to maintain.

Clipping and (to some extent) vertex editing are safer ways to manipulate brushes.

For mapmodel manipulation, though, these tools are very useful.

Rotation[]

Brushes can be rotated. This allows them to be faced at a specific angle.
However, don't forget usually axis-oriented geometry is preferred.

First, select the brush. From here on, we have two alternatives: the free rotation tool or the specify rotation dialog box.

  • The first comes in handy if you want to rotate freely a brush. It has a predefined key, normally R. Once enabled the mode, rotate the brush until it meets your needs.
  • The latter (also called "Arbitrary Rotation") allows you to rotate in either the X, Y or Z angle by an amount read from the keyboard. There are also the buttons "Rotate X", "Rotate Y" and "Rotate Z" which rotates 90 degrees around the specified axis.[2]

Scale[]

Brushes can also be scaled. Sometimes we need to set a specific width/height/breadth for covering an area.

The easiest, and most used method, is to select the brush in any of the 2D views and use drag&drop. Other, unsafer ways include the "Arbitrary Scale"[2] dialog box and the free scale tool. The latter has a tendency to mess with the texture alignment.

Flip[]

An extension of Rotating, these tools ("Flip X", "Flip Y", "Flip Z") mirror objects along either X, Y, or Z-axes. A menu command and toolbar button controls each. The six flip and rotate toolbar commands are the second grouping (from the left) on the toolbar. The rotate command for the same axis is always next to the flip command.[2]

CSG[]

Short for Constructive Solid Geometry, it's a technique used in solid modeling which allows a modeler (or mapper, in our case) to create a complex surface or object by using Boolean operators to combine objects.[3]

There are three CSG tools in our editors: CSG Merge, CSG Hollow and CSG Subtract. Although they are convenient to use for some operations, they often do things that the user may not care for. These "side effects" can include breaking brushes into inconvenient parts, cutting up adjacent brushes, and creating hard to find and remove micro brushes.[2] CSG Hollow should be used with precaution, and CSG Subtract should be avoided at all costs. Here we're going to see each one of them.

Before going forward, lest we forget that all brushes in the OA engine (and therefore in GtkRadiant) need to be convex, as the engine cannot work with concave brushes.[4]

CSG Merge[]

The most useful CSG manipulation tool. Like its name implies, it merges two brushes into a single one. Select two or more brushes which align with each other on at least one side. Then press the CSG Merge button the in toolbar.[4]

In order for the tool to work, the brushes to be merged should create a new concave brush. The tool won't operate at all if it detects that the brushes to be merged will not generate a concave brush.

CSG Hollow[]

The CSG Hollow function does exactly what it says. From a single brush it creates a brush for each face. To use it, simply select the brush you want to hollow, make sure you have chosen the grid size you want, and click the hollow button in the toolbar.[4]

The "side" brushes will be as thick as the grid size you have selected. This tool does however overlap the brushes in the corners, which should be avoided, so after using this tool, always fix the overlapping corners. Because of this, the tool works better with six-sided cube brushes.

CSG Subtract[]

This tool allows you to "cut out" or "subtract" one brush with another. This tool isn't recommendable at all, as its use tends to end with tons of hidden, small brushes not on the grid as a result. For arches, doors and other round things, you're probably better off with patches, bevels, clipping and vertex editing. But its use is placed here for archive reasons.[4]

To use CSG Subtract intersect two or more brushes, then select the brush you want to cut with, and press the first CSG Subtract button in the toolbar. If you delete the brush you cut with, you should now find that there's a hole in the other brush(es) where that brush was. If you select the brushes left, you will most likely see that they have split up into smaller brushes.

If you anyway insist on using this tool, region off together the brushes that will be cut and the brushes which will be used for cutting. This keeps other brushes in the map from being affected by the action. It's also a good idea to save just before doing the action, so the user can "back up" to an earlier version.[2][5]

Clipping[]

The Clipper tool is one of the most useful tools in mapping, to the point that its use is recommended instead of 4 or 5 of the above mentioned tools. It's basically a virtual knife which, with the aid of markers (blue dots) specify an angle to slice the brushwork.

This tool is so useful that it has its own page.

Note: "clipping" term may also refer to "usage of clip brushes" (bot clip, player clip, weapon clip): see Mapping manual/Bot play for more infos about that.

Edge and vertex edition[]

Edge editing and vertex editing are two very useful techniques which are used to fine-tune the look of brushes. Edge editing lets you select any edge and move it around, while keeping all other edges in place, vertex editing allows you to do the same, but instead of edges, you can select the vertices (corners) of a brush.[6]

  • Select any brush.
  • Press E or click the "Edge Select" button to switch to edge editing mode. A green dot will appear on every edge of the brush
  • Select (Shift + MouseButton1) any of the green dots to select them, turning them blue. You may select more than one dot at once.
  • Once selected, you can use the basic transforming tools to rotate, scale or move the selected dots.

Vertex works exactly the same way, by pressing V or clicking the "Vertex Select" button, but this time, you select the corners of the brushes. All the basic transformation tools will still be available. You can also use vertex editing to edit patch meshes.

Also, by pressing F you can enter the face editing mode, which works almost like the two others, but lets you select faces instead of vertices or edges.

Snapping to grid[]

If you are using the map grid to keep brushes in alignment, this is a great tool. Rotated brushes and brushes that have had their vertices tweaked can have vertices that no longer lie on map grid intersections. This snaps the vertices to align with the grid. Be warned that snapping to large grids may be hazardous to the health of your brush.[2]

Detail and structural brushes[]

This is a quick overview of what these tools do. Its use is highly recommendable, as using it in tandem with proper placement of Hint Brushes speeds up the compilation process and un-stresses the engine by rendering a lower amount of brushes at once, thus speeding up the performance of the level. For more about this, check the O+T page.

"Make Detail" (Ctrl + M) makes a brush non-structural. This means that it cannot be used to seal the hull of the map world. If a detail brush is used as a hull, the map will "leak" when compiled. Detail brushes have two beneficial effects:

  • They are less likely to cause additional cuts to occur in non-detail brushes that they touch, thus reducing triangle counts. This can help reduce frame rate.
  • When the compiler does Vis, it breaks the world up into many small volumes. Any break in the surface of the box that forms a room creates additional volumes that must be. Detail brushes don't create these breaks. Therefore, using them speeds up compiling.[2]

Structural is the Default State for brushes. Textures that are not manipulated by shader scripts to be transparent or non-solid do not change this. Essentially, "Make Structural" (Shift + Ctrl + S) is a change-it-back command for Make Detail. It removes the detail flag from the brush. This surface WILL block Vis when the map is compiled (so long as there isn't shader content that says otherwise).
To be safe, any brush with a transparent shader/texture must be "detail" or it may cause drawing/vis issues.

Overlappings and Z-Fighting errors[]

For shorter compile times and small file sizes, efficient brush construction is "critical" in building your map. Overlapping means that all or parts of two or more brushes share the same physical space. If brushes overlap, you can expect them to add time to your compiling, and add size to your .map, .bsp and, .aas file sizes. Efficient map construction means that all brushes butt up against each other, but never intersect.[2]

There is, however, one (and ONLY ONE) case where overlapping is allowed. In it, you build your map using structural, caulked brushes, and use detail brushes and patchwork to give visuals to your level. As caulked faces aren't drawn by the engine, the result won't change much from only texturizing structural brushes. However, with good use of detail and patches, you avoid to stress the engine to draw faces which aren't visible in-game, boosting the performance. More on this on the O+T page.

Notes[]

  1. Basic transformation: rotation, scale, movement at Wikibooks
  2. 2.0 2.1 2.2 2.3 2.4 2.5 2.6 2.7 GTKR manual Brush Manipulation
  3. wikipedia:Constructive Solid Geometry at Wikipedia
  4. 4.0 4.1 4.2 4.3 Wikibooks' The CSG tools: Subtract, merge and hollow.
  5. An example for a way to limit its "damages": before using the tool to create a 16-faces hole (just an example) in a wall, you may first use it (or some other brush management method) to create a simple "squared" section in the wall -just as large as necessary-, and then proceed to use CSG Subtract to get your 16-faces hole, by temporarily placing a 16-sides brush inside the squared section of the wall. This way, only the part around the hole should be divided into a huge number of brushes with strange shapes, while the rest of the wall should remain relatively simple (hence, being more friendly for further editing).
  6. Edge/Vertex editing

External links[]

<< Previous (Your first map) Mapping manual (2D and 3D clipping) Next >>
Advertisement