[GSoC 2012] CHC++

Threads related to Google Summer of Code
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 2012] CHC++

Post by tuan kuranes »

It would be awesome to have VFC, CHC++, and HZB as separate implementations that could be used depending on the scene specifics
That would is another gsoc subject, http://www.ogre3d.org/tikiwiki/Help+Req ... ybrid_tree allowing the traversal to be tree implementation agnostic, and allow for chc and other hzb to be implemented easily and independently.
Note that the basics are within the chc source code, with multiple culling algo implemented using the traversal pattern, with VFC, recursive VFC, stop&wait, chc, debug, etc.
Best would be to extend it so that can have parallel Dod "Data Oriented Design" orientations as much as possible in it.
bstone
OGRE Expert User
OGRE Expert User
Posts: 1920
Joined: Sun Feb 19, 2012 9:24 pm
Location: Russia
x 201

Re: [GSoC 2012] CHC++

Post by bstone »

That's good news then.
Fritzendugan
Gnoblar
Posts: 15
Joined: Mon Mar 19, 2012 3:43 pm

Re: [GSoC 2012] CHC++

Post by Fritzendugan »

I have updated my initial post to reflect a rough draft of my proposal. I still have runtime errors with tuan's code, so I'm not able to get a concrete schedule set up until I have a better idea of where his code left off.
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 2012] CHC++

Post by spacegaier »

[RANT] I just skipped through the CHC++ paper you linked and don't like it at all. They refer to OGRE as a game engine :shock: :twisted: :lol: !!!
[/RANT]
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 2012] CHC++

Post by tuan kuranes »

I have a better idea of where his code left off
I can help you there: prototypal level is where it was, not production ready.
On hybrid tree => was needing ogre core change.
On CHC => removing experimental occlusion/occluder/occludee and better debugging (notably more/better debugging view)
Read all my CHC related post here. Should be full of comments on that, as many people tried to implement CHC++ and to read my code.
Fritzendugan
Gnoblar
Posts: 15
Joined: Mon Mar 19, 2012 3:43 pm

Re: [GSoC 2012] CHC++

Post by Fritzendugan »

ok, that is what I thought, I just didn't want to say anything before I had the code actually running in case I put my foot in my mouth ;)

I will try and get a timeline typed up sometime today or this weekend.
Fritzendugan
Gnoblar
Posts: 15
Joined: Mon Mar 19, 2012 3:43 pm

Re: [GSoC 2012] CHC++

Post by Fritzendugan »

I have added a rough timeline. I'm still in the process of getting familiar with tuan's code and the ogre engine in general, so some dates may shift as I do so. I feel fairly confident, however, that this is an achievable timeline. Any comments and input on the proposal are greatly appreciated, though.
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 2012] CHC++

Post by tuan kuranes »

Any comments and input on the proposal are greatly appreciated, though.
Still very rough planning you have there, main focusing point should be :

- unless you plan to finish the hybrid spatial tree, either specify what spatial tree type you'll be using (loose octree is really not suited for visibility algo, as object can be in two different leaf at the same time, check http://www.ogre3d.org/forums/viewtopic.php?f=3&t=50950 for recent discussion on latest ABT alternatives). The really best and fastest way would go for a brute force DOD culling grid as in http://publications.dice.se/attachments ... efield.pdf then use CHC on that grid. Best perf, simpler code, done easily and fast.

- solving the way visibility per camera and per light/shadow is stored in each node and frame unicity is determined (some fast consistent hashing on render target+camera+framenum might do the trick )

- generalisation of culling mechanism so that shadow caster culling in shadow passes can be done. (check paper "chc shadow caster" paper linked above)

- chc optimisations (3 paper listed above on that chc++, chc++opt, shadowcaster chc opt) should be listed in the proposition.
Fritzendugan
Gnoblar
Posts: 15
Joined: Mon Mar 19, 2012 3:43 pm

Re: [GSoC 2012] CHC++

Post by Fritzendugan »

Thank you for your input, those sound like good areas of focus. I've been busy so far this week and will be tomorrow, also, but thursday I should have more time to do more reading on these topics and get a better game plan. I've read through the presentation you linked, and I noticed it talks a lot about multi-threading. Do you think DOD alone will compensate enough performance-wise without multi-threading?

Another question, this may be implicit in your third area of focus, but when storing the visibility information in a node, should a level of abstraction be taken so that cameras, lights, and shadow casters can be treated the same way?
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 2012] CHC++

Post by tuan kuranes »

Do you think DOD alone will compensate enough performance-wise without multi-threading?
yes, shorty is memory access cost much more than brute force cpu computations nowadays, see dod the slides for more details.
Another question, this may be implicit in your third area of focus, but when storing the visibility information in a node, should a level of abstraction be taken so that cameras, lights, and shadow casters can be treated the same way?
Was more meaning to add a way to store many information, something named like "RenderTargetCullingPass", with multiples named instances attached to a render target.
You'll have to store an UUID for each of those in there, and when storing visibility info in a node, use that id as the map associative key. The CHC++ info like the draw renderqueue of last frame "visible", and last frame number too could fit there.
And then you'll be able to query it from inside current render to get last frame culling info, per current render pass.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] CHC++

Post by Assaf Raman »

Add your project to here before student application deadline.‬
Watch out for my OGRE related tweets here.
Fritzendugan
Gnoblar
Posts: 15
Joined: Mon Mar 19, 2012 3:43 pm

Re: [GSoC 2012] CHC++

Post by Fritzendugan »

Apparently I misunderstood when the deadline was and missed it :(
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] CHC++

Post by Assaf Raman »

Assaf Raman wrote:Add your project to here before student application deadline.‬
I tried to be clear...
Watch out for my OGRE related tweets here.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179
Contact:

Re: [GSoC 2012] CHC++

Post by jacmoe »

Next year, then! :)
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
Assaf Raman
OGRE Team Member
OGRE Team Member
Posts: 3092
Joined: Tue Apr 11, 2006 3:58 pm
Location: TLV, Israel
x 76

Re: [GSoC 2012] CHC++

Post by Assaf Raman »

Yes.
BTW: Feel free to write the code outside the Google summer of code and submit it to the project.
Watch out for my OGRE related tweets here.
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 2012] CHC++

Post by spacegaier »

Assaf Raman wrote:Yes.
BTW: Feel free to write the code outside the Google summer of code and submit it to the project.
+1
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...
Post Reply