知道你在GLSL上使用哪个像素或UV?

时间:2011-05-29 13:13:57

标签: glsl

现在我可以通过

获取相邻像素的颜色
color = texture2D(backBuffer, vec2(gl_TexCoord[0].x + i,gl_TexCoord[0].y + j);

但我如何知道纹理上的像素是什么或至少是该像素的当前uv?

片段的哪个像素。 UV / ST是一个从0到1的数字,代表整个纹理。

我想根据距离点的距离来计算像素亮度。

1 个答案:

答案 0 :(得分:2)

gl_TexCoord[0].x为您提供纹理坐标,而gl_TexCoord[0].y则为您提供纹理坐标。

如果您正在编写片段着色器,则像素位置无关紧要。我没试过,但也许你可以使用gl_in得到它,它被定义为:

in gl_PerVertex {
vec4 gl_Position;
float gl_PointSize;
float gl_ClipDistance[];
} gl_in[];

但我不确定它是否可用于像素着色器。