我正在进入GLSL并需要一些纹理查找帮助。我正在尝试使用纹理进行存储,但我无法获得“正确”的纹理查找。我更喜欢使用通常的texture2D方法(使用GLSL 1.2),但结果不够好。
使用texture2D:
使用texelFetch:
现在很明显第一个出了问题。这是我想要做的事情(是的,大小是正确的,除非有一些我不知道的事情):
vec4 texelFetch(sampler2D tex, ivec2 size, ivec2 coord)
{
return texture2D(tex, vec2(float(coord.x) / float(size.x),
float(coord.y) / float(size.y)));
}
那么,这将如何正确完成?
答案 0 :(得分:7)
这已成为某种常见问题解答:
我在这里回答了
https://stackoverflow.com/a/5879551/524368
在这里
https://stackoverflow.com/a/7272871/524368
以及其他一些地方。
答案 1 :(得分:3)
我想说,使用textureRect。然后你可以使用texture2D,并提供你想要访问的像素的实际坐标。