Scene management?

Started by
3 comments, last by chillypacman 16 years, 9 months ago
Right now everything I'm working on uses X files and nothing else, I'm relatively happy with it. But I'm wondering exactly what advantages BSPs or CSGs will provide to levels? Are there any good resources (books, tutorials and thel ike) on writing loaders for such formats, to load Quake 3/Doom 3 bsps or anything like that? What limitations would there be if I used one BSP/CSG format over another? Also would it be too difficult to implement real time lighting/shadowing with any of these formats? Difficult for a hobbyist programmer that is. Thanks for any help :) [Edited by - chillypacman on July 13, 2007 10:58:42 AM]
Advertisement
.x files don't scale well to level geometry (or other large geometry data sets) because they're essentially just blobs of triangle soup. A BSP tree, or other spatial partitioning data structure, provide the capability for the geometry to be easily traversed for things like visibility testing, collision testing, et cetera.

Google can reveal plenty of documentation on the specific formats used by specific games' implementations of the BSP tree or other data structure.

They don't necessarily provide any benefit or disadvantage to how you implement shadowing or other lighting techniques; that depends more on the technique itself and how it needs to interact with the geometry.
Quote:Original post by jpetrie
.x files don't scale well to level geometry (or other large geometry data sets) because they're essentially just blobs of triangle soup. A BSP tree, or other spatial partitioning data structure, provide the capability for the geometry to be easily traversed for things like visibility testing, collision testing, et cetera.

Google can reveal plenty of documentation on the specific formats used by specific games' implementations of the BSP tree or other data structure.

They don't necessarily provide any benefit or disadvantage to how you implement shadowing or other lighting techniques; that depends more on the technique itself and how it needs to interact with the geometry.


Well then couldn't I just makea series of x files and align them so they make a full world? Or would that also be a silly way of doing things?
Yea, it'd be silly. You'd have an fairly extensive export process to go through to split the level into segments, which you'd need to do by hand (ugh) or by writing tools to do automatically (also ugh, because you don't get much from it). When you're done, you'd still just have a bunch of smaller triangle soup files. Doing collision and visibility is even worse now, because not only to do you track each "chunk" of the level in some kind of structure (which would optimally be some kind of spatial partitioning scheme anyway), but within each chunk you still have the same problems as before -- the .X is a unorganized soup of triangles, so collisions and such become, for the most part, O(N) on the triangle count, or worse.
So would it be better to write a loader for the Quake 3/Doom 3 BSP or Half-Life/Half-Life 2 BSP? Which would be more manageable?

Are there any potentially better scene formats besides the above mentioned?


edit: actually are there any good open source (preferably LGPL) directx based scene loaders that would be worth looking into?

This topic is closed to new replies.

Advertisement