Vis zoning:
BSP
hullmakers
portals
demo
brushes
nosnap
'office'
[email protected]
|
What I'm gonna talk about the map is the layout of it's rooms. First,
a quick look on BSP. Binary Space Partitioning uses planes to divide the
space in isolated regions. One plane will divide the space in two, two
planes will provide 3 or 4 regions (if the planes are parallel you'll get
only 3 regions) and so on:
One plane, two regions Two planes, 3 regions
Two planes, 4 regions
Now this momb-jumbo is crucial to ALL BSP-based engines, because
this is the main way to determine visibility zones. In other words
this is how the engine knows what to render: you're in region A?
Fine! We'll calculate physics and render and calculate polies only
for the objects from region A and discard (for now) the other objects
in other zones.
Lithtech, Quake 3, Unreal Engine, they're all BSP-based engines, so
this things apply to them too.
In AvP2 (Lithtech), the visibility information is kept in BSP trees.
Now, there are two types of BSP trees:
- first, generated by all detail 0 brushes is the visibility BSP.
This will tell the engine what to render.
- second, which keeps all the brushes is the Physics BSP. This one
does not tell the engine what to render.
So, the detail 0 brushes
determine visibility zones.
How does this influences the framerate? Well, if you make a couple of
rooms, 1000 polies each and the visibility zones defined by their detail 0
brushes are not separated, the engine will consider that it has only one
visibility zone. It will render (or most likely choke to death trying to
render) 2000+ polies ...
Solutions?
A good placement, like using S-shaped halways
or U-shaped hallways
usually do the trick.
Wanna know why? I know you don't but I'm still gonna tell you: from each
room, the engine decides to render everything in the vis zones directly
visible from that room. And those zones are the room itself and the hallway.
Still, a (very) complex hallway doesn't have more than 100 polies. So, from
any room, the engine has to render only 1100 polies ... much better than the
former 2100 polies.
Still, there is a problem. The hallway itself sees both rooms. Thankfully,
for this you can use portals. But that's another story. So, a straight
hallyay is no good. Say "YES" to S-shaped and U-shaped hallways. Besides,
who wants a level that looks like a bowling alley?
|