2 is because of 1. UV coordinates are expressed as [0, 1], so those are offsets applied to the texture coordinates. You can use vecSkill1 to tighten or loosen the whole thing to match it towards your actual texture size (because the sampler values aren't expressed in actual pixel offsets, you need some input into how big the texture is, or rather, what kind of factor you need to multiply it by to get to whole pixels) so it either samples closer or more spread out over the source texture.

Edit: Rereading your question 2: Are you asking how the blur is applied to every pixel? The GPU will execute the shader for every visible fragment, so each invocation only has to care about the one fragment it's invoked for.

Edit2: Yeah, I didn't realize that vecSkill1 was the blur strength... Sue me.

Last edited by WretchedSid; 09/07/17 23:28.

Shitlord by trade and passion. Graphics programmer at Laminar Research.
I write blog posts at feresignum.com