Talk:BSP (file format)
|WikiProject Video games||(Rated Redirect-class)|
I disagree with "A .BSP file includes everything in the map, except the textures (with the exception of Half-Life, BSP version 30), ". I think that BSP-files for Quake I DO contain all the textures for that map. —Preceding unsigned comment added by 18.104.22.168 (talk) 10:11, 1 November 2007 (UTC)
The opening paragraph seems a little inaccurate:
"BSP files use binary space partitioning to generate levels that can be rendered quickly while minimizing the number of polygons that need to be redrawn every time the screen refreshes."
Actually the BSP isn't directly used to cull the rendering - which seems to be a common error - perhaps because it can be used to minimise overdraw by drawing from front to back - but is used to lookup the current leaf or cluster that a point is in, or the set of leaves and clusters an AABB overlaps, etc.
The PVS data is used for the render culling, which groups BSP leaves into clusters which contain a list of which other clusters are visible to them. The BSP tree is used to generate this since it provides well behaved data (convex regions) that makes the PVS data easier to calculate. This is not unique to BSP trees or BSP files and the infact PVS data need not actually be included to create a valid BSP file... try compiling with novis in Radiant or whatever to see what I mean.
Also whats up with "minimizing the number of polygons that need to be redrawn every time the screen refreshes"? Its pretty wordy - how about: "minimising the number of polygons drawn".
"One of the biggest problems with the .BSP file format is that large open areas do not work well due to the nature of the partitioning algorithm used."
This has nothing to do with the BSP format or the BSP tree data structure, which has similar lookup complexity to any other binary lookup tree - O(log n). I suspect this again refers to the PVS implementation, because being a large open area is precisely the same thing as being difficult to optimise the PVS. Every visibility culling algorithm suffers from this problem by default.