Bsp compiler and properties?

Can anyone inform me if i was to use the bsp format if i could still use terrain pages to help optimize renderer.



Through the bsp compiler can i set collision, waypoints, item positions etc??

is this an idiotic newbish question can somebody tell me??



I do understand that terrain page helps quad rendering but can it do the same for bsp or is terrain page in itself a quadtree

I haven't ever usd the JME BSP stuff, but I think they are fundamentally just two different approaches to slicng up a scene. BSP tends to be used for dense/indoor scenes whereas a terrainpage is usually an outdoor terrain.

BSP is not very used nowdays so you better use something else. It's a way of culling polygons and it's so complete that you don't need to use any other method together with it. The drawback is that you will get a list of polygons to draw each frame which you have to sort. The graphics cards today are so fast at drawing so you will probably not gain much from BSP nowdays, since the state switches costs to much (if you don't sort perfectly). It's better to use some grid based approch or octrees in outside areas, and use portals for indoor areas.

Haladria said:

BSP is not very used nowdays so you better use something else. It's a way of culling polygons and it's so complete that you don't need to use any other method together with it. The drawback is that you will get a list of polygons to draw each frame which you have to sort. The graphics cards today are so fast at drawing so you will probably not gain much from BSP nowdays, since the state switches costs to much (if you don't sort perfectly). It's better to use some grid based approch or octrees in outside areas, and use portals for indoor areas.


hmm i was originally planning to make the game run under the lowest specs possible which is why i had thought bsp would be best to use but if what u said is true then i guess theirs no real reason to really use it. I was originally going to create .map files with blender and use a bsp importer to set the start and end points, triggers and object placing as i thought it would be easier that way. Would it be better if i created a map and exported it using ogre3d (since i'm using it for other things) and use terrain page or attempt to use one of the octree zips that around these forums somewhere??

in the sense of optimizations my levels will still most likely be small, however i was wondering if theirs an easier way than mouse picking each point and setting the objects(ie weapons, explosives etc.)

hey bonechilla:



(some advice that I have come to grudgingly accept)

Try not to think to much about optimization in the beginning, of course there are things you should always do (like not creating 60 vector3f objects per second when a single global 'temp' vector3f would work), but these are more good practices.  As you progress through your project you will learn new things and see different (probably better) alternatives, which early optimizations can possibly hinder (or at least make the 'box' tighter).  Try instead to create flexible code that can easily be extended/altered in the future if needed.  Also, it may be a while (in project development) before you will be able to tell where the best area for optimization is in your particular game.  I am not saying to ignore the frame-rate or memory consumption, benchmarking is almost always a wise thing; just don't make optimizing a priority at first.

On the other hand, if you implement a new 'feature' and it drops your frame-rate in half; it may be best to think about optimizing that feature right away. :slight_smile:


is terrain page in itself a quadtree

A terrain page is a quad tree of terrain blocks.

however i was wondering if theirs an easier way than mouse picking each point and setting the objects(ie weapons, explosives etc.)

Write a basic XML loader?
basixs said:

hey bonechilla:

(some advice that I have come to grudgingly accept)
Try not to think to much about optimization in the beginning, of course there are things you should always do (like not creating 60 vector3f objects per second when a single global 'temp' vector3f would work), but these are more good practices.  As you progress through your project you will learn new things and see different (probably better) alternatives, which early optimizations can possibly hinder (or at least make the 'box' tighter).  Try instead to create flexible code that can easily be extended/altered in the future if needed.  Also, it may be a while (in project development) before you will be able to tell where the best area for optimization is in your particular game.  I am not saying to ignore the frame-rate or memory consumption, benchmarking is almost always a wise thing; just don't make optimizing a priority at first.
On the other hand, if you implement a new 'feature' and it drops your frame-rate in half; it may be best to think about optimizing that feature right away. :)

is terrain page in itself a quadtree

A terrain page is a quad tree of terrain blocks.

however i was wondering if theirs an easier way than mouse picking each point and setting the objects(ie weapons, explosives etc.)

Write a basic XML loader?


thank you basix for the words of advice i simply figured that by using bsp i could accomplish two tasks in one. I'm not exactly sure how to write an XML loader but i'll attempt to once i can figure out what it is  :P;
also for my levels would u recommend i use octree which i found a zip Hereedit (which actually doesn't work becuse i'm uable to find the equivalence to TriangleBatch in 2.0) or the quadtrees which is a part of jme. I understand octrees are horrible to  use for collision should probably stay with the default collision in jme or is that a part of the quadtree implimentation

thank you in advance for the deeper understanding

BSP is used for indoor scenes, while quad/octtrees are used for outdoor. There's no single solution for everything so you should use both. Also basixs although BSP is a method of culling optimization it is also a file format and there's a ready-made loader for it so it's very easy to use it.

Momoko_Fan said:

BSP is used for indoor scenes, while quad/octtrees are used for outdoor. There's no single solution for everything so you should use both. Also basixs although BSP is a method of culling optimization it is also a file format and there's a ready-made loader for it so it's very easy to use it.


yes thank you Momoko_Fan now that i think of it i read a couple threads on that but its come to my understanding that its not completed and their are a lot of ambiguities surrounding it

as for using different methods to create the terrains i was unaware that i could blend different methods together. My maps aren't intended to be big but resembles an outside setting. which actually brings me to another question if i was to export a map with blend maps bump maps and normal maps do i have to construct a specific function to load it??

AFAIK the loader is quite complete, just that it had issues with loading certain TGA files (was fixed by JOC's patch) and it had issues with shaders (not used by exported maps). Besides that it also adhered to the BSP way of managing the scene which means it's optimized but doesn't really fit with jME's way of managing the scene.

Momoko_Fan said:

AFAIK the loader is quite complete, just that it had issues with loading certain TGA files (was fixed by JOC's patch) and it had issues with shaders (not used by exported maps). Besides that it also adhered to the BSP way of managing the scene which means it's optimized but doesn't really fit with jME's way of managing the scene.


hmm when i asked JOC did say he was unsure so i was wrong to assume.Through this method do u know if i could successfully use a .bsp compiler to place objects, set positions (start,end trigger events) which normally work in other engines but i was somewhat skeptical if it would work with this specific loader. Also the default collision method should work with it correct

Bonechilla said:

hmm thx for the response, srry for the responce delay.

hmm i hope terrain page can work becuz i do know it can greatly relieve the renderer and free up memory accurately along with the bsp architect. I was planning on creating .map files with blender and exporting them to a 5rd party compiler such as getic, GtkRadiant (which i personally dislike), NetRadiant , MAP3BSPC, bspQuakeEditor, etc

I do know you can set the start and end and most likely even handlers using GTKRadiant and can probably do the same with the other compilers

P.S. QuArK stands for Quake Army Knife and is a game editor for Quake and many other games. It can edit maps and models, import sounds and textures, create pak-files and run compilers.

Q3Map2 can make .map also however i can't find much documentation on it