EXT_texture_norm16 擴充套件
EXT_texture_norm16 擴充套件是 WebGL API 的一部分,它提供了一組新的 16 位有符號歸一化和無符號歸一化格式(定點紋理、渲染緩衝區和紋理緩衝區)。
啟用此擴充套件時
WebGLRenderingContext.texImage2D()和WebGLRenderingContext.texSubImage2D()方法將接受此擴充套件提供的新格式。- 16 位歸一化定點型別
ext.R16_EXT、ext.RG16_EXT和ext.RGBA16_EXT將可用作顏色可渲染格式,並且渲染緩衝區可以以這些格式建立。
可以使用 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_EXT、ext.RG16_EXT 和 ext.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 擴充套件規範 |
瀏覽器相容性
載入中…