Page 2 of 15

Re: [GSoC 2012] Off-Screen Particles project

Posted: Wed Jun 13, 2012 10:10 am
by Assaf Raman
What is your status?

Re: [GSoC 2012] Off-Screen Particles project

Posted: Fri Jun 15, 2012 7:41 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Fri Jun 15, 2012 8:33 pm
by spacegaier
I assume no luck on Skype either?

Re: [GSoC 2012] Off-Screen Particles project

Posted: Fri Jun 15, 2012 8:40 pm
by Assaf Raman
Didn't try.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Sat Jun 16, 2012 9:03 am
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Sat Jun 16, 2012 9:11 am
by Assaf Raman
When are you going to start programming?

Re: [GSoC 2012] Off-Screen Particles project

Posted: Sat Jun 16, 2012 10:16 am
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).

Re: [GSoC 2012] Off-Screen Particles project

Posted: Sat Jun 16, 2012 12:40 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Sat Jun 16, 2012 5:43 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Sat Jun 16, 2012 6:52 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Sun Jun 17, 2012 9:12 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Tue Jun 19, 2012 9:32 pm
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).

Re: [GSoC 2012] Off-Screen Particles project

Posted: Tue Jun 19, 2012 11:09 pm
by jacmoe
Volumetric fog and or god rays would be so great. In Ogre. :D

Re: [GSoC 2012] Off-Screen Particles project

Posted: Tue Jun 19, 2012 11:41 pm
by Assaf Raman
Ok, keep up the good work.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Wed Jun 20, 2012 3:16 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Wed Jun 20, 2012 3:40 pm
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. :)

Re: [GSoC 2012] Off-Screen Particles project

Posted: Wed Jun 20, 2012 3:50 pm
by Assaf Raman
Can't you render to texture and create the depth texture? (Smiler to whats going on in PSSM...)

Re: [GSoC 2012] Off-Screen Particles project

Posted: Wed Jun 20, 2012 3:52 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Wed Jun 20, 2012 4:12 pm
by Wolfmanfx
Would be awsome to impl. Arasp.info intz hacks to access the depthbuffer.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Wed Jun 20, 2012 6:09 pm
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Mon Jun 25, 2012 6:01 am
by Assaf Raman
There have been 5 days since the last progress report, we expect a daily report, can this be improved?

Re: [GSoC 2012] Off-Screen Particles project

Posted: Mon Jun 25, 2012 6:05 am
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.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Mon Jun 25, 2012 7:34 am
by Karol Badowski 1989
I' ve been doing tutorials las days. Tonight i will upload effects.

Re: [GSoC 2012] Off-Screen Particles project

Posted: Mon Jun 25, 2012 7:49 am
by Assaf Raman
Can you post what do you mean by that - what tutorials? what effects? what do you mean by upload?

Re: [GSoC 2012] Off-Screen Particles project

Posted: Mon Jun 25, 2012 7:22 pm
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.