fps.gif (3966 bytes)
Hint Brushes page3

transparent.gif (893 bytes)FPSNews Up

FPSNews
Up
Hint Brushes page2
Hint Brushes page3

Hint brushes page three

Now let's build another L-shaped hallway, but this time we are going to add a jump pad to a higher hall. We will also use hint brushes to control potentially visible set (PVS).

In this shot I've added another room and connected it to the hallway that we built on the second page. This one is also L shaped but has a jump pad that takes you up to the new room.
Like this:


Here is a shot with the .prt file loaded with out any hint brushes in the map yet. Notice a problem? Look closely.

I have meshes turned off in this shot (ctrl+p) because they don't create leaf-nodes or portals, and thus don't block visibility.
Do you see the problem? When you are in this corner the engine will be drawing both rooms because the portals can see each other. See the portal in the doorway above the jump pad? That portal can see the one below the jump pad thus drawing all in leaf-nodes. The player standing where this shot was taken can also see into the first room through the doorway to the right.
Here is the in game shot with r_showtris 1 on.


Don't forget about the \r_lockpvs 1 command if I were to use it for the above shot all of the room would be drawn.

Now let's fix this by adding some new leaf-nodes. That's right - more hint brushes.

In this side shot I have two hint brushes in place, one above the jump pad and the other encompassing the jump pad. The plane of the cut starts at the inner point of the upper doorway and ends at the edge of the brushes behind the jump pad wall mesh. The face of the lower hint brush continues along the same line so that the portals formed by the faces won't be visible to each other. As a result of doing this, when you are in the corner by jump pad, the engine won't draw anything in the room above the jump pad. Here's a shot of this in the 3d view:


Next I added a hint brush to block the corner off like we did before.

Side shot. Notice the bottom face of the brush is at the same angle as the first brushes that I put in.

Top-down view in the 3d view.
Next I make the same top down cut to the first hint brushes that I put in. Like this


Now when you are above the jump pad and behind the angled leaf-node made by these hint brushes all of the lower room will not be drawn. I hope you know why by now. If not I will say it again (big breath): the angled portal created by the leaf node face that in turn was made by the angled hint brush can't see the other angled portal on the other leaf-node that was created by the hint brush around the corner. To make it simple, one window (portal) can't see the other window (portal) because there is a structural brush between them. This is how I place all hint brushes. Remember there has to be a structural brush between the windows (portals of leaf-nodes) to do any good.

Other way to state what going on here:
Basically you want the faces of the hint brushes oriented in such a way that they can't see each other and thus effectively block vis (this is the principle behind the discussion on page two). The use of hint brushes to block off the view around the jump pad works on the same principle, only you're doing it side-on. When you combine the hint brushes to block the hallway with those to block off the upper room, you have to carve them so that all the faces will be flush where they intersect. Hint brushes, like other structural brushes, should occupy discrete spaces. Their faces may touch but the brushes themselves should never overlap if built right.
If you know of a example of them working right when intersecting that wouldn't work if you cut the hint brushes please email me.

Here's what it looks like when I used the r_lockpvs 1 command, pvs was locked when I was by the jump pad. 

And in this next shot I locked the pvs just around the corner above the jumppad. Notice how the lower doorway is not in the PVS.


I think I have given you enough to get you started on placing hints. Remember to always experiment. This method is just the way I do it and seems to work for me, but by no means is it the only method.
On a side note a well placed hint brush and a bad one will add time to your compile time, so until you get a strong grasp on them work on small simple maps.

Now if you feel your ready build a few simple box maps with different structural brushes and hint placements, and test the map with the \r_lockpvs 1 command. This is the best way to grasp it once you have a basic knowledge of what hint brushes do and why to use them. In order to use the  \r_lockpvs 1 command, you'll need to run the map with cheats on. To do that, go to bottom of this page and read the tips and shortcuts.

Note the hints in id's example maps don't make sense to me. If they do to anybody reading this, please write me and tell me why they put them where they did. My email is at the bottom of every page. This does bug me.

Useful short cuts and tips for hint brush placement.

ctrl+h to toggle hints on and off
ctrl+d to toggle detail brushes of and on
ctrl+p to toggle meshes off and on
ctrl+m to make a selected brush detail
shift+ctrl+s to make a selected brush structural 
shift+left mouse click to select multiple brushes

Grab a front end compiler like Q3Map Explorer  or
Q3Build  this will make it easy to load the map with different options, also compile options.

Smallpileofgibs handy hint_maps zip examples of hint brush placements.

If you don't want to use a front end compiler use a command like this for the vis stage    C:\Program Files\Quake III Arena\Tools\q3map.exe" -vis -saveprt -threads 1 "C:\Program Files\Quake III Arena\baseq3\maps\fpshint1b.bsp" >>C:\WINDOWS\TEMP\fpshint1b.cvis
Change the paths to what- ever folders you use and map name.
Check this link   to John 'Anwulf' Hutton's site if you still need help on this.

Load your map after a full vis also use the save .prt option compile with the cheats on by typing in the console \devmap yourmapname

To view (PVS) in the game, first load the map with cheats on (\devmap mapname), next in the console type \r_lockpvs 1 
With the pvs locked the game engine will only draw the part of the map that it can see (PVS) from were you typed in the command. The same command but with a 0 (zero) unlocks the (PVS).

To view the brush cuts and also what the engine sees in the console with the map already loaded with cheats on type \r_showtris 1 same but with a 0 to turn off.

Load up you map in Q3Radiant now go to plugins and then portal viewer then load .prt file you can view the portals in both the 2d and 3d windows. This won't work if you didn't compile the map with a full vis and the option save .prt 

 

 

 

 

 

Hit Counter

 

Bill Brooks © 1999
email contact: Bill Brooks