我可以在 webgl2 的单通道中存储带符号的 16 位值吗?

Can I store signed 16bit value in single channel in webgl2?

有没有办法在单通道内存储带符号的 16 位值?

我正在尝试将其存储在红色通道中,如下所示:

  gl.texImage2D(gl.TEXTURE_2D, 0, gl.R16I, width, height, 0, gl.RED, gl.SHORT, image);

但它导致错误:

[.WebGL-000022F401016900] GL_INVALID_OPERATION: Invalid combination of format, type and internalFormat.

对于整数数据,格式参数必须是 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);