В OpenGL ES 2.0, Как читать соседние тексели из сэмплера?

Я передаю текстуру с размером NxM в качестве сэмплера в GLSL фрагментном шейдере (OpenGL ES 2.0). Как правильно считывать данные текселя из соседнего текселя? У меня нет "изменяющейся" текстурной координаты во фрагментном шейдере. Я могу использовать только координату фрагмента для считывания информации о текстуре.

Ниже приведен мой шейдер, я не уверен, что он действительно читает данные:

precision mediump float;

uniform sampler2D Sampler;

#define OFFSET 1.0

void main()
{

    vec2 T = gl_FragCoord.xy;

    //Find neighboring velocities:
    vec2 N = texture2D(Sampler,vec2(T.x,T.y+OFFSET)).xy;
    vec2 S = texture2D(Sampler,vec2(T.x,T.y-OFFSET)).xy;
    vec2 E = texture2D(Sampler,vec2(T.x+OFFSET,T.y)).xy; 
    vec2 W = texture2D(Sampler,vec2(T.x-OFFSET,T.y)).xy; 
}

Значение OFFSET должно быть 1.0 или что-то другое для текстуры размера NxM?

11
задан kal21 14 October 2011 в 23:11
поделиться