What are BSPs?

Blitz3D Forums/Blitz3D Beginners Area/What are BSPs?

SkyCube(Posted 2005) [#1]
Can someone explain what are those things they call BSP trees and what they are used for? Can they be used in Blitz3D? Thanks :)


Andy UK(Posted 2005) [#2]
Binary Space Partition. A file containing a 3d map and textures although textures are sometimes stored in a separate WAD file. Not sure how it works but it cuts a 3d scene in to smaller pieces and displays only visible parts so that rendering is optimized/faster. Used in Quake 3 and Halflife/couterstrike and probably other games.


_PJ_(Posted 2005) [#3]
To answer your other question:

Blitz3D DOES have a LoadBSP command, but this is specifically only for certain versions of BSPs.

Sorry I can't help much more than that...


Sledge(Posted 2005) [#4]

Can they be used in Blitz3D?



It depends how you create the file - if you use any of id's tools then you have to buy a license. There are some free 3rd party tools out there (I think) but, as Malice says, the BSP's they produce may not be fully compatible with the standard set by id.


Ross C(Posted 2005) [#5]
Jedive's BSP factory creates them i beleive :)


Erroneouss(Posted 2005) [#6]
Reality Factory sucks, but has a fantastic level editor that can be used to export to 3DS or BSP.


JaviCervera(Posted 2005) [#7]
Quake3 .bsp format, which is the one and only supported by Blitz3D, has serious license issues. You basically cannot use id Software BSP compiler for anything else than modding Quake3, and these are the only serious tool available for that job.

On the other hand, Half-Life BSP format is not supported by Blitz3D, but there are open source .bsp compiler capable of creating maps in this format.

What my BSP Factory does is getting a Half-Life .bsp format, and export it to Blitz native .b3d format, so you can use it with Blitz3D.

For more info:

http://www.bspfactory.tk


Matty(Posted 2005) [#8]
Bsp levels in blitz don't seem all that fast. I tried using some of the quake 3 levels on my machine that come with quake 3 with just a simple 'move the camera around the level with no collisions set' and the frame rate was much less than when I run around in the same levels in quake 3. Torque's .dif format which use BSP trees are much faster than blitz to run around in (smoother frame rate) on my old machine as well.

Am I doing something wrong?


Stickman(Posted 2005) [#9]
I personally found your best at just letting blitz do what Blitz dose the best. Dont let fancy rendering style names fool you into thinking that there is somthing your missing.

As far as I know BSP is used 99% of the time for collision checking and heplfull culling of large portions of your game worlds , I have also heard that BSP trees can be used to help the Z_buffer reduce overdraw.

Blitzes own Z_buffering \ collision and Object Culling can handle these jobs very well.Its how you go about using them that makes all the differance.


Litobyte(Posted 2005) [#10]
I'm with stickman, although, if you want to have a "ready" map to play your tests, and do want to do it right now, without to spend any hour in your obsolete artistic skills, well, it's an option ;)


AdrianT(Posted 2005) [#11]
BSP is starting to go out of fashion these days but is still common in legacy engines like Torque and combined in one form or other in modern engines. Since hardware has evolved so much in the last 3 years it's become less useful and often gets in the way of artistic freedom since a poorly designed or old engine will not allow you to create complex level geometry.

This is what I've been told by several commercial engine coders I have worked with and talked to recently. the way modern GPU's handle polys today, often its quicker to draw large numbers of polys than sort fewer polys. Even in something like blitz. Polycount isn't as big a deal as things like CPU intensive collisions, physics, lighting, shadows and line picks and number of rendered surfaces in front of the camera. Reducing these things to a minimum gives you pretty decent performance on anything but really low end systems. Sub P2 800mhz with Geforce 2GTS gen video cards.