Hello,
eiM, I’ll help - ask me on IRC.
Also check through adlernest map source with detail filtered on/off for an example of structural vs detail.
I didn’t do a traditional caulk hulling most of the time (non-flat terrain is the exception where it could be called caulk hull technique). Looking back on it, there’s certainly room for improvement.
http://dersaidin.ath.cx/maps/adlernest_source.zip
Optimizing will be a case of cleaning up the detail/structural as much as possible, and applying hint brushes where necessary.
There are two things which you need to optimize, it is a balance between the two:
The number of portals (fewer portals, simpler, larger portal groups) - this is the cleaning up structural/detail part.
The number of triangles in the portals visible from any point on the map (less tris visible is better) - this is the hint brushes part.
On one hand, you can have every brush structural. This would mean that every plane of every tri on the map would ‘cut’ the visible set. So if something goes behind something, it would no longer be shown. To do this the compiler has to cut tris into multiple tris so that part of them can be hidden when the view is past the blocking brush’s plane. You would more than double the number of triangles on the map, and the number of vis portals would be ridiculous - maybe 1 per 2 or 3 of tris.
On the other hand, you can have every brush detail. Then everything on your map is in the pvs (potentially visible set) from every point on the map (and the whole thing is in a sky/chalk hull to prevent leaks). This end of the scale is bad because there are so many tris visible to the renderer. Your client doesn’t need to think about, or even know about stuff behind 5 walls, on the other side of the map.
Between the two extremes is a balance where vis portals do not create extra tris unnecessarily (they are as large as possible), and vis portals are broken up enough to exclude areas from pvs of a point, when those areas are irrelevant to a client at that point.
If you still need more FPS you may have to consider altering the shape of some parts of the map, so that it can block vis. For example, put a few extra corners in a hallway.
edit:more