24 Feb 2014

Project Anarchy improve the Glow Post Processing.

Time ago I tested the glow shader and noticed it isn't as slow as I  believed on mobile if you mantein a low number of iterations.

It actually use dependent texture read so maybe it can be further improved.(p.s. comment in shader says it doesn't really use dependent texture read even if shader it a bit harder to follow in all it's permutations).
Actual implementation seem to do 3 interpolated taps so probably my blur cannot be faster than that, at least for few iterations( i have to see if I can make a better blut with 1 pass and 5 or 6 taps).

I want to implement one with vertex shader interpolators instead to compute uv in pixel shader.

Glow is composed by the most % by a blur filter.

In the actual pipeline this blur is just used in the last glow pass where it merges with the scene.

I don't really like this choice so instead to simply change the shader I want to modify the post processing so that blur can be used multiple time and glow get calculated and added to the scene with other effects and not in it's own pass.

For the blur:

I have to check the max number of texture coordinates ( opengl es limit is of 32 float varings) , but on mobile better to stay within 8 texture coordinates.

I have two 2 main options.


  • A Separable gaussian blur with 5 to 8 taps linear filtered.



  • A 3Pass box blur up to 8 taps (linear filtered) with shape similar to gaussian after the third pass.
First task so will be to complete the blur shader.


.



No comments:

Post a Comment