我读过texelFetch的texelFetch文档,即:
gvec4 texelFetch(gsampler2D采样器,ivec2 P,int lod)。
我知道第一个论点“采样器”只是一个纹理。但我对第二次和第三次辩论感到非常困惑。
根据文档,第二个参数"P“是纹理坐标。但是它的类型是ivec2,这意味着它是整数的向量。纹理坐标不应该在0,1范围内吗?
对于第三个参数"lod",在文档中,它说“如果存在,指定纹理中的细节级别,从纹理中获取纹理。”我不知道如何提出这个论点..。
有人能解释一下这一点并给出一个如何使用texelFetch的实际例子吗?
谢谢!
发布于 2018-06-04 16:53:46
好的,我已经解决了这个问题。
对于纹理坐标,有两种纹理坐标。一种是归一化纹理坐标,位于0,1范围内。另一个是texel空间,它位于[0,size)范围内,其中大小是纹理的大小。对于texelFetch(),使用了texel空间。
对于lod
,它意味着mipmap中的详细级别。我们可以简单地使用0作为基本级别(原始大小)。
因此,使用texelFetch()
的一个示例应该是:
vec4 texelValue= texelFetch(texture2D, ivec2(gl_FragCoord.xy), 0);
https://computergraphics.stackexchange.com/questions/7687
复制相似问题