Hints in large open areas

I don’t understand when to use them. There are stupid wikis on hints being used around corners and such, but how does one use them in big open areas.

Sometimes on a map of mine an open area you get a NASTY fps drop. Need to fix it with some optimization. I’ve been using details and nodrawing sides you can’t see, as well as having a zclip on some fog. Still no luck.

You don’t. http://optimization.interlopers.net/

We have 2 question mega threads.

Then why do Half Life 2 maps have hints and skips all over the damn place?

Same goes for the L4D maps.

I eagerly await a response.

I think he means you don’t just stick them out in the middle of a huge area

Well obviously, that’s why I was asking how to use them properly in open areas.

I don’t think you understand how they work

Hints are not func_viscluster nor areaportals.

The sole purpose of hints is to give vbsp “hints” to where it needs to make visleaf cuts in cases where it might not make the best decisions to make a cut. vbsp doesn’t always follow the recommendations of hint brushes, but it will in most cases.

An example usage would be a 45 degree hint brush in a 90 degree angled hallway.

Here in exhibit A, we have a 90 degree angle in a corridor without optimization. In most circumstances this creates 3 visleaves, which the edges of the visleaves are marked with blue wireframe boxes (the corridor the terrorist is in is the first visleaf ,the 90 degree angle is the second visleaf and the corridor the crate is in is the third visleaf.)


Drawing a visibility line from the terrorist, we can see that it intersects all three visleaves. This means that the terrorist will have to render everything that is in all three visleaves, which is not very ideal, especially if the area is much more complex in nature than this simple demonstration.

Here in exhibit B, we have a right triangle wedge with a 45 degree angled wall textured with hint (only the face that’s doing the cutting needs to be textured with hint, the rest need to be textured with skip, or it will make unnecessary cuts.) Since this creates two extra leaves that are redundant, we also make a copy of the triangle and texture it with trigger and turn it into a func_viscluster to make the three visleaves into one bigger visleaf.


In this situation, the terrorist can see the visleaf he’s in, and the newly created triangular visleaf, but he now can’t see the visleaf that the crate is in, which is a more ideal situation.

Putting random hint brushes outside is not a good idea, unless you have some complex geometry that can’t be optimized or turned into func_detail. It can create dozens or hundreds of redundant leaves that can exponentially increase compile times and cause rendering issues ingame (poor frame rates, null world faces, etc.)

How would one optimize the following area, where all the black lines are walls, apart from the bottom line which isn’t and extends into a vast sea?


Really no point in a case like that since the player can already see everything. I’d just envelop the entire large area in a func_viscluster so vvis doesn’t have to spend tons of unnecessary time figuring what portals can already see what portals.

Thanks, it’s been bugging me all night, optimized the whole map apart from that little bit :v: