我试过了:
#version 130
uniform sampler2D texID;
in vec2 texcoord;
out vec4 outcolor;
void main(void) {
vec2 tcoord=texcoord.xy*768.0;
ivec2 tst=ivec2(tcoord.x,tcoord.y);
outcolor=texelFetch(texID,tcoord);
}
并在
texelFetch
上出现错误:无法找到兼容的重载函数“texelFetch(sampler2D,vec2)”。
我并没有把这些参数放在这里几个来源:
TheQuestion:有没有一种方法可以将
GL_TEXTURE_2D
与texelFetch
一起使用,或者仅在执行着色器时直接从纹理读取像素? 最佳答案
检查1.30 spec,第89页。
无五个texelFetch()
重载中的采用两个参数:
gvec4 texelFetch (gsampler1D sampler, int P, int lod)
gvec4 texelFetch (gsampler2D sampler, ivec2 P, int lod)
gvec4 texelFetch (gsampler3D sampler, ivec3 P, int lod)
gvec4 texelFetch (gsampler1DArray sampler, ivec2 P, int lod)
gvec4 texelFetch (gsampler2DArray sampler, ivec3 P, int lod)
您需要第三个参数。
关于c++ - 如何在GL_TEXTURE_2D中使用texelFetch?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13812454/