[GSoC 2012] Off-Screen Particles project - continuation

Threads related to Google Summer of Code
Post Reply
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] Off-Screen Particles project

Post by Assaf Raman »

What is your status?
Watch out for my OGRE related tweets here.
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] Off-Screen Particles project

Post by Assaf Raman »

My status update: :? I don't seem to be able to contact the student, both on the forum or by e-mail.
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] Off-Screen Particles project

Post by spacegaier »

I assume no luck on Skype either?
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
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] Off-Screen Particles project

Post by Assaf Raman »

Didn't try.
Watch out for my OGRE related tweets here.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

I am sorry, I was absent.
I finished one session on my first faculty (Informatics), now I finished session on my second faculty (Bioinformatics)
It started just after session on first one was finished.

I'm terribly sorry I did not check mail/forum. Definately my most difficult semmester.
I'll make up for absence. There is less time left, so I have to condensate timeline and double planned hours of work daily.
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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] Off-Screen Particles project

Post by Assaf Raman »

When are you going to start programming?
Watch out for my OGRE related tweets here.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

I am sorry again, amount of studying was higher than I expected.

According to my primary timeline I should have prepared all diagrams till 4'th of June and I should have consulted them to the final shape till 20'th of June.
Primary, I planned to start implementation on 20'th of June, after entire implementation plan would have been accepted.

I have produced a delay.
Right now my plan is to catch up to primary timeline. If I double initially planned work time, I'll manage to catch up the primary timeline in first week of July.

I should condensate models preparation to 8 days (16-23'th June).
I would like to consult them till 27'th of June, to be sure that it is appropriate.
Then on 28'th I should start implementation of depth acquisition (It is a base, that produces data used and processed by all other modules, so it has to be implemented first).
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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] Off-Screen Particles project

Post by Assaf Raman »

Well, the mid-term evaluations are in July 9, by that time - I will need to see real progress, else we will have a problem here.
According to your new schedule - you will have less then two weeks to program, I don't like it.
What would you do if you were in my place? Tell me how this is going to work out.
Watch out for my OGRE related tweets here.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

I should shorten preparation time then.

Would that be acceptable solution:
- Six days (16-22 June) to prepare project of methods and used ogre classes.
- Start implementation on 23 of June.

Project would include more generalised model of modules that have to be implemented later and detailed model of code that has to be ready earlier:

-depth acquisition (ZBuffer, Alpha channel, two pass, MRT + detection which should be used with provided version of DirectX/OpenGL)
-depth downsampling (choice of size + sampling method: middle point depth/maximum of depth).

Project of modules that have to be implemented later, should include at least input and output data types for communication.
Project of earlier modules needs also detailed set of used OGRE classes inside of each method + pseudocode of methods. When I prepare this part, I'll be able to start implementation.
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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] Off-Screen Particles project

Post by Assaf Raman »

Make sure to add daily progress updates to this thread - on the days you work.
I will assume that on days you didn't update the thread - you didn't work.
Watch out for my OGRE related tweets here.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

Today and tonight I have been doing tutorials. I still am analysing existing OGRE classes & structures that are mentioned (used) in samples: "Compositor", "Smoke" and "Particle Effects".

Tomorrow morning + afternoon I will continue that process (analysing classes and their dependancies).
In late afternoon tomorrow I should start next phase: preparing updated model of class communication (with special stress on types of passed data) for Off-screen particles project.
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

Today and yesterday I've continued reading tutorials and analysing code of existing components used for rendering depth, recognising supported system and multiple target rendering.

Right now I am examining DepthBuffer OGRE class. I am also learning how to save manually depth to Alpha Channel in DirectX9 (of course between acquiring and saving, I'll downsample it).

While doing OGRE tutorials, I've prepared scene with adjusted particle effects to achieve good contrast for future tests of halo artifacts.
[vimeo]44341074[/vimeo]
I will expand it:
a) A building with columns + fog on the ground could be usefull for tests of softParticles.
b) I'll also add some semi-transparent objects:
They shouldn't be rendered as solid objects, before particles. I'd say that in many cases they should be rendered together, with particles, as I see it: without downsampling (or at least with second-pass rendering on edges, because diffuse used in case of downsampling, would be harmful for their edges).
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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] Off-Screen Particles project

