【问题标题】:Alternative to texelFetch? [duplicate]texelFetch 的替代品? [复制]
【发布时间】:2012-01-28 07:02:46
【问题描述】:

我正在学习 GLSL,需要一些纹理查找方面的帮助。我正在尝试使用纹理进行存储,但我无法获得“正确”的纹理查找。我更喜欢使用通常的 texture2D 方法(使用 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)));
}

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

【问题讨论】:

  • 您使用的纹理过滤参数是什么?你的纹理有 mipmap 吗?
  • 它最近并且没有 mipmap。我发现了这个问题。我使用的是纹理大小而不是范围,所以它缩小了一点。不好的命名。

标签: opengl glsl sfml


【解决方案1】:

这已成为某种常见问题解答:

我在这里回答了

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

这里

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

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

【讨论】:

  • 谢谢。我确实花了最后几天试图找出问题所在,但我从未遇到过你的答案或其他类似的答案。我猜我的关键字不太好。
  • 责备不使用谷歌搜索的人是没有帮助的; 确实花时间搜索的人往往会遇到人们因为有人没有搜索而生气的所有链接,这最终使池对于那些真正试图查找解决方案的人来说毫无用处在提出新问题之前。
  • 具有讽刺意味的是,这个答案是我搜索结果中的第一个 stackoverflow 链接。
  • ...没有人因此而赞成这个:0
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-12-20
    • 2020-11-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-08-24
    相关资源
    最近更新 更多