How to use Coherent Hierarchical Culling?

mcspy0312

20-05-2006 11:21:37

Hi, I'm rendering a big map in Ogre.
I've choosen PagingLandscapeOctreeSceneManager as it supports Coherent Hierarchical Culling. However, I don't know how to use it.
I've set the bounding box correctly, also, I've enabled CHC by

mSceneMgr->setOption("CurrentOptionCamera", mCamera);
String currCullMode ("CHC");
mSceneMgr->setOption("setCullingMode", &currCullMode)

But the resultant FPS and triangle count is as same as the non CHC culled one. Did I miss something? Thanks.

Falagard

20-05-2006 16:54:56

http://www.ogre3d.org/wiki/index.php?ti ... _.28CHC.29

mcspy0312

21-05-2006 09:49:15

Thanks Falagard.
I've successfully enabled CHC. But it doesn't speed up too much.
How to fully utilize CHC?
Also, when I rotate my camera quicky, objects in my scene move out of place. But when I stop moving, objects returns to orginial position. How to fix this?


Thanks :wink: :D

tuan kuranes

23-05-2006 08:37:11

I've successfully enabled CHC.
Check in WireFrame mode. If successful objects behind occluders should'nt render.

But it doesn't speed up too much.How to fully utilize CHC?
You should have a good ratio :

(small number of big occluders) / (huge numbers of occludees)

You did specify occludee, occluder using renderable names?
try all CHC mode, switching precisely like that :
setOption ("setCullingMode", "VIEW_FRUSTUM_DIRECT")
setOption ("setCullingMode", "CHC")
setOption ("setCullingMode", "CHC_CONSERVATIVE")

tuan kuranes

23-05-2006 08:38:03

Also, when I rotate my camera quicky, objects in my scene move out of place. But when I stop moving, objects returns to orginial position. How to fix this?
What View Mode ? CHC or viewFrustum ?

mcspy0312

24-05-2006 06:19:50

Hi tuan kuranes,
I'm using CHC mode.
I've checked the view frame mode, culling is working :D
But it seems that I've too many occluders. I check the volume of the bounding box, if the volume of bounding box is larger than certain value, it will be assiged as a occluders, else,it is a occludees. I think I should check the area of bounding box, but not check the height. Since the depth of bounding box will not affect the culling. Is this correct?
Thanks.

mcspy0312

24-05-2006 06:20:48

What View Mode ? CHC or viewFrustum ?
I've this problem only in CHC mode.
In viewFrustum, it renders perfectly.
Thanks.

tuan kuranes

24-05-2006 09:07:53

I think I should check the area of bounding box, but not check the volume. Since the depth of bounding box will not affect the culling. Is this correct?
not sure to undestand... "depth" of bounding box will affect the culling if you camera is not z-axis aligned.

Make sure occludees are worth a test. (ie: don't try to save a 6vertices box render using occlusion.)

I'll check that problem in CHC mode. (camera moving fast making objects "moves")

mcspy0312

24-05-2006 17:58:43

not sure to undestand... "depth" of bounding box will affect the culling if you camera is not z-axis aligned.
Oh, sorry. I mean a occluders should be tall. if it is not tall, it is occludees only.
(ie: don't try to save a 6vertices box render using occlusion.)
Thanks for tips :D
(camera moving fast making objects "moves")
when I rotate the camera, some mesh in my map will rotate slower than other things, so they move out of place. But when I stop rotating, the object is in correct position. This only occurs during rotation. Also it doesn't happen if there are few objects
Thanks.