我正在尝试将一些 32 位浮点数据发送到着色器,但结果不稳定。如果我用全白 (1,1,1,1) 进行测试,则这些值都为零。这是我创建纹理的代码:
gl.glTexImage2D(GL.GL_TEXTURE_2D, 0, GL.GL_RGBA32F_ARB, 512, 512, 0, GL.GL_RGBA, GL.GL_FLOAT, data);
并在 GLSL 中读取它:
uniform sampler2D u_tex1;
varying vec2 v_uv;
void main()
{
gl_FragColor = texture2D(u_tex1, v_uv);
}
如果我将纹理设置为随机值,则会出现一些东西,但这是不正确的。这是从 RGBA32F 纹理读取的正确方法还是我遗漏了什么?