我试过了:
#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);
}
Run Code Online (Sandbox Code Playgroud)
并得到了错误texelFetch:
无法找到兼容的重载函数"texelFetch(sampler2D,vec2)".
我没有把这些参数放在我的头上,这里有几个来源:
TheQuestion:有没有办法使用的方式GL_TEXTURE_2D与texelFetch或纹理着色器执行时只是直接读取的像素?
检查1.30规格,第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)
Run Code Online (Sandbox Code Playgroud)
你需要第三个参数.