Archived

This topic is now archived and is closed to further replies.

BSP Trees: Are they still useful?

This topic is 6166 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

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.

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
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...

Share this post


Link to post
Share on other sites
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

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites
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."

Share this post


Link to post
Share on other sites
ok.
if you think BSP trees are out dated, ca you give me a link for something a bit better or some code, either way would be great!

thanks
mja

OpenGL Game Programmer:
mja_today@hotmail.com
95539717

Share this post


Link to post
Share on other sites
Indeed, the BSP+PVS combo is the king of the occlusion algorithms, at least for indoor environments. However for outdoor environments some kind of LOD (Level Of Detail) or other subdivision algorithm is usually incorporated which is hard to mix with the static nature of BSP trees. So the best thing would be an engine that supports a variety of algorithms (perhaps with a dll plugin system).

Share this post


Link to post
Share on other sites
that dosnt help on the link side of things!
if you could help me on BSP trees, or Skeletal Animation please mail me or icq me! that would be great as im getting a bit stuck!!

mainly on Skeletal Animation..

thanks
mja -> 95539717 (ICQ)
mja -> Mja_today@hotmail.com (MAIL)

Share this post


Link to post
Share on other sites