[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Public WebGL] rejecting WEBGL_color_buffer_float and EXT_color_buffer_half_float

On Wed, Apr 1, 2015 at 4:33 PM, Mark Callow <khronos@callow.im> wrote:
Note too that floating-point textures cannot be created in ES 3.x with unsized internal formats (i.e. format == internalformat && (type =  FLOAT || type == HALF_FLOAT)). This is because unsized internal formats are deprecated. Those included in ES 3.x are only there for compatibility with ES 2 and since FP textures were ES2 extensions, it was felt compatibility was not needed. This means the WebGL 1 extensions can’t be applied to WebGL 2.
Are we going to retire unsized format/internalformat parameters from WebGL2? I'd be sorta in favor of this, but it'd present a problem for backwards compatibility. Maybe have a canvas.getContext('webgl2-core') ? It's a deeper question than it appears on the surface. As we're going to progress trough standards, legacy cruft will accumulate (just like it accumulated in the underlying standards), and if we keep it for legacy reasons, we're essentially ending up with a "compatibility profile" where everything hangs around in forever.
For WebGL 2 FP color buffer functionality can be exposed with EXT_color_buffer_float and EXT_float_blend. There is no WebGL wrapper yet for the latter. I’ll be happy to draft one, if we are in agreement. Linear filtering of float32 textures can be exposed with OES_texture_float_linear.
I see a possible collision there with WebGL 1 and WebGL 2 extension naming (particularly as these extensions would functionally differ, see unsized vs. sized formats).