Newbie question on BSP holes

  • Two Factor Authentication is now available on BeyondUnreal Forums. To configure it, visit your Profile and look for the "Two Step Verification" option on the left side. We can send codes via email (may be slower) or you can set up any TOTP Authenticator app on your phone (Authy, Google Authenticator, etc) to deliver codes. It is highly recommended that you configure this to keep your account safe.

Ironblayde

Director of Misanthropy
Feb 24, 2004
213
0
0
Greetings everyone. I got back into playing Unreal Tournament not long ago, and finally decided to try my hand at mapping. (I know I'm late to the party.) I've only been doing it for two days, so bear with me please!

I have a deathmatch map that I created not for actual play, but just so I have a map to experiment with. Recently I noticed that a BSP problem has come up. The partial screenshot from UnrealEd below shows the room where the problem occurs.

bsphole01.jpg


I created the sheet of water in that room as a special brush (it has the Translucent and Zone Portal properties), and that's the sheet that is having the problem. The screenshot above is taken with the camera in a hallway that opens into that room. If I move back a little farther into the hallway while playtesting, I get the "hall of mirrors" effect. In the editor, that sheet goes black in the Zone/Portal and BSP Cuts views. However, it only happens if you back far enough into that particular hallway. It does not happen if you approach the sheet more closely, or from any other angle.

While playing around to see what might be causing this, I noticed that if I simply Rebuild All, then go to playtesting, the BSP hole occurs. However, if I do a Rebuild All, then Build Geometry Only and Build Lighting Only separately, and go to playtesting, the hole is gone. Does this imply that the full build function is making an incorrect optimization to my geometry? (Thus my Build Geometry step following the full build would discard those optimizations?)

I had a few thoughts on how to correct this. First, I think I read some conflicting information in the Unreal Wiki, though I don't remember exactly. I think one person said to make zone portals slightly larger than the openings they cover, whereas someone else said to size them exactly. I don't think this is the problem, because there are four zone portals separating the underwater zone from the above-ground zone (those are the only two zones in the map at present), and the portal pictured is the only one where a BSP hole occurs. Still, I thought I'd ask the people who should know: do I need to slightly oversize those portals for caution's sake, or is that unnecessary (or even error-prone)?

The next thing I thought to try just now, though I haven't done it yet, is to zone off that room where the hole occurs, to see if that solves the problem. Is that a recommended step? I'm going to go ahead and try it right away, but I'm still asking here, because if separating a map into zones might act to eliminate BSP holes, I'd like to know why it works, not simply that it works. I understand that UT will only render zones that are visible to the player, which helps performance, but I don't understand why zoning affects BSP errors. Any advice anyone has to offer would be most appreciated. Thanks!
 

Kyouryuu

*roar!*
Dec 17, 2003
244
0
0
42
Kirkland, Washington
kyouryuu.furvect.com
I'm going to go ahead and try it right away, but I'm still asking here, because if separating a map into zones might act to eliminate BSP holes, I'd like to know why it works, not simply that it works.

You're asking for a lot, you know that, right? :lol:

Personally, I think it's just good karma to make Zone Portals larger than the corridors they section off. If you make them exact, however, they should suffice. There's a view in the 3D view called Zone/Portal View where the different sections of the map are shown in different colors. So long as the portal successfully segments your map, you're good to go.

Other ways to resolve BSP holes:

- Use Semisolid brushes in place of Solid brushes when possible. Some mappers say you should keep them out of reach of the palyer due to collision errors. Others disagree. Either way, use these for detailing in order to optimize the nodecount and reduce the number of BSP cuts.

- Adjust the First and/or Last properties on your brushes. The main level geometry should generally be set to "First" whilst details that are added afterwards into the space carved out by the main level geometry should be "Last."

- After positioning your brushes, but prior to aligning their textures, do Transform -> Transform Permanently on them.

- Understand that not all BSP holes can be adequately resolved and some may require entire room restructurings or scraping the map altogether. :eek:

Hope this helps! :D
 

Ironblayde

Director of Misanthropy
Feb 24, 2004
213
0
0
Kyouryuu said:
You're asking for a lot, you know that, right? :lol:

Personally, I think it's just good karma to make Zone Portals larger than the corridors they section off. If you make them exact, however, they should suffice. There's a view in the 3D view called Zone/Portal View where the different sections of the map are shown in different colors. So long as the portal successfully segments your map, you're good to go.

Other ways to resolve BSP holes:

- Use Semisolid brushes in place of Solid brushes when possible. Some mappers say you should keep them out of reach of the palyer due to collision errors. Others disagree. Either way, use these for detailing in order to optimize the nodecount and reduce the number of BSP cuts.

- Adjust the First and/or Last properties on your brushes. The main level geometry should generally be set to "First" whilst details that are added afterwards into the space carved out by the main level geometry should be "Last."

- After positioning your brushes, but prior to aligning their textures, do Transform -> Transform Permanently on them.

- Understand that not all BSP holes can be adequately resolved and some may require entire room restructurings or scraping the map altogether. :eek:

Hope this helps! :D
Thanks for the tips. :)