Jump to content
  • Advertisement
Sign in to follow this  
boboS

culling

This topic is 3780 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

I was wondering what actually frustum culling does that increse fps. I made a demo with 10 buldings and some cars. I didnt used any kind of culling but when Im looking at the sky I see that the GPU is getting 80% idle from 10% (from pefHUD). Also pixel shader and vertex operations dramatically decrese to 5% usage from 90%. But why? I send all the geometry to the video card for processing. Also to fps remains the same when I send all the data (even if I look away the geometry and the gpu gets verry idle) but increases when I do culling. Its just about the draw calls? But I only have 200 drawcalls (Duron 1800Mhz, geforce6600 300Mhz core, 500Mhz memory)..

Share this post


Link to post
Share on other sites
Advertisement
You didn't say how many vertices your data has. Vertex transform/shading has to happen before clipping and culling eliminates all of that work.

Share this post


Link to post
Share on other sites
Buldings are made of 1 cube = 8 vertices. So its like 80 vertices in total (the thing happen without cars too)

Share this post


Link to post
Share on other sites
I think you need more "things" in your scene before the difference becomes more apparent.

Frustum culling removes those objects not visible in front of the camera, and prevents those objects from going further down the pipeline. The frustum is also then used to clip objects that are sitting on the edges of the frustum.

Speed improvements also depend on the kind of algorithm used to perform the culling, if you've divided your space into partitions (octrees for example) its going to be alot quicker for the computer to decide which objects are visible/invisible.

Share this post


Link to post
Share on other sites
I thought the video card should compute absolutelly everything I send to the pipepline. How I find out what the video card is rejecting automaticaly and what I should manually avoid?

Share this post


Link to post
Share on other sites
Quote:
Original post by boboS
I thought the video card should compute absolutelly everything I send to the pipepline. How I find out what the video card is rejecting automaticaly and what I should manually avoid?

The video card doesn't reject anything before clipping, it simply doesn't have enough data to do so. Any primitives that are completely outside the clipping volume (i.e. your frustum) are not rasterized and subsequently do not generate any pixels.

Since your scene contains so little data, any FPS changes are pretty meaningless, but if your culling eliminates all of the data very efficiently, that pretty much cuts all of the workload. And since your program is likely CPU bound because of the low GPU workload, those 200 draw calls may actually be what's holding back the FPS.

What you should do with frustum culling is elimination of complex objects with a lot of vertices. Your cube buildings are good examples of what not to cull, because the GPU is likely going to do a faster job transforming and clipping those 8 vertices than culling on the CPU.

Share this post


Link to post
Share on other sites
So I cand make hardware instancing to objects like buldings if there are very lowpoli ? If culling isnt practical.

Share this post


Link to post
Share on other sites
Sign in to follow this  

  • 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!