void main()
{
+ // Moving the position is equivalent to moving the texture coordinate,
+ // but cheaper -- as it means some of the fullscreen quad can be clipped away.
+ vec2 adjusted_pos = position - sample_offset;
+
// The result of glOrtho(0.0, 1.0, 0.0, 1.0, 0.0, 1.0) is:
//
// 2.000 0.000 0.000 -1.000
// 0.000 2.000 0.000 -1.000
// 0.000 0.000 -2.000 -1.000
// 0.000 0.000 0.000 1.000
- gl_Position = vec4(2.0 * position.x - 1.0, 2.0 * position.y - 1.0, 2.0f * (z - 0.5f), 1.0);
+ gl_Position = vec4(2.0 * adjusted_pos.x - 1.0, 2.0 * adjusted_pos.y - 1.0, 2.0f * (z - 0.5f), 1.0);
- tc = position + sample_offset;
+ tc = position;
}