Is there a way to store signed 16bit value inside single channel?
Im trying to store it inside red channel like this:
gl.texImage2D(gl.TEXTURE_2D, 0, gl.R16I, width, height, 0, gl.RED, gl.SHORT, image);
but it results in error:
[.WebGL-000022F401016900] GL_INVALID_OPERATION: Invalid combination of format, type and internalFormat.
CodePudding user response:
For integral data the format argument must be gl.RED_INTEGER
:
gl.texImage2D(gl.TEXTURE_2D, 0, gl.R16I, width, height, 0, gl.RED, gl.SHORT, image);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.R16I, width, height, 0, gl.RED_INTEGER, gl.SHORT, image);