Start · Sprachen · JavaScript · Referenz · OES_texture_half_float extension

OES_texture_half_float extension

Schnittstelle

WebGL-1-Erweiterung, die Texturen mit 16-Bit-Gleitkomma-Komponenten (Half Float) über den Typ <code>HALF_FLOAT_OES</code> ermöglicht.

seit JavaScript WebGL 1.0 – Baseline: alle gängigen Browser (nur i Kategorie: webapi

Signatur

interface OES_texture_half_float

Beschreibung

OES_texture_half_float ist eine Erweiterung der WebGL-API. Mit ihr lassen sich in einem WebGLRenderingContext Texturen anlegen, deren Komponenten als 16-Bit-Gleitkommazahlen (IEEE 754 binary16) gespeichert werden. Die Erweiterung stellt genau eine Konstante bereit: HALF_FLOAT_OES (0x8D61). Sie wird als type-Argument an texImage2D() und texSubImage2D() übergeben. Erlaubte Formate sind RGBA, RGB, LUMINANCE, LUMINANCE_ALPHA und ALPHA. Für 32-Bit-Gleitkommatexturen gibt es die eigene Erweiterung OES_texture_float.

Half-Float-Texturen setzt man ein, wenn Werte außerhalb von 0–1 oder genauer als mit 8 Bit gespeichert werden müssen. Typische Anwendungen sind HDR-Rendering mit Tone-Mapping, Bloom, Partikel- und Fluidsimulationen auf der GPU, Höhenkarten und allgemeine GPGPU-Berechnungen. Im Vergleich zu 32-Bit-Floats brauchen sie nur halb so viel Speicher und Bandbreite, und Mobilgeräte unterstützen sie deutlich häufiger. Der Wertebereich reicht bis etwa ±65504, die Genauigkeit liegt bei ungefähr 3 Dezimalstellen (10 Bit Mantisse).

Das Erweiterungsobjekt erhält man mit gl.getExtension("OES_texture_half_float"). Zurück kommt das Objekt oder null, wenn die Erweiterung nicht verfügbar ist. Die Funktion ist erst nach diesem Aufruf im Kontext aktiv. In WebGL 2 gibt es die Erweiterung nicht: Half-Float-Texturen gehören dort zum Kern und nutzen gl.HALF_FLOAT (0x140B, also ein anderer Wert) zusammen mit Größenformaten wie gl.RGBA16F.

Die Erweiterung erlaubt nur das Speichern und Abtasten mit NEAREST-Filterung. Für lineare Filterung braucht man zusätzlich OES_texture_half_float_linear. Wer in solche Texturen rendern will, braucht EXT_color_buffer_half_float.

Parameter

Name Typ Default Beschreibung
$name Pflicht string Argument von gl.getExtension(). Muss exakt "OES_texture_half_float" lauten, damit die Erweiterung aktiviert wird.

Rückgabewert

Typ
OES_texture_half_float | null
Beschreibung
Das Erweiterungsobjekt mit der Konstante HALF_FLOAT_OES (0x8D61) oder null, wenn der Browser bzw. die GPU die Erweiterung nicht unterstützt oder ein WebGL-2-Kontext vorliegt.