EXT_texture_norm16 Erweiterung
Eingeschränkt verfügbar
Diese Funktion ist nicht Baseline, da sie in einigen der am weitesten verbreiteten Browser nicht funktioniert.
Want more support for this feature? Tell us why.
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()undWebGLRenderingContext.texSubImage2D()akzeptieren neue Formate, die von dieser Erweiterung bereitgestellt werden. - Die 16-Bit-normierten Fixed-Point-Typen
ext.R16_EXT,ext.RG16_EXTundext.RGBA16_EXTsind 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
let ext = gl.getExtension("EXT_texture_norm16");
Texturformate
Die Methode WebGLRenderingContext.texImage2D() akzeptiert neue Formate, wenn EXT_texture_norm16 aktiviert ist. Beispielaufrufe:
// 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:
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
| Spezifikation |
|---|
| WebGL EXT_texture_norm16 Extension Specification> |