Best visibility culling algorithm for single room scene

Started by
16 comments, last by user88 11 years, 11 months ago
thanks for advice. i will try to check spheres instead of boxes..
Advertisement

[quote name='Krypt0n' timestamp='1336998778' post='4940040']
3. you could try to use occlusion culling to further reduce the object count and this way free some compute resources for the pixel work (although I doubt there is much occlusion in typical single rooms)


What kind of occlusion culling are you suggesting in a modern world, where objects could be dynamic and there could be hundreds of rooms in a level, each containing hundreds of objects ?
I heard people are using software rasterizers to build a software depth buffer and test <bounding boxes of rooms> against it..
[/quote]
well, I'm a bit biased as you might see here: http://www.gamedev.net/page/community/iotd/index.html/_/one-billion-polys-r85
I would always use a software occlusion culler, as there is no latency, no pre-calculation, everything can be dynamic etc. to get a good visibility set.

But if you assume you have really hundrets of rooms and you're not making an earth quake simulator, it could be just as good to setup a portal system or calculate a PVS for every room to room.


By the way, i have profiled frame rendering process in my 3D engine and frustum visibility culling takes 15% from full frame time. Does it say that i need to implement any advanced visibility culling technique?

as bwhiting said, you can cull 100 times of what you're currently processing with a very low cpu usage.I'm afraid your benchmarking is somehow wrong. are you maybe benchmarking in debug mode, or on a mobile device? tell us how you benchmarked?
if you want to really see what going on, install AMD CodeAnalyst and profile with it. it's maybe one hour to get into it, but it's quite easy to setup and to see the most expensive functions.

install AMD CodeAnalyst and profile with it

not sure that this profiler will work with my Intel CPU properly, but thanks for advice.

I used ANTS Performance Profiler under .Net Framework, it was release. Because the stencil mirror technique was used the count of Frustum vs Bounding Box checking could be more than 100 times, but not too match..

200,000 triangles - i mean whole 3D scene has such count of triangles..

Is this for a mobile device?

Pretty much any desktop graphics card should be able to brute force 200,000 triangles at a decent framerate - have you considered just not culling at all, since your levels are so small?

Tristam MacDonald. Ex-BigTech Software Engineer. Future farmer. [https://trist.am]


[quote name='Krypt0n' timestamp='1337017657' post='4940147']
install AMD CodeAnalyst and profile with it

not sure that this profiler will work with my Intel CPU properly, but thanks for advice.[/quote]works fine with intel for me

I used ANTS Performance Profiler under .Net Framework, it was release. Because the stencil mirror technique was used the count of Frustum vs Bounding Box checking could be more than 100 times, but not too match..
[/quote].Net? you mean c#? not sure if code analyst works for that, I never used it for time critical code.


[quote name='user88' timestamp='1336998234' post='4940038']
200,000 triangles - i mean whole 3D scene has such count of triangles..

Is this for a mobile device?

Pretty much any desktop graphics card should be able to brute force 200,000 triangles at a decent framerate - have you considered just not culling at all, since your levels are so small?
[/quote]
that might explain a bit:

... pixel work is bottleneck.


cheers

View Postuser88, on 14 May 2012 - 08:23 AM, said:
200,000 triangles - i mean whole 3D scene has such count of triangles..
Is this for a mobile device?

No, this is PC Application with 3D visualization.

that might explain a bit:

View Postuser88, on 14 May 2012 - 08:23 AM, said:
... pixel work is bottleneck.

This application is targeted to visualize nice designed interior of living rooms. Because the image quality is important the pixel shaders are complicated. Currently the forward rendering is used and pixel shader is bottleneck.

I know that it is better to improve pixel shader than of any visibility culling algorithm. But after profiling i have seen that visibility culling takes 15% of frame and i decided to improve that too. Now i suspect that profiling results are wrong..
How are you profiling your GPU time? QueryPerformanceCounters around DirectX calls?

How are you profiling your GPU time? QueryPerformanceCounters around DirectX calls?

i use nVidia PerfHUD

This topic is closed to new replies.

Advertisement