Visibility, Detail & Hinting

Hint Brushes

Check out Bill Brook's tutorial and Small Pile of Gibs' article on Q3map and the Q3A engine. If you want to map for Q3A (or any mod) you should definitely read these tutorials. Bill's focuses on hint brushes, and in doing so provides a lot of information on how the engine is drawing the map. SPoG's is an extremely helpful discussion of basic mapping terms and walks through how Q3map (the map compiler) works. It would serve you well to print them out and read them over and over again until you understand them.

Hint brushes can be quite helpful depending on how your map is designed. For example, Tequila, with its corridors and doorways, made for very successful (which generally means lowering r_speeds) and easy hint brushing. On the other hand, a map like Teamjungle would be extremely difficult to hint brush and the likely result is that you would not gain anything by doing so (again, read the above tutorials to understand why).

Detail Brushes & Caulk

Careful use of detail brushes and caulk can greatly reduce compile times of your map and reduce the size of the .bsp map file. You might not see any increase in performance, but it will help speed the mapping process. A word of caution: you may actually increase r_speeds if you do not detail/caulk correctly. Also, there is a good chance that -light times will increase if you overdo detailing/caulking.

What are detail brushes? A detail brush is a brush that does not cause a bsp split (if you're not sure what that means, take a minute to look at SPoG's document noted above). In other words, and at the risk of oversimplying, a detail brush will not be used in the bsp process and therefore will reduce the -vis calculations and compile time. This means the brush essentially becomes "see through" as far as engine-drawing is concerned (i.e. if you make a wall a detail brush, the engine will draw what is behind that wall as if it was not there).

How do you choose what to detail? Well, you won't be making vis-blocking walls into detail brushes. What you do want to make into detail brushes are brushes that have essentially no effect on the -vis process. For example, a small table in the middle of the room is likely not going to prevent a player from seeing any other brush in the room (i.e. it is not causing any worthwhile bsp splits). So if you make the table's brushes detail, you can remove those brushes from the bsp tree and save yourself some compile time.

But just making the table detail is not enough! You MUST use caulk when detailing. Why? Because all sides of a detail brush will be drawn by the engine, whether visible or not. So you now need to tell the engine which sides it should NEVER draw. "Caulk" is how you do that. Caulk is a shader (in the common directory) that tells the engine, "Don't draw the surface that I am on." So you need to caulk all sides of a brush that are not visible. For example, the bottom of the legs on the table in the above example will never be seen by a player, so make them caulk and the engine will not draw them. Hopefully, you can now also see that improper use of detail textures can cause r_speeds (and overdraw) to increase.



Return to Mapping Guide




Last updated: Feb 17, 2002
Valid for RQ3 Beta 2.1