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()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
| Specification |
|---|
| WebGL EXT_texture_norm16 Extension Specification> |
Browser-Kompatibilität
Loading…