Lesson 7 - Advanced Brush Manipulation

Welcome back! Now that we have a handle on most of BSP's basic features, it's time to branch out and explore some advanced features that you can use in your own maps. In this lesson and the ones that follow, we won't actually build a map, but I'll show you how to do things that will make your own maps more interesting and fun. To start out, let's learn how to manipulate brushes so that our rooms aren't all rectangle-shaped. It's not hard to learn and will allow you to make all sorts of interesting shapes in your own maps.
If BSP isn't already running, fire it up and click on the 'new map' button or select 'New' from the File menu.

All right, let's talk about plane manipulation and vertex manipulation for a minute. BSP provides a way to drag the sides and corners of brushes around in order to make odd-shaped brushes. This could be used as an alternative to brush clipping in some cases, but must be used with some caution. In order to illustrate what I mean, let's try an example.
Draw a brush similar to the red rectangle in the following picture. I've added yellow lines and letters to the picture for discussion purposes only. I'll be referring to the sections by their letter later on.
You already know how to drag the edges of a brush to make a brush larger or smaller. For instance, click and hold the mouse above the brush (in the area marked as 'A') and you can drag the mouse up and down vertically to make the brush larger or smaller in that direction. But if you drag the mouse horizontally while trying to drag this face, nothing happens. If you want to make the brush larger in the horizontal direction, you must first click in either section 'C' or 'G'. But what if you want to move side 'A' horizontally, keeping side 'E' where it is? The effect will be to shear the brush horizontally (i.e. sides 'C' and 'G' will become diagonal lines connecting 'A' and 'E'). To see what I mean, hold down the CTRL and SHIFT keys. Now click the mouse in Section 'A' and drag the mouse to the left. The top edge of your brush should move to the left. Depending on how you have BSP configured, you may see the original line locations remain on the screen as you drag. Release the mouse and you've just sheared the brush, like so:
Now, play around with shearing the other sides, until your brush resembles something like this:
Okay, that's pretty easy, eh? What if after you get your brush looking like this, you decide to make it larger or smaller? You can still drag sides of your brush just like you did before, it's just that now they drag in a different direction than just horizontal or vertical. Try it if you don't believe me.
That's all there is to plane manipulation. Of course, you can do this in all 3 different 2D viewing windows to make any shape brush you want. This comes in handy to make ramps, or staircase bannisters, or anything that doesn't conform to the normal horizontal/vertical world.
But, wait there's more. What if you want to drag a single corner of your brush? Look back at the first picture above. If you CTRL-SHIFT-CLICK in sections B, D, F, or H, you can drag that corner around in almost any direction without moving the other corners.
One caution, though, you can't make a convex-shaped brush. Quake can't handle it, so BSP won't let you do it. If you try it, BSP may delete your brush when you release the mouse button. It doesn't happen very often, but I have seen it a couple of times. Just watch out for that.
To try vertex dragging out, go back to the sheared brush we had earlier. CTRL-SHIFT-CLICK above the top-most corner and drag that vertex around. Notice the two sides connected to it move around also, but only the end connected to the vertex you are dragging. The other end stays anchored in place. (Note: if both ends of the lines are moving, you're not clicking in the right place; try clicking again). I dragged the top and bottom vertices on my brush around a little and ended up with a brush like this:
Of course, you can drag vertices in each of the 2D windows, but your brush may start acting kind of strange as BSP attempts to keep your brush shape legal. Play around with it and you'll see what I mean.
You can use vertex manipulation to plug leaks (see below), or to join odd-shaped brushes together to form different shapes. I made a small hill in an outdoors area of a level I was working on. By dragging the vertices around, I was able to approximate a small rise in the ground without it looking too boxy.

Now that we understand plane and vertex dragging, let's move on to something else...
We already know how to make a six-sided room (4 walls, a floor, and a ceiling), but that shape gets old real quick. So, instead of that, let's make a room with 8 walls. Close the map we've been playing around with (or just delete the brush if you want). Now, switch over to the Top View and make a 208x208 brush. Clip off the four corners of the brush so that the brush is octagonal shaped. If you don't remember how to use brush clipping, you might want to review lesson 2. When you've got the shape the way you want, we're ready to create a room. Now ordinarily we would select 'Room' from the drop-down list on the toolbar and click 'Make', but we don't want that, so select 'extruded room' instead, then click 'Make'. If BSP asks for a wall thickness, type in 8. If it doesn't ask, BSP will use the grid size, it just depends on how you have BSP configured.
When you click this, BSP creates a room from the currently selected brush, rather than simply making a six-sided brush. One word of caution however, if you have a complex shape, this *might* generate leaks so use it with care. At this point, you should see something like this, depending on where you set your clip points:
Now, with all the brushes still selected you could add a texture. Of course you could have textured the brush before you made it into a room, it's up to however you're comfortable working. I'm not going to do that here, since we've covered textures quite a bit already.

Remember earlier when I said you might generate a leak by extruding a room from a complex brush? Well, let's say there is indeed a leak and we've found that it's in the area I've circled in the following picture:
Let's say that when BSP generated our room, it left the two brushes a pixel apart in the area circled. That didn't happen here (at least not on my computer), but the technique I'm going to show you is still valid. How do you suppose we could plug this leak? If you said by dragging the vertices together, congratulations, you're learning!
Set your grid size to 1 and zoom in on the area I have circled. Select either of the two brushes and try dragging the free vertex over to the other brush. If snap-to-grid is on (that's the default) you should be able to join the two vertices together, plugging the potential leak and preventing a gap from showing if you happen to look at the walls from outside the room. On my screen, it looks like this after I merged the two vertices:
Ain't no leak there now! :-)

Well, I've given you quite a bit of confusing information in this lesson. You might need to play around with plane and vertex dragging a while to get comfortable with it. Remember, it's a good idea to save your maps incrementally (ie: name each one with an incremental number like MAP1.MAP, MAP2.MAP, etc.). This allows you to revert to a previous map if you really get carried away and screw something up. (Gee, sounds like the voice of experience talking...)
Well, That about wraps up this lesson. If you've gotten to this point and are still confused, read the lesson again and practice on some simple brush shapes. If after that you're still confused, let me know and I'll try to clear it up for you. I've been using vertex dragging ever since BSP supported it and I do it as second nature. Trying to explain it to someone else is a little difficult, so I may be a little fuzzy in spots. Good luck!
| Return to the BSP Tutorial List | Return to the Main Page |

This site is designed for 800x600 resolution, and is best viewed in Netscape 4.0 or above with 16bit color or higher.
BSP is the sole creation of Yahn Bernier. I am only a dedicated user, reporting news and making tutorials so Yahn can spend more time enhancing BSP.
This web page was created and is being maintained by me (DeadMeat). Unless otherwise noted, all content appearing on this site was written by me. Also, 'DeadMeat's BSP Tutorials' were created entirely by me. All unauthorized use is prohibited. (c) 1997. So there :-P