[SoC 2009] High Speed, Off-Screen Particles

Threads related to Google Summer of Code
manvsmachine
Gnoblar
Posts: 5
Joined: Sat Mar 21, 2009 6:06 pm

[SoC 2009] High Speed, Off-Screen Particles

Post by manvsmachine »

Name: Darren Woodley
OGRE Forum username: manvsmachine
GTalk ID: hodgechen

-- Project Proposal --
I would like to implement the project detailed in Section 1.11 of the "Help Requested" wiki; that is,
"High Speed, Off-Screen Particles". I chose this task for two reasons. First, I am new to the OGRE codebase,
and as such, am not prepared to submit an original proposal. Second, of the Help Requested tasks, this
most fully utilizes the skills and experience that I do have. While I am not very familiar with OGRE yet,
I have experience with C++, graphics programming in general (specifically OpenGL), and image processing
algorithms. I am a senior at Southern Polytechnic State University majoring in Computer Science and minoring in
mathematics.



EDIT: Technical details of the work involved can be found here

-- Schedule --
As previously mentioned, I am new to OGRE; however, I have been working to get comfortable with it as
quickly and thoroughly as possible. As of the time of this writing, I have built it from source, run the
demos, and am currently working my way through the last of the tutorials. I have also read chapters
6, 8, 10, and 12 of Pro Ogre Programming to familiarize myself with OGRE scripting and the Compositor framework.


If I were to be accepted, my schedule from now would be as follows (tentative):
now - acceptance date:
continue reading docs, working through tutorials.

April 20 - May 23:
discuss project with mentor, establish detailed schedule, requirements, etc.


May 23 - June 20:
Implementation Phase 1. By June 20th, I plan to have a basic working implementation. Specifically, this would cover
through section 23.4: downsampling at a 2x2 or 4x4 scale, depth testing, and alpha blending.
Testing.

June 20 - July 6 (midpoint):
Implement more robust featureset for phase 1 (additional downsampling modes, maximum of depth samples,
soft particles).
Testing.
Documentation.


July 6 - 24:
Mixed Resolution Rendering.
Testing.
Documentation.

July 25 - August 10:
Performance / IQ testing.
Code cleanup.
Demo Creation.

August 10 - 17:
Documentation revision.



Post-Completion:
There is a lot of work that can in regards to performance and image quality tuning. One issue I am already
curious about is potentially using a Canny operator for edge detection, provided there is not too much of a
performance hit. The example provided in GPU Gems used a Sobel operator, which is generally more susceptible to
pixel noise and false / broken edges.

-- Why OGRE? --
I chose to work with OGRE because I am very interested in applications of 3D graphics, specifically realtime
visualization of large datasets. Graphics and parallel / multicore processing are my primary academic focus.
Last edited by manvsmachine on Thu Apr 02, 2009 3:26 pm, edited 4 times in total.
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

Re: [SoC 2009] High Speed, Off-Screen Particles - Draft

Post by tuan kuranes »

You have to go a lot more into details so that we know you understand the project and be able to tackle it.
- What algo you think you'll choose ? based on papers, demos ?
- What minimum requirements ?
- did you checked OOgst Volumetrics demo and source ? What will you bring to ogre more than that ?
- etc.
manvsmachine
Gnoblar
Posts: 5
Joined: Sat Mar 21, 2009 6:06 pm

Re: [SoC 2009] High Speed, Off-Screen Particles - Draft

Post by manvsmachine »

Sorry, there was a link in the Help Requested section that I had meant to add. It's in my previous post now, for those who don't know what it's about.

Brief Summary:
My proposal deals specifically with the performance issues that arise from rendering large particle systems. The types of things that we use particle systems to render are often physically nebulous and interact with solid objects, which causes them to partially either occlude or be occluded by the object. Using the approach in GPU Gems 3, we can significantly improve the rendering performance of these systems by:

- writing depth info for objects to a off-screen low(er)-resolution render target that has been downscaled by some factor
- testing against this depth info to determine which particles are rendered (now faster due to low resolution)
- compositing rendered particles back onto the framebuffer after upsampling

This is basically what comprises my Phase 1. Phase 2 deals with techniques used to prevent correct artifacts caused by the low-resolution rendering:

- write alpha channel values (inverted) to off-screen target
- perform edge detection, writing values to stencil buffer
- composite to framebuffer, discarding edge pixels
- particles in edge areas are rendered in a second pass at full resolution


Algorithmic details are provided in the link that I added, it would be redundant to copy them all over. Please let me know if there's anything else I should include. As far as Oogst's Volumetric Particles Demo, I read the forums posts and started reading the paper, paper and we seem to be working on two distinct problems. He was working on getting more realistic behaviour as objects move into the volume of the system. My project is entirely a performance enhancement, and should be applicable regardless of whether the particle system is flat or volumetric.
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

Re: [SoC 2009] High Speed, Off-Screen Particles

Post by tuan kuranes »

Algorithmic details are provided in the link that I added
- You have to adapt it to Ogre Shader/graphics Pipeline then give much more precision about how you plan to do do that in Ogre, and be much more specific.
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: [SoC 2009] High Speed, Off-Screen Particles

Post by Assaf Raman »

Can you post some previous 3d work demos and code you created so we can see what you can do?
Watch out for my OGRE related tweets here.