EXT_texture_norm16 Erweiterung

Limited availability

This feature is not Baseline because it does not work in some of the most widely-used browsers.

Die EXT_texture_norm16 Erweiterung ist Teil der WebGL API und bietet eine Reihe neuer 16-Bit-signierter und unsignierter normierter Formate (Fixed-Point-Textur, Renderbuffer und Texture-Buffer).

Wenn diese Erweiterung aktiviert ist:

  • Die Methoden WebGLRenderingContext.texImage2D() und WebGLRenderingContext.texSubImage2D() akzeptieren neue Formate, die von dieser Erweiterung bereitgestellt werden.
  • Die 16-Bit-normierten Fixed-Point-Typen ext.R16_EXT, ext.RG16_EXT und ext.RGBA16_EXT sind als farbrenderbare Formate verfügbar, und Renderbuffer können in diesen Formaten erstellt werden.

WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar. Weitere Informationen finden Sie unter Verwendung von Erweiterungen im WebGL-Tutorial.

Hinweis: Diese Erweiterung ist nur für WebGL 2 Kontexte verfügbar.

Konstanten

ext.R16_EXT

Red 16-Bit unsigniertes Format. Farbrenderbar.

ext.RG16_EXT

RG 16-Bit unsigniertes Format. Farbrenderbar.

ext.RGB16_EXT

RGB 16-Bit unsigniertes Format.

ext.RGBA16_EXT

RGBA 16-Bit unsigniertes Format. Farbrenderbar.

ext.R16_SNORM_EXT

Red 16-Bit signiertes normiertes Format.

ext.RG16_SNORM_EXT

RG 16-Bit signiertes normiertes Format.

ext.RGB16_SNORM_EXT

RGB 16-Bit signiertes normiertes Format.

ext.RGBA16_SNORM_EXT

RGBA 16-Bit signiertes normiertes Format.

Beispiele

Aktivieren der Erweiterung

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

Texturformate

Die Methode WebGLRenderingContext.texImage2D() akzeptiert neue Formate, wenn EXT_texture_norm16 aktiviert ist. Beispielaufrufe:

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);

Renderbuffer-Formate

Die Methode WebGLRenderingContext.renderbufferStorage() akzeptiert ext.R16_EXT, ext.RG16_EXT und ext.RGBA16_EXT als interne Formate, um Renderbuffer in diesen Formaten zu erstellen. Beispielaufrufe:

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);

Spezifikationen

Specification
WebGL EXT_texture_norm16 Extension Specification

Browser-Kompatibilität

Report problems with this compatibility data on GitHub
desktopmobile
Chrome
Edge
Firefox
Opera
Safari
Chrome Android
Firefox for Android
Opera Android
Safari on iOS
Samsung Internet
WebView Android
WebView on iOS
EXT_texture_norm16

Legend

Tip: you can click/tap on a cell for more information.

Full support
Full support
No support
No support

Siehe auch