我在GLSL片段着色器(OpenGL ES 2.0)中傳遞一個NxM大小的紋理作爲採樣器。從相鄰紋理中讀取紋理數據的正確方法是什麼?我在片段着色器中沒有「變化」的紋理座標。我只能使用片段座標來讀取紋理信息。以下在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;
}
是偏移值應爲1.0或爲N×M的大小質地別的東西嗎?
你究竟想在這裏做什麼? – IDWMaster
@IDWMaster我猜想訪問相鄰的texel值,就像他說的。我不知道哪裏有什麼不清楚的地方,或者最重要的是他到底想要達到什麼目的。 –
歡迎來到StackOverflow,我希望你閱讀[FAQ](http://stackoverflow.com/faq#howtoask)。 –