替代texelFetch?

66bbxpm5  于 2022-09-26  发布在  其他
关注(0)|答案(2)|浏览(135)

我正在进入GLSL,需要一些纹理查找的帮助。我正在尝试使用纹理存储,但我无法获得“适当的”纹理查找。我更喜欢使用常用的纹理2D方法(使用GLSL 1.2),但效果不够好。

使用纹理2D:

使用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)));
}

那么,如何才能正确地做到这一点呢?

wtzytmuj

wtzytmuj1#

这已经变成了某种常见问题:

我在这里回答了

https://stackoverflow.com/a/5879551/524368

还有这里

https://stackoverflow.com/a/7272871/524368

在其他一些地方也是如此。

texture2D(tex, (2 * uv + vec2(1.))/2 * u_texsize);

5f0d552i

5f0d552i2#

我会说,使用textureRect。然后,您可以使用texture2D,并提供您想要访问的以像素为单位的实际坐标。

相关问题