BSP Trees: Are they still useful?

Started by
11 comments, last by jam1978 23 years, 2 months ago
Hi to all, I''m writing a 3D engine based on OpenGL. Some guys told me that BSP Trees aren''t useful anymore because they tend to be optimal only with low-detailed worlds. So my question is: Do I really need to implement BSP Trees in my engine or can I simply trust the hardware z-buffer ? Is it possible to write a portal engine without using BSPs? Thanx in advance.
Advertisement

Well whoever this ''some guy'' was he talks utter nonsense.

BSP trees can still be very useful, in fact they are very good for HIGH detailed indoor worlds if used in conjunction with a potential visibility set.
Perhaps this ''some guy'' was refering to the fact that BSP trees are no longer needed for back to front rendering because of Hardware Z buffers and this is certainly true. BUT BSP tree have many MANY other benefits that CAN make them faster than ANY other rendering technique.
They can be used for Potential Visibility Sets anf for perform VERY fast line of sight determinations. In fact with a BSP tree you can check for line of sight between two points without having to check a SINGLE polygon.
Having seem games Like Quake3 and others based on that engine, i would certainly say Yes, BSPs are still VERY useful

If you are only using the BSP for Back to Front rendering the yeah you can just leave it tot he z buffer. In my engine i use a BSp and a Z Buffer because i only use the BSp to calculate what polygons are visibly each frame which is VERy fast.

Yes you can write portal engines without BSPs. They are two totally seperate techniques for rendering a scene.
Portal are usually not as FAST as BSP engines with PVS but are more flexible.

BSP trees are getting a bit outated the CPU overhead is not worth it. YOu should find a more T&L compatible spatial sorting structure

Tim

--------------------------
glvelocity.gamedev.net
www.gamedev.net/hosted/glvelocity
Tim--------------------------glvelocity.gamedev.netwww.gamedev.net/hosted/glvelocity
BSP trees are well worth your time.
They are not just used for determining what polys are visible (that is the main use), you can also use them for collition detection. Go find yourself a good tutorial on Solid BSP trees. You can save alot of cycles with them.
BSP is useless?? ohhh... this means war...

The primary use of BSP trees in games, particular that of leafy BSP trees, is *not* for polygon sorting, it is for the calculation and storing of PVS, or Potentially Visible Set. No matter how fast hardware Z-buffer gets, ANY card will run around 5 fps if you simply throw all polygons of your level to the hardware, no hardware is fast enough to render *all* polygons of any average sized level for every frame.

The biggest advantage PVS gets you is that instead of drawing all polygons, you only draw those that can potentially been seen from the current view point, this means for every frame, instead of drawing the 10,000 polygons that make up your level, you only draw around, say, 300 polygons for the visible scene.

Another big advantage of BSP trees is they provide lighting-fast collsion detection.

I see leafy BSP trees, combined with PVS to be the primary data structure used in Quake/Unreal games for sometime to come...

BSP trees are still very useful and used in the majority of FPS development. tcs: not veryone has a T&L video card.

InFerN0

Not all who wander are lost...
InFerN0Not all who wander are lost...
quote:Original post by tcs

BSP trees are getting a bit outated the CPU overhead is not worth it. YOu should find a more T&L compatible spatial sorting structure



What the HELL is a T&L compatible spatial sorting structure? A BSP combined w/ a PVS, i.e. no sorting whatsoever, is pretty much the fastest out there right now. And by PVS, I mean a cluster based system that has all visible clusters from a given cluster. Hence, all sorting is precalculated, and can be dumped to the card en-masse.

T&L and spatial sorting are completely orthogonal beasts.

MSN
Speaking of BSP trees: does anybody know of a good tutorial on them? I''ve been searching for weeks with zero results (allright, I found one or two documents on the subject, but to understand them I need to know how to create and use a bsp tree).
Go to www.mrgamemaker.com
( http://64.33.37.114/tutorials.html )
Their tutorials on BSP pratically define the site.

____________________________________________________

"Two wrongs do not make a right; it usually takes 3 or more."

____________________________________________________
"Two wrongs do not make a right; it usually takes 3 or more."
Some mistakes are too much fun to only make once.
Never anger a dragon, for you are crunchy and you go well with brie.

Thanks a lot, you saved my life. Or at least, you saved my game engine, which is almost the same :-)

This topic is closed to new replies.

Advertisement