The three virtues of a programmer: Laziness, Impatience, and Hubris. – Larry Wall
Brush Intersection is an operation which crops the red builder brush using current world geometry. There are two types, outlined in the following table. To perform them, select the toolbox button, the menu or use the keyboard shortcut. It doesn't matter what is currently selected, only the RBB can be cropped like this.
|Keeps...||parts of the RBB that are in solid space||parts of the RBB that are in open space|
|and discards...||parts of the RBB that are in open space||parts of the RBB that are in solid space|
|Toolbox||4th group, middle-left||4th group, middle-right|
|UnrealEd Main Menu -> Brush ...|
next... basic uses...'
Rule one of Intersection
Don't use it.
- you don't need to intersect every new brush
- you don't need to intersect to get a "clean" join. Use the grid. For that matter, overlaps are not terribly important.
- compound brushes made with intesection do not simplify geometry. They simplify your work as a mapper, but may confuse the BSP.
stuff to refactor:
The term brush intersection refers to an UnrealEd operation that crops the red builder brush using current world geometry. This is accessed either with two buttons in the toolbox or from the Brush menu.
The Intersect command keeps only the volume of the RBB that is within solid space; conversely the Deintersect command keeps the volume that is in hollow space. (It's important to remember that the black "empty space" is solid, and the actual map area is hollow.)
These operations are two of the most useful basic shape manipulations available in UnrealEd, but they can be intimidating to the novice, and are easily confused. Experienced mappers employ these techniques constantly to achieve the desired shape in a brush. All exported brushes (pre-fabrications) must be intersected first, to retain the applied textures and reduce previous manipulative brush operations to a single, integrated geometry.
It's not necessary to select the red builder brush.
When the "Intersect" command is performed, either with the UnrealEd Main Menu -> Brush or with the toolbox button, all the parts of the Red Builder Brush that are enclosing actual world matter (or CSG Constructive Solid Geometry) are selected and configured to the exact dimensions of that geometry. This geometry can be quite complex (it can actually be a number of seperate, non-adjacent elements); and, this is the principal advantage of using the Brush Intersect method. This is now one brush; and you can perform a number of other brush operations on it. Note the 'pivot point' of the brush. By default, it will be located at the center of the brush, but it can be moved by merely right clicking another brush vertex. When the 'Snap to Grid' feature is enabled (it is suggested that this always be the case), the 'pivot point' snaps to the closest grid point.
So, for instance, if you made a cube (256*256), added it to the world in a large open space, resized the cube to (512*512), and moved it around the original cube: You could then click intersect to make the brush only the size of the original cube.
Deintersect is obviously the exact opposite. Clicking Deintersect causes all the parts of the red brush that are sticking into existing material to go away. An example is if you made a (256*256*256) cube and subtracted it, Then resized the brush to (512*512*512) cube and moved it around the subtracted cube: You could click "Deintersect" and only the part of the red brush where the original cube was would be left.
Often mappers will use essentially the same or (a similar) shape repeatedly when mapping. When you add semi-realistic objects to your levels, like, vehicles, furniture, archtectural decorations, and other detailed fixtures, it is easier to convert what is an amalgamation of number of adjacent primitives into one complex brush. You can then import and export simply, manipulate, and move the brush around with great ease. Also, the brush can be easily modified.
Create the brush in a large subtracted area, that is seperate and not interfering with level geometry. Make all the minor adjustments in dimensions, and configuration, and then texture in the optimal cool fashion. When you have this shape just the way you imagined it, right click on the CUBE Brushbuilder, and enter dimensions that are larger than the shape you just created, but, will fit easily within the subtracted space that you are working in. Position this red builder brush so that it bounds your original amalgamated shape, but, so that it does not merge or intersect it (or coincide on the same grid points). Also, it should not cross the boundary of the working space that this operation is enclosed within.
Then, with a maniacal grin on your face, Select, Brush -> Intersect.
One thing that deintersection is good for is merging polygons on uncooperative brushes, such as those created by extruding a shape with the 2D Shape Editor.
Here's a little trick that might help when you're extruding a brush and the top and bottom are going to come out tesselated.
- Extrude that brush to a length that is LONGER than what you originally were going to create.
- Move the newly-shaped red builder brush into a wide open space in the void and subtract it. Do NOT move, rotate, or scale the red builder brush after this point!
- Open the cylinder brushbuilder properties. Put in a height that matches the height you wanted your extruded brush to have in the first place. Put in a radius that is at least large enough to cover the length and width of the subtracted brush. (Don't put in a radius so large that it to touches other unrelated geometry.) Click on the "Build" button.
- Now deintersect the builder brush with the subtracted brush.
Now to explain what you just did and why you did it. You made the subtracted brush too long so that the cylinder you deintersected it with wouldn't touch the ends, which were tesselated. You made the cylinder the original height because this is the height you want your final brush to have. You made the radius so large because you weren't going to change the 2D shape that you used to build the brush.
- There is an alternative way of doing this, with the Merge Polygons command.
Having come from the Q3 editing world, I had some unconscious preconceptions about the innerworkings of UED2
In Q3 editing, the different facets of mapediting are relative to each other only in very microscopic ways. the map file that you work on in radiant has absolutely NO resemblance to the .BSP file that you play, let alone the bsp or vis compiling processes. once the BSP compile has created a couple of reference files for the VIS process, they have nothing more to do with each other. . .
So the problem here was that my training led me to think that in UED, edit-level brush data had absolutely nothing to do with bsp data. Here i am with a completed and compiled mountain brush. i fit the BB to the brush. I thought by deleting the brush, it didn't matter that it was still in the BSP info . . . I figure i'm not editing the BSP, i'm editing brushes, and the brush isn't there. So when i deintersect, there's nothing there to get in the way.
wrong. I deleted the brush but the bsp data was still there affecting the deintersect as if it were a brush.
- Moral of the story
- It's best to do all your de/intersecting while you're building. cuz it's a pain in the ass to follow the rest of this section.
If you have existing geometry that you want to clean up via de/intersect:
- Save As a different filename. You're now dealing with a 'working' file and your actual map won't be dorked if you mess up here.
- select only the brushes that matter. . . the one to be fixed, and the ones it will be fixed with.
- click "show only selected actors." It's the open-eye button with the dotted red box on the toolbar
- go into the Build Window, check the option for "rebuild only visible actors" and build. all views will show only what you're working on.
- fit the red builder brush to the brush you wanna fix (get a button to do this from http://www.planetunreal.com/fordy/uedbuttons.htm )
- delete the brush to be fixed (don't change this brush AT ALL or you'll be doomed)
- build again . . . in all views you should see the red builder brush in the place of the brush to be fixed, and also the other brushes you're working on.
- add/subtract your brush.
Do that for each brush.
Just a forum snipe from tarquin:
- Intersection and deintersecting are used far too often. Use the grid & good choice of initial dimensions to line up brushes perfectly. Int & DeInt are really (IMO) just tools for brush shaping, not for ensuring clean joins. It's in fact fine to overlap subtracts, or have additives poke into solid space.
Bean: It's overused to an extent. Less brushes in a level = less rendering work. It's a no-brainer that combining two brushes who vertices touch will reduce the amount of work the engine has to do on vertex calculations. But, there is a tradeoff when making complex brushes. The two combined brushes may cut into bsp less than the complex brush, the brush may be too detailed to be rendered efficiently, etc... It's all a matter of trial and error by using the zone portal view to view the bsp node cuts and using "stat fps" to see what reduces the node count. A lot of beginning and ignorant mappers combine brushes because they hear that it improves performance, when it's not always the case. (end rant :)
Tarquin: "combining two brushes who vertices touch will reduce the amount of work the engine has to do on vertex calculations." – IIRC, the vertices will still be there. If you have 2 box brushes side by side, delete one and enlarge the other with vertex editing. Or delete both and make a new one.
scumble: Just a thought, but what about this note at UDN? It suggests always doing an intersection before subtracting.
Tarquin: Well if Epic says you should, I guess you should. :) I have seen plenty of Epic maps that overlap brushes though.