Quote:
Does this mean that gamestudio already does the half pixel offset?
As far as I know, yes.

Originally Posted By: HeelX
When you do this repeatedly down to a 1:1 pixel image, you create a Gaussian pyramid
I have to correct myself, a real Gaussian Pyramid is created by convolving an image with a 5x5 Gaussian bell and removing each second row and column:



example image:



After two iterations:



Nevertheless, taking the average of 2x2 neighbouring pixels by 1 bilinear lookup is a cheap but incorrect approximation. Though, I guess you get approximate results to the gaussian approach, if you apply a 3x3 gaussian bell afterwards, in order to get the average of 6x6 source pixels. Whereas you need in the original approach 10 lookups per stage, you need with this one only 7. This is not much, but hey smile

Quote:
How could I effectively blur my bloom texture in you opinion?
I can not tell you how to do HDR since I never wrote a shader like that on my own. I assume that you take the low frequency information of the downsampled image take it's luminancy value as hint how the light and dark parts are distributed over the screen, so indeed you have to upscale downsampled images to match them with their next-level hires-counterparts.

With the original approach, you can do this by first filling all new even rows and columns filled with zeros, followed by a convolution by the same 5x5 Gaussian bell multiplied by 4 to approximate the missing pixel values. After upscaling the above image back to original size:



But I guess this is a somehow inconvinient implementation, although I saw it somewhere in the internet already for CG (search for GPU implementation of Gaussian / Laplace pyramid or similar). An alternative could be a rotated poisson filter disc with 12 samples or so, while the disc is always 5x5 pixel big or so in screen space, maybe with applied jittering. I saw such an approach for dynamically sized DOF and I guess it should work for your case, too.