OES_texture_float-Erweiterung
Baseline
Weitgehend verfügbar
Diese Funktion ist gut etabliert und funktioniert auf vielen Geräten und in vielen Browserversionen. Sie ist seit Juli 2015 browserübergreifend verfügbar.
Die OES_texture_float-Erweiterung ist Teil der WebGL-API und stellt Gleitkomma-Pixeltypen für Texturen bereit.
WebGL-Erweiterungen sind über die Methode WebGLRenderingContext.getExtension() verfügbar. Weitere Informationen finden Sie unter Erweiterungen verwenden im WebGL-Tutorial.
Hinweis:
Diese Erweiterung ist nur für WebGL1-Kontexte verfügbar. In WebGL2 sind Gleitkomma-Texturformate und der Texturdatentyp gl.FLOAT standardmäßig verfügbar (dabei müssen Sie ein internes Format mit festgelegter Größe wie gl.RGBA32F verwenden).
In WebGL 2 benötigen Sie weiterhin Erweiterungen, damit eine Gleitkomma-Textur als Farbpuffer gerendert werden kann: Verwenden Sie die Erweiterung EXT_color_buffer_float für Gleitkomma-Farbpuffer oder EXT_color_buffer_half_float, wenn 16-Bit-Gleitkomma-Renderziele unterstützt werden, 32-Bit-Gleitkomma-Renderziele jedoch nicht.
Erweiterte Methoden
Diese Erweiterung erweitert WebGLRenderingContext.texImage2D() und WebGLRenderingContext.texSubImage2D():
- Der Parameter
typeakzeptiert nungl.FLOAT. - Der Parameter
pixelsakzeptiert nun einFloat32Array.
Einschränkung: Lineare Filterung
Diese Erweiterung erlaubt keine lineare Filterung von Gleitkomma-Texturen. Wenn Sie bei Verwendung von Gleitkomma-Texturen den Vergrößerungs- oder Verkleinerungsfilter mit der Methode WebGLRenderingContext.texParameter() auf gl.LINEAR, gl.LINEAR_MIPMAP_NEAREST, gl.NEAREST_MIPMAP_LINEAR oder gl.LINEAR_MIPMAP_LINEAR setzen, wird die Textur als unvollständig markiert.
Um Gleitkomma-Texturen linear zu filtern, aktivieren Sie zusätzlich zu dieser Erweiterung die Erweiterung OES_texture_float_linear.
Gleitkomma-Farbpuffer
In WebGL 1 aktiviert diese Erweiterung implizit die Erweiterung WEBGL_color_buffer_float (sofern unterstützt), die das Rendern in 32-Bit-Gleitkomma-Farbpuffer ermöglicht.
Verwenden Sie in WebGL 2 stattdessen die Erweiterung EXT_color_buffer_float für Gleitkomma-Farbpuffer.
Beispiele
const ext = gl.getExtension("OES_texture_float");
const texture = gl.createTexture();
gl.bindTexture(gl.TEXTURE_2D, texture);
gl.texImage2D(gl.TEXTURE_2D, 0, gl.RGBA, gl.RGBA, gl.FLOAT, image);
Spezifikationen
| Spezifikation |
|---|
| WebGL OES_texture_float Khronos Ratified Extension Specification> |