Post by jacmoe »

Volumetric fog and or god rays would be so great. In Ogre. :D
/* 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] Off-Screen Particles project

Post by Assaf Raman »

Ok, keep up the good work.
Watch out for my OGRE related tweets here.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

Today:
I've updated tests example to be more representative and interactive (I'll upload video of update tonight).

I have attempted to make fog (that does not take size of entire screen) with a particle effect. I haven't done volumetric texture fog yet, but I managed to do fumes. If volumetric texture would be better (this is a question), I can always check how is it created in sample applications and replace fumes.

Particle fumes are created on a specified heigth, below penguin rocket. It makes impression that they move close to the ground like a fog after loosing speed.
Rocket oscilates vertically with one frequency.
Every time, during N push-ups (while it is waiting for travel mode) it oscilates horizontally with second frequency (it also changes angle with the same frequency moved in phase, to pretend that movement is caused by shaking). Fog creating point moves slightly.

In travelling mode, penguin rocket makes M loops.

Fumes are blown horizontally with a little randomness, in direction that changes counterckwise, always from projection point of the rocket to the specified plane.


Ogre Head shakes sinusoidally, barrels shake with the same frequency, moved in phase.
All parameters are adjustable now. I will add controls to modify these parameters from GUI.

All movement is supposed to distribute fumes in space, so observations could be made in the future (I've prepared new material for that fumes so it is transparent enough to pretend fog for alpha-blending tests).


When I have added 2 modes of movement (penguin could make loops OR shake and oscilate), FPS went down from 100 to 40. I wonder which issue had higher impact:
a) one more encapsulation for transformations
b) if/else for two modes of movement, instead of constant set of transformations

If it is b), I can simplify the movement to regain 100FPS: destroy encapsulation Node for loops and just add the volumetric fog (distribution of fumes around the scene would not be needed anymore).
If it is a), I could concatenate more transformations on one level of node encapsulation to optimise calculations.
This Evening:
Learning "Evolution And Biodiversity". It turned out that I have one additional Exam from that subject.

Plan for Tomorrow:
10:00 am Exam. After Exam, going back to preparation for coding. Building example was rather less priority task...
Yesterday while reading about way to cope with depth acquisition in DX9, I have heared that empirical examples (practical use of structures - not only theory) for saving depth in textures in DIrectX9 could be found in tutorials about creating non-stencile shadows. I hope it is true - that would mean that I know where to look for that information. That is why tomorrow I'll train DirectX9 - refreshing stuff that I know and learning a lot of new things, including those direcrtly connected with project.
Last edited by Karol Badowski 1989 on Wed Jun 20, 2012 3:45 pm, edited 2 times in total.
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
PhilipLB
Google Summer of Code Student
Google Summer of Code Student
Posts: 550
Joined: Thu Jun 04, 2009 5:07 pm
Location: Berlin
x 108

Re: [GSoC 2012] Off-Screen Particles project

Post by PhilipLB »

Hm, a day for (re-)learning DirectX 9? I mean, if you know how your algorithm works (at this specific part), you "just" need to know that bit of Ogre to implement it in a learning-by-doing-style, where you can also ask the forum about this bit ("I need to acquisition some kind of depth buffer to read/write/do stuff with it, how can I do that with Ogre? Is this and that the right class to use?").
Does this part even involve access to DirectX? Then, wouldn't it mean, that you need to extend the other rendersystems as well? Sorry, if I missed this part. :)
Currently, it looks a bit like this time could be used more productive.

But good luck with your exam. :)
Google Summer of Code 2012 Student
Topic: "Volume Rendering with LOD aimed at terrain"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Mattan Furst


Volume GFX, accepting donations.
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] Off-Screen Particles project

Post by Assaf Raman »

Can't you render to texture and create the depth texture? (Smiler to whats going on in PSSM...)
Watch out for my OGRE related tweets here.
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] Off-Screen Particles project

Post by Assaf Raman »

Don't work with DirectX directly - use the "RenderSystem" abstraction.
If you want you use DirectX directly - you will have to convince me that this is the only way to finish the project.
Watch out for my OGRE related tweets here.
User avatar
Wolfmanfx
OGRE Team Member
OGRE Team Member
Posts: 1525
Joined: Fri Feb 03, 2006 10:37 pm
Location: Austria - Leoben
x 99
Contact:

Re: [GSoC 2012] Off-Screen Particles project

Post by Wolfmanfx »

Would be awsome to impl. Arasp.info intz hacks to access the depthbuffer.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

Wolfmanfx wrote:Would be awsome to impl. Arasp.info intz hacks to access the depthbuffer.
What I had in mind was: http://aras-p.info/texts/D3D9GPUHacks.html
Assaf Raman wrote:Can't you render to texture and create the depth texture? (Smiler to whats going on in PSSM...)
|------------------------|
Don't work with DirectX directly - use the "RenderSystem" abstraction.
I'll use your advice. Thanks for directions. If there is a good way, than I'll follow that path.
I'll try to code while learning.
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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] Off-Screen Particles project

Post by Assaf Raman »

There have been 5 days since the last progress report, we expect a daily report, can this be improved?
Watch out for my OGRE related tweets here.
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] Off-Screen Particles project

Post by Assaf Raman »

I wrote before - if I won't get daily reports, see real progress, see a real effort - we are going to have a problem here.
Watch out for my OGRE related tweets here.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

I' ve been doing tutorials las days. Tonight i will upload effects.
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
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] Off-Screen Particles project

Post by Assaf Raman »

Can you post what do you mean by that - what tutorials? what effects? what do you mean by upload?
Watch out for my OGRE related tweets here.
Karol Badowski 1989
Google Summer of Code Student
Google Summer of Code Student
Posts: 185
Joined: Fri Apr 06, 2012 3:04 pm
x 18

Re: [GSoC 2012] Off-Screen Particles project

Post by Karol Badowski 1989 »

Most of tutorials I've been doing were about Cg, hlsl, examples of use, from Cookbook http://www.ogre3d.org/tikiwiki/tiki-ind ... e=Cookbook.
apart from Wiki, I also looked topics from forum in search for answers, while implementation.

http://www.ogre3d.org/forums/viewtopic.php?f=5&t=50069,
http://www.ogre3d.org/forums/viewtopic.php?f=2&t=36818

Mainly shaders tutorials, cose shaders are needed in every piece of code that is needed to be implemented, but also I searched for some solutions in samples - shaders are created there in runtime, so it demanded tutorials about classes used there.
http://www.ogre3d.org/tikiwiki/tiki-ind ... evelopment

Writing to textures also is needed, so I red tutorial
http://www.ogre3d.org/tikiwiki/tiki-ind ... o_a_shader

I've checked existing shaders that provide multiple rendering systems for the same shader and checked how are they callled from classes. In meantime I've implemented simple automated shader chooser (it is not complicated yet - right now i use simple shaders as "mocking" to check if everything works fine). I'll gradually replace mock shaders with real ones and i am trying to improve the choice system - right now these are materials with different name suffixes - every material has own shader - every shader has main function. It would be more handy If I pass an argument always to the same material and matrial would have multiple techniques, where one of them would be chosen chosen transparently.

That is why I read topic http://www.ogre3d.org/forums/viewtopic.php?f=5&t=50069 in search for nice solution.
While reading tutorials, I tested examples and modified them. Now I am trying to test and modify sample that you have adviced: http://www.ogre3d.org/tikiwiki/tiki-ind ... evelopment. It has everything that is needed.

I admit that on Sunday I did not work at all. On thursday after sleepless night preceding the exam I came back much later than i planned, felt into deep sleep really quick.

By upload effects i meant that i am going to prepare some animated outputs of tutorials. I am aggregating knowledge from tutorials. Tomorrow i'll attempt implementing Sobel filter in one of hlsl/cg.
Google Summer of Code 2012 Student
Topic: "Implementation of Off-Screen Particles"
Project links: Project thread, WIKI page, Code fork for the project
Mentor: Assaf Raman
Post Reply