[GSoC 2011] CHC++ idea :)

Threads related to Google Summer of Code
Post Reply
Deathgunner
Gnoblar
Posts: 7
Joined: Tue Feb 08, 2011 12:34 am

[GSoC 2011] CHC++ idea :)

Post by Deathgunner »

Hi!

First, let me introduce myself. I am passionated about everything computer related and I am have been here (stealthy :twisted: ) for a long time (months or years maybe) reading about graphic programming. 8)
I read so much that, even if I cant program graphics, I think I can easily understand them. I hope this will change when I wil go study Programming because my time will be dedicated only to that ^^!

So sorry about the lame part, but heres my sugestion for summer of code 2011.

Someone should really fully integrate CHC++ into Ogre. Im sure that this is an awesome feature for everybody! Game developpers will have (most of the time) better performance simply by activating a feature and end user could also
benefit from this performance increase! No need for the artists to manually place occluders in the scene (like some occlusion culling techniques). I think this would also make Ogre stand up even more from other rendering engines as its a very wanted feature.
I know it has been talked before in the forum, but summer of code is different uh? :P

For those who dont want to google it: http://www.cgg.cvut.cz/members/bittner/ ... /chc++.pdf

Finally, I want to let everybody know that I dont ask this for me. Its not a feature request but just a cool summer of code project sugestion that could benefit everybody ( I am right? :P ).

BTW; sorry for errors in my text, I am not born english.

EDIT: Just found out that they used ogre in the research! ¨ Another beneficial effect of
the render queue is the reduction of engine API calls. These
calls can be very costly and thus their reduction provides
significant speedup as we experienced for example with the
popular OGRE game engine
¨
Last edited by spacegaier on Tue Feb 08, 2011 8:03 pm, edited 4 times in total.
Reason: changed title
User avatar
spacegaier
OGRE Team Member
OGRE Team Member
Posts: 4304
Joined: Mon Feb 04, 2008 2:02 pm
Location: Germany
x 135
Contact:

Re: [GSoC 2011] idea :)

Post by spacegaier »

There already once was a topic about CHC++, so here it was for reference: http://www.ogre3d.org/forums/viewtopic.php?f=4&t=53817

EDIT: Funny that when you ask google for CHC++, the first hit is this linked Ogre forum topic :D .
Ogre Admin [Admin, Dev, PR, Finance, Wiki, etc.] | BasicOgreFramework | AdvancedOgreFramework
Don't know what to do in your spare time? Help the Ogre wiki grow! Or squash a bug...
Deathgunner
Gnoblar
Posts: 7
Joined: Tue Feb 08, 2011 12:34 am

Re: [GSoC 2011] idea :)

Post by Deathgunner »

spacegaier wrote:There already once was a topic about CHC++, so here it was for reference: http://www.ogre3d.org/forums/viewtopic.php?f=4&t=53817
So do I need to delete this thread?

btw, I did a video about a CHC++ sample program I found on a website: http://www.youtube.com/watch?v=t61n0B5yyJ4
User avatar
spacegaier
OGRE Team Member
OGRE Team Member
Posts: 4304
Joined: Mon Feb 04, 2008 2:02 pm
Location: Germany
x 135
Contact:

Re: [GSoC 2011] idea :)

Post by spacegaier »

Deathgunner wrote:So do I need to delete this thread?
No, as far as I understand this topic is not completely dealt with. But since I am no expert on these type of things, we will have to wait for some proficient users to chime in and comment on your proposal.
Ogre Admin [Admin, Dev, PR, Finance, Wiki, etc.] | BasicOgreFramework | AdvancedOgreFramework
Don't know what to do in your spare time? Help the Ogre wiki grow! Or squash a bug...
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4
Contact:

Re: [GSoC 2011] idea :)

Post by tuan kuranes »

No one did finish either CHC (buggy prototype implementation) and no one really release a CHC++ follow up. (but that is really not that complex to do.)

