EXT_texture_norm16 擴充套件

可用性有限

此特性不是基線特性,因為它在一些最廣泛使用的瀏覽器中不起作用。

EXT_texture_norm16 擴充套件是 WebGL API 的一部分,它提供了一組新的 16 位有符號歸一化和無符號歸一化格式(定點紋理、渲染緩衝區和紋理緩衝區)。

啟用此擴充套件時

可以使用 WebGLRenderingContext.getExtension() 方法來訪問 WebGL 擴充套件。有關更多資訊,請參閱 WebGL 教程中的 使用擴充套件

注意:此擴充套件僅對 WebGL 2 上下文可用。

常量

ext.R16_EXT

紅色 16 位無符號格式。顏色可渲染。

ext.RG16_EXT

RG 16 位無符號格式。顏色可渲染。

ext.RGB16_EXT

RGB 16 位無符號格式。

ext.RGBA16_EXT

RGBA 16 位無符號格式。顏色可渲染。

ext.R16_SNORM_EXT

紅色 16 位有符號歸一化格式。

ext.RG16_SNORM_EXT

RG 16 位有符號歸一化格式。

ext.RGB16_SNORM_EXT

RGB 16 位有符號歸一化格式。

ext.RGBA16_SNORM_EXT

RGBA 16 位有符號歸一化格式。

示例

啟用擴充套件

js
let ext = gl.getExtension("EXT_texture_norm16");

紋理格式

啟用 EXT_texture_norm16 後,WebGLRenderingContext.texImage2D() 方法將接受新格式。示例呼叫

js
// imageData = Uint16Array
gl.texImage2D(gl.TEXTURE_2D, 0, ext.R16_EXT, 1, 1, 0, gl.RED, gl.UNSIGNED_SHORT, imageData);
gl.texImage2D(gl.TEXTURE_2D, 0, ext.RG16_EXT, 1, 1, 0, gl.RG, gl.UNSIGNED_SHORT, imageData);
gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGB16_EXT, 1, 1, 0, gl.RGB, gl.UNSIGNED_SHORT, imageData);
gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGBA16_EXT, 1, 1, 0, gl.RGBA, gl.UNSIGNED_SHORT, imageData);

// imageData = Int16Array
gl.texImage2D(gl.TEXTURE_2D, 0, ext.R16_SNORM_EXT, 1, 1, 0, gl.RED, gl.SHORT, imageData);
gl.texImage2D(gl.TEXTURE_2D, 0, ext.RG16_SNORM_EXT, 1, 1, 0, gl.RG, gl.SHORT, imageData);
gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGB16_SNORM_EXT, 1, 1, 0, gl.RGB, gl.SHORT, imageData);
gl.texImage2D(gl.TEXTURE_2D, 0, ext.RGBA16_SNORM_EXT, 1, 1, 0, gl.RGBA, gl.SHORT, imageData);

渲染緩衝區格式

WebGLRenderingContext.renderbufferStorage() 方法接受 ext.R16_EXText.RG16_EXText.RGBA16_EXT 作為內部格式,以這些格式建立渲染緩衝區。示例呼叫

js
gl.renderbufferStorage(gl.RENDERBUFFER, ext.R16_EXT, 1, 1);
gl.renderbufferStorage(gl.RENDERBUFFER, ext.RG16_EXT, 1, 1);
gl.renderbufferStorage(gl.RENDERBUFFER, ext.RGBA16_EXT, 1, 1);

規範

規範
WebGL EXT_texture_norm16 擴充套件規範

瀏覽器相容性

另見