ARB汇编到GLSL

时间:2017-06-19 15:03:51

标签: opengl glsl

我有一个使用ARB程序集着色器的NVidia示例:

!!ARBfp1.0
TEX result.color, fragment.texcoord, texture[0], RECT;
END

现在我想将其转换为GLSL着色器。这就是我提出的:

uniform sampler2D tex;

void main(void)
{
  vec4 col = texture2D ( tex, gl_TexCoord[0] );
  gl_FragColor = vec4(col.r, col.g, col.b, col.a);
}

我希望看到渲染渲染没有变化,但遗憾的是我只能得到黑色纹理。

我已经确定tex采样器设置正确。我的GLSL代码也编译没有错误。为了进行调试,我尝试使着色器更简单:

void main(void)
{
  gl_FragColor = vec4(1,0,0,1);
}

这给了我一个红色的纹理。因此我的基本设置似乎没问题。

1 个答案:

答案 0 :(得分:1)

注意TEX的第4个参数。它显示RECT,因此采样器需要sampler2DRect类型。

uniform sampler2DRect tex;

void main(void) {
  gl_FragColor = texture2DRect(tex, gl_TexCoord[0]);
}