Jump to content
  • Advertisement

Archived

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

Buzz1982

OpenGL why use bsps?Doesn't Opengl clips any thing thats out of camera view?

This topic is 5483 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, i m a bit confused about this.i have heard that we use bsp trees so that polygons out side the camera view(or i presume its called frustrum) are not drawn. Doesn''t opengl clips the polygons that are outside the camera view. can any one explain this to me in detail. thanx

Share this post


Link to post
Share on other sites
Advertisement
Guest Anonymous Poster
Even though OpenGL will not draw outside of the screen, it still has to consider any vertices that are passed to it. So if you have a scene with 100,000 vertices and you pass all of them, it takes time for your card to sort out which ones are to be drawn and which are not. Using a BSP or some other scene partition, you can quickly figure out which parts of the scene are definately not on the screen. Then you only pass the vertices that might be on the screen. So now instead of passing all 100,000 you may only need to pass 100. And the cost of figuring out which vertices to ditch is really insignificant compared to the cost of passing them all and forcing the card to figure it out.

Share this post


Link to post
Share on other sites
Guest Anonymous Poster
quote:
Oh my God..................


That''s a great attitude. Why don''t you find something more constructive to do with your time since you are obviously too 1337 for everyone else.

Share this post


Link to post
Share on other sites
If you don't use frustrum culling, BSP trees, octrees, quadtress, etc, you have to send every single vertex down the pipeline. With every vertex you send, it has to do the texturing, lighting, etc, This is where you lose the FPS at.

A BSP tree will say, "Ok, this 'block' of vertices is not in the viewing frustrum. I'm not even going to send them to the pipeline." So if you have a huge world (Say 30,000,000 vertices) would you rather send 30,000,000 vertices to the rendering pipeline, or only send 50,000?



---------------------
| \ / | |
| \ / | |
| \/ |(Not |
| (CAMERA) | Rendered)|
|----------+----------|
| | |
| | |
|(Not |(Not |
| Rendered)| Rendered)|
---------------------



By not rendered, I mean the vertices are not sent to the pipeline.

BTW:
pkelly83 don't tell me you woke up one day and became a programming god. You were a beginner to at one time. So if you're to good to help him out, just keep that mouth of yours shut.

-UltimaX-

"You wished for a white christmas... Now go shovel your wishes!"

[edited by - UltimaX on August 16, 2003 2:38:23 PM]

Share this post


Link to post
Share on other sites
hi,
thanx alot now i understand the need for bsps, but one more question. if we are using display lists then i presume that we cant use bsps since the polygons are pre rendered. now does display lists provide better performance gain than using bsps. if i m wrong somewhere please correct me.

Share this post


Link to post
Share on other sites
quote:
Original post by UltimaX
If you don''t use frustrum culling, BSP trees, octrees, quadtress, etc, you have to send every single vertex down the pipeline. With every vertex you send, it has to do the texturing, lighting, etc, This is where you lose the FPS at.



OpenGL will NOT do texturing, and other expensive stuff with the out of the screen vertices. I believe the first test done is to see wether or not a triangle is inside the viewing frustrum or not, and if it isn''t, goodbye vertex.
But like others pointed out, if you can determine with a few if()s wether or not an entire object is inside/outside/partially the viewing frustrum, then you save the video card and the bus from transferign and processing useless data.

Height Map Editor | Eternal Lands | Fast User Directory

Share this post


Link to post
Share on other sites
Don''t make a display list for the whole world. Instead, only make a few (by few I mean as many as you need so that each one has a couple thousand polygons). That way you only have to render the lists that are visible or partially visible.

Share this post


Link to post
Share on other sites
quote:
Original post by Buzz1982
hi,
thanx alot now i understand the need for bsps, but one more question. if we are using display lists then i presume that we cant use bsps since the polygons are pre rendered. now does display lists provide better performance gain than using bsps. if i m wrong somewhere please correct me.


Display lists will not prerender your triangles. Anyway, you can store a display list for each object you have, and tell OpenGL to render only the display lists you want (the one your BSP tells you to render).
And display lists, at least in my tests, are not faster than begin/end.

Height Map Editor | Eternal Lands | Fast User Directory

Share this post


Link to post
Share on other sites

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!