Free Web Hosting Provider - Web Hosting - E-commerce - High Speed Internet - Free Web Page
Search the Web

“Boolean Operations and Geometry Modelling”
By Aavenr

 

[HTML Version]

 

 

Here’s a collection of 3 particular issues I felt were important to know about and none of which was discussed on Remedy’s official "Boolean Operations" tutorial.

 

Room Grouping

A good recommendation when creating modelling a level’s geometry is to make all the solid room, or ‘top hierarchy level’, geometry such as floors, walls, windows and general architecture like that through boolean operations. Then, most of the furniture or any complex geometry used, even in the walls (that may seem to be the room geometry), is best to be left as ‘furniture’. For example, the Ragnarock level had those gothic arcs, which almost all were separate of the actual room geometry. Or another example, in the Asgard building, where there were these corridors and dozens of pillars and pilasters, none of which were booleaned to the room ‘box’.

When adding ‘furniture’ as well as any other object in a room, these ‘decorative’ meshes shouldn’t be booleaned to the main room. It is recommended instead to group all these ‘minor structures’ to the room, an action which will save a bunch of polys all by itself, and dummy-texturing all the hidden polys that would have been destroyed when booleaning the meshes to the room, which will save even more polys from being rendered. In addition to reducing the amount of polygons in most situations, which improves the framerate and reduces file sizes, this approach allows you way more flexibility when trying to edit and make further changes to the level. If you really feel necessary to boolean some structures, do it at the very end of the level creating process, when you are absolutely positive no more changes are needed. You can see what I am talking about on picture 1. Leftmost is the desired look: a room with four separate columns which apperently has 34 triangles. In the middle, triangulation has been superimposed to demonstrate this. The rightmost is the same with columns booleaned resuling on visually much more triangles and a 90 triangles count.

 

Booleaning Complex Structures

Crafting complex structures by means of booleaning can be a cruel excercize on frustration for many level designers. Remedy deveopers had to fought Boolean trouble many times during the development of MP and they can testify that unfortunately, more ambitious the mapper gets, the more he is going to have to face these problems. Nobody denies the usefulness of these operations but itsn’t a secret how unreliable they can be under certain circumstances. Due to the imperfect nature in which they have used, it is crucial that level designers use every trick in the arsenal to fight the battle.

 

Isolated Construction

When working with booleans ops you need to be careful of the detailed, polygon intensive models. Through experience I have learned that is it usually better to create complex structures in another empty file and then copy/paste them (or insert their .lvl file) to the main file. When doing complex booleans you expose yourself to countless different errors and crashes and if you insist on doing that inside your main level you are just asking for trouble. In short what I am trying to say here is that you should isolate those potentially problematic structures and deal with them one on one rather than risking some stupid error on them keep you from further work on your main level.

It is also worth mentioning that at the early and intermediate mdelling stages, you are probably off better joining the different parts that make up a complex structure (a tank for instance) rather than booleaning them because joining, unlike other boolean ops, is a pretty reversible process in case you want to edit something later. At the end, when you are completely certain that everything is the way you wanted to, you can separate the meshes (go into F4 mode, select the mesh and press p) and then boolean them little by little into one big mesh.

 

Dealing with Errors

Firstly, read pay careful attention to the bit about staying away from trouble mentioned on Remedy’s official "Boolean Operations" tutorial. There are many occassions where joining two meshes give you the same results as unioning them, only with far less possibility of any error appearing since no geometry is actually deleted.

If you do get an error and the crash or produce ‘holes’ in the geometry, don’t waste any more time on that mesh and start a new one from scratch. Once you get an error the only way is down as each boolean can only add to the existing error. If you are prompted with a ‘floating faces’ error, you are better off leting the editor kill them, just be wary of any gaps in the geometry that may arise.

A good way to recognize if you are going on the right path is by verifying you don’t have any non-planar polygons. This is done by entering the F4, hovering over a certain polygon and taking a look at a strange figure in the lower right corner of the screen: "dMax= 0.000000". The value on this variable tells you how much the current polygon differs from a fully flat flane (ie. planar). In order to Booleans work correctly, the polygons must be completely planar and if this figure is anything else than 0.000000 in any of the polys in either of your boolean operands, your next boolean is likely to fail. There usually is no workaround if you end up with non-planar faces, you'll just have to start over and try to make the booleans differently.

Last but not least, remember following the advice Remedy’s article and fix (use a larger figure than 0.0005 such as 0.0025) and save/hold before and after any boolean operation. Use absolute alignment as well whenever possible.

A slight comfort to all mapers out there may be that after a while, somehow, they will start to know (subliminally or knowingly) how to avoid problematic cases and, if good, be able to produce something like the chopper in MP (Owl’s work) or some of the cars (mostly by Marvel) without much of a trouble.

 

Polygon Editing Problems

Have you ever gone into MaxED’s polygon editing mode (F4) and found yourself unable to skew/extract a polygon because the polygon simply refuses to respond? This can get to be pretty annoying sometimes and needless to say, it detracts from one of MaxED’s biggest advantages over other editors, which is the ability to constantly modify meshes after they are extracted or built.

One effective way to deal with this issue is to force the editor to do a retriagulation of the geometry by fixing it (press ‘f’ with the mesh selected in F5 mode). Due to the complexity of the processes involved after booleaned some meshes won’t be able to be modified in F4 mode but by fixing them, you can get away with it most of the time. Fixing is also a good way from getting rid of unnecessary and redundant polygons.

Another Nice technique to modify a mesh is simply to scale them (press ‘c’ in F5 mode with the desired mesh selected). MaxED will give you the option of doing it on several dimensions at once or just the ones you choose. This tool doesn’t take into account the world axis so you will have to active local axis (‘w’ on F5 mode) and hover over the mesh to check out what dimentions you want scaled.

 


Written by Aavenr on 1/03. Many thanks to Remedy’s level designer, Owl, who I admit to have taken the liberty to quote on some parts of this article and who helped me a great deal to understand the very issues covered here.If you find some errors/inaccuracies that you want to report, or have some comments/questions about this article please email me at: aavenr@3dactionplanet.com