Part of the problem was that it's very scene manager tree dependant, (it needs a hierachical tree, but it can be quadtree, kd tree, bvh, etc...) so my old, unfinished implementation was a step in that direction

=> hybrid scene manager tree (and thererfore tree agnostic traversal)
=> chc (using tree agnostic traversal)

( as pointed in Official Idea List )

Now, problems of CHC/chc++ algo
=> fix the reuse of camera render (store resulting render queue) for next render of the exact same camera parameters (deferred rendering) (I think Assaf and Sinbad talked about that not long ago, but cannot remember what came of it)
=> fix the per camera + per camera shadow "memory" of previous frame occlusion results (chc is a conservative algo)
=> fix the when the ogre integration (ogre culling is pre-render, ogre render is done as a "second" pass, but CHC is culling+render mixed.)
=> proxy geometry, and the node tagging in 3 categories : occludder, occludee, none so that it prevents heavy computation (more GPU time to compute visibility than rendering time...)

Now that would imho make 2 separate gsoc subject, and I would even count it as 3, as a Software Occlusion Culling is the preferred option of 3d engine in many, many engines. (over CHC++, but both can even be combined)

But I would say that CHC, hybrid tree manager is a very complex gsoc subject (need to understand Ogre internal and the invitable very messy render phase (many many case handled there...)) wheras software occlusion culling is a much simpler, independent one.
Deathgunner
Gnoblar
Posts: 7
Joined: Tue Feb 08, 2011 12:34 am

Re: [GSoC 2011] idea :)

Post by Deathgunner »

tuan kuranes wrote:Now that would imho make 2 separate gsoc subject, and I would even count it as 3, as a Software Occlusion Culling is the preferred option of 3d engine in many, many engines. (over CHC++, but both can even be combined)

But I would say that CHC, hybrid tree manager is a very complex gsoc subject (need to understand Ogre internal and the invitable very messy render phase (many many case handled there...)) wheras software occlusion culling is a much simpler, independent one.
If someone with courage and skills would fully implement it, would it be better than software occlusion culling? Is software more popular because of the implementation process?
Sgw32
Greenskin
Posts: 100
Joined: Mon Aug 30, 2010 9:35 am
x 11

Re: [GSoC 2011] idea :)

Post by Sgw32 »

It would be very useful to implement CHC++!
Now I know that Ogre doesn't support a simple OC, so it's difficult to make a realistic, detailed First Person Shooter.
I don't have any ideas, how to make even OC i Ogre possible, so it would be realy appreciated to make CHC++!
In addition, I want to ask, can CHC++ cull lights and shadows?
Deathgunner
Gnoblar
Posts: 7
Joined: Tue Feb 08, 2011 12:34 am

Re: [GSoC 2011] idea :)

Post by Deathgunner »

Sgw32 wrote:It would be very useful to implement CHC++!
Now I know that Ogre doesn't support a simple OC, so it's difficult to make a realistic, detailed First Person Shooter.
I don't have any ideas, how to make even OC i Ogre possible, so it would be realy appreciated to make CHC++!
In addition, I want to ask, can CHC++ cull lights and shadows?
Im far from a pro, but from my understanding CHC++ only cull geometry.

For shadows, I think Sample distribution shadow map ( http://visual-computing.intel-research. ... ions/sdsm/ ) would do a good job at tightening light space and z-partitions. theres less wasted space and the
resolution can be greater far away and near the camera as it automatically position partitions. But for ¨culling¨ shadows, I dont know...

For lights, the only time we have a lot of them in a scene is in deferred shading and (from my noob understanding), only lights affecting screen pixels are drawn. So is it necessary?

Correct me if im wrong :wink:
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4
Contact:

Re: [GSoC 2011] CHC++ idea :)

Post by tuan kuranes »

CHC++ culls geometry or proxy geometry (aabbox) so you can make use of proxy geometry for lights, portals, etc.

Btw, another huge ogre modification was the proxy geometry, and the node tagging in 3 categories : occludder, occludee, none so that it prevents heavy computation (more GPU time to compute visibility than rendering time...)

