Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

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

Spezifikation
WebGL EXT_texture_norm16 Extension Specification

Browser-Kompatibilität

Siehe auch