PDA

View Full Version : BSP Errors?


MuffMaster
9th Mar 2001, 09:52 PM
I try to exhaust all other means of obtaining info before posting a question, but I'm stumped. In all of the tutorials posted here and in other sites, BSP errors are referenced over and over again with vague clues to fix them, but no one explains exactly what it is.

What I want to know is...what does BSP stand for, and what is it?

I'm attempting my first level designs and I think I've come across a few. I've saved a good copy of the level, but from that point, trying to add in more details results in effects like "seeing through walls", "dragging walls", and little "holes" like shards of glass where there weren't any before.

Is this what a BSP error is? And if so, does anyone have a good method for fixing them?

Thank you for your help!

NVerxion
9th Mar 2001, 10:48 PM
i'm pretty sure bsp stands for binary space partition. i could be wrong, though.

bsp errors are those invisible forces that kill you when you touch them.
bsp holes are more like floors or walls you can walk through. a bsp hole can also be a polygon or group of polygons that disappear when you look at them from certain places or angles.
homs (hall of mirrors) are the worst of all. these glitches seem to appear inside the polygons themselves, and as the name implies, they look like infinite reproductions of the adjacent polygons or anything that moves in front of them.

there is no sure fire way to fix these things, but they can be avoided by making sure everything is done correctly from the very beginning. brushes should never overlap (unless they are semisolids and in some cases that's ok), and no single brush should ever be complex. too many nodes in one brush can cause problems... you can also try adjusting the slider bars in the bsp options and doing a complete rebuild to see if that helps.

there's more to it but that's basically a nutshell.

ChrisToth.hu
10th Mar 2001, 02:54 PM
The Unreal Engine uses Binary Space partition trees to store 3d data. (This could have been done by several other ways like octal trees...etc. I don't want to make a lecture on data systems :D) So imagine that the whole level is made out of a large sheet of metal or sth. Now you would need to fold the sheet to form rooms, walls...etc like in origami. THis is done by dividing the superspace into Sub-spaces by assigning nodes to key locations of the superspace. Then the nodes create convex parts (segments, polygons) from the superspace they can be sorted into a tree. With this method the engine can determine which areas of the map are solid geometry and have collision and which are not.

Sometimes the BSP gets messed up and certain parts will lose collision, get collision or partially lose collision. When they lose collision you'll be able to walk through walls fall through floors. If an area gets collision then you won't be able to walk into those areas and it is likely that you will see black polys around those areas, since those polys are "out of the BSP" and they don't get textured this way. If something partially loses collision that means that the borders of the collision are killed and you are able to walk into solid space. Since nothing can exist inside solid space you'll get killed.

THere are several methods for getting rid of BSP holes.

-Simplify the geometry in the area

-Use more semisolids (They don't cut up the BSP so they can't cause BSP errors in solid geometry but they can mess around with other semi-solids and non-solids)

-Try to reduce node count (semisols, build settings...)

-If additive brushes get BSP errors then it often helps if you put them to the end of the BSP rebuild sequence. (and sometimes changing them to semisol too) Note: if something is at the end of the queue then if it has subtractions inside then the subtraction will ba applied first and then the added brush will fill the space. So nothing will happen...you'll have the brush unhollowed.
You would need to intersect that brush first and add it afterwards.

-Zone off the area. THis way the geometry inside the zone won't be that complex.


I hope that it helped....
If you have any questions just ask.