Software occlusion culling doesn't hang the GPU at all and make good use of the multicore CPU (which are most cpu now, and soon aven phones will be all multicore)

Here's some reading on the topic :

software occlusion culling
http://kriscg.blogspot.com/search/label ... %20culling
http://www.hmrengine.com/blog/?p=217
http://msinilo.pl/blog/?p=194
http://seganx.com/SeganSOC/index.html

Now opengl 4.x has interesting capabilities for occlusion culling
http://rastergrid.com/blog/2010/10/open ... -released/
http://rastergrid.com/blog/2010/10/hier ... n-culling/
http://www.nickdarnell.com/?p=1036

(but that needs an opengl 4.x ogre rendering plugin)

so has DX10/DX11 if you use the "predictive draw" feature (dxsdk sample)
Sgw32
Greenskin
Posts: 100
Joined: Mon Aug 30, 2010 9:35 am
x 11

Re: [GSoC 2011] CHC++ idea :)

Post by Sgw32 »

How many FPS-s OC can add(in average)? Does it help with reducing batch count?
User avatar
tuan kuranes
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 2653
Joined: Wed Sep 24, 2003 8:07 am
Location: Haute Garonne, France
x 4
Contact:

Re: [GSoC 2011] CHC++ idea :)

Post by tuan kuranes »

@Sgw32 OC algos give a good fps boost (but varying), depending heavily on the scene type (won't give much in space or flight sim but will shine in city scenes). The aim is definitly to lower batch count.

Btw some chc++ use + enhancment in this very new paper : http://www.cg.tuwien.ac.at/research/pub ... -2011-scc/ (chc++ optimisation in 5.3)
Sgw32
Greenskin
Posts: 100
Joined: Mon Aug 30, 2010 9:35 am
x 11

Re: [GSoC 2011] CHC++ idea :)

Post by Sgw32 »

Will be just great if somebody will make a CHC++ solution for Ogre! I'm not very experienced with such a powerful algorhythms, so I'm just tracking this thread.
will shine in city scenes
That's what I need!
Shadow culling using CHC++? Great!
I know that Ogre is limited to shadow textures, and each texture is for one light, so it will not render shadow textures that are invisible and grant a shadow texture slots for other lights?
Deathgunner
Gnoblar
Posts: 7
Joined: Tue Feb 08, 2011 12:34 am

Re: [GSoC 2011] CHC++ idea :)

Post by Deathgunner »

Sgw32 wrote:Shadow culling using CHC++? Great!
Yes it is! this look really interesting! CHC++ was already good, but shadow culling is awesome. It would be a good starting point to integrate this upgraded chc++ implementation for the possibly future shadow culling system. :D
User avatar
Praetor
OGRE Retired Team Member
OGRE Retired Team Member
Posts: 3335
Joined: Tue Jun 21, 2005 8:26 pm
Location: Rochester, New York, US
x 3
Contact:

Re: [GSoC 2011] CHC++ idea :)

Post by Praetor »

I corresponded a bit with the original researcher that did CHC++ some time ago. I never got anywhere with it but he did give me some of his original resources (like demos...). If someone tackles this I can pass along the resources if no one else can find them.
Game Development, Engine Development, Porting
http://www.darkwindmedia.com
shanefarris
Greenskin
Posts: 107
Joined: Sun Mar 01, 2009 8:36 pm
x 7

Re: [GSoC 2011] CHC++ idea :)

Post by shanefarris »

What about implementing a CG OC? It was covered in one of the cg gems books.
Fritzendugan
Gnoblar
Posts: 15
Joined: Mon Mar 19, 2012 3:43 pm

Re: [GSoC 2011] CHC++ idea :)

Post by Fritzendugan »

Hi,

I'm interested in pursuing a project proposal of implementing CHC++ into the Ogre engine. See http://www.ogre3d.org/forums/viewtopic.php?f=13&t=69415

I was told to contact Praetor, that he had some useful resources? :)
Post Reply