I was reading several articles regarding the use of linear filter when sampling textures to optimize a gaussian blur kernel effectiveness.
Here:
https://software.intel.com/en-us/blogs/2014/07/15/an-investigation-of-fast-real-time-gpu-based-image-blur-algorithms
http://rastergrid.com/blog/2010/09/efficient-gaussian-blur-with-linear-sampling/
http://prideout.net/archive/bloom/#Sneaky
And the first thing I don't understand is the fact that they are talking as if the linear filter were taking only 2 samples when ( if I understood correctly) it should takes 4 samples, doesn't that affect the result in any way? (when performing two pass blur, first horizontally and then vertically).
[attachment=34952:three2.png]
(taken from the third link)
The other thing may be due to my lack of proper understanding of how linear filtering works, but from what I could find, linear filtering is performed first by rounding the uv position to the nearest texel, taking a sample there and then taking a sample from the right, right-bottom, and bottom texels ( the four nearest texels), as shown below.
[attachment=34951:Screenshot_4.png]
(awesomely drawn grid of texels)
So if we are sampling at the center of the grid (blue point), the returned value will be the interpolated value between all of those green rectangles (plus the filled one).
If that is correct then I don't understand the way they are calculating the offsets to sample with the kernel. I mean, why there?
[attachment=34953:three3.png]
Instead of here
[attachment=34954:three4.png]
I hope my explanation/questions are clear, if not please say so and I will try to draw it better :P