Я пытаюсь отправить некоторые 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 или я что-то упустил?