Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

WebGL extension support across browsers

This may be something as simple as a dumb setting that I have in Chrome or Firefox, but I just don't know where to go to figure out if it is that or if it's something else.

The basic thing I am trying to figure out is why extension support is so different between browsers.

For example, going to http://prideout.net/recipes/ExtensionViewer.html

For FireFox I get

OES_texture_float (google) (registry)
OES_standard_derivatives (google) (registry)
EXT_texture_filter_anisotropic (google) (registry)
MOZ_WEBGL_lose_context (google) (registry)
WEBGL_lose_context (google) (registry)
MOZ_WEBGL_compressed_texture_s3tc (google) (registry)
WEBGL_compressed_texture_s3tc (google) (registry)

But in Chrome I get:

OES_standard_derivatives (google) (registry)
WEBKIT_EXT_texture_filter_anisotropic (google) (registry)
OES_vertex_array_object (google) (registry)
OES_element_index_uint (google) (registry)
WEBGL_lose_context (google) (registry)

Note the missing OES_texture_float

I have noticed at some point that I do (or did) seem to have a AMD related floating point extension, but I don't know what page showed me I have that. I have a feeling that whatever showed it was an old version of Chrome.

I know my card supports floating point textures (at least to some degree), and whenever I go to pages requiring floating point textures in Firefox, the demo works beautifully.

If there's anything I'm trying to figure out, it's what I have to do to get the floating point textures to work in Chrome on my machine. Some of the coolest things you can do with WebGL require use of the floating point texture extension.

What bugs me is, supposedly, both Firefox and Chrome use ANGLE, so wouldn't both support the same extensions?

like image 337
JayC Avatar asked Jul 04 '13 18:07

JayC


Video Answer


1 Answers

Read from the WebGL best practices page at MDN:

  • Rendering to a floating-point texture may not be supported, even if the OES_texture_float extension is supported. Typically, this fails on current mobile hardware. To check if this is supported, you have to call the WebGL checkFramebufferStatus() function.

That's a hardware issue, it should work at least on modern dedicated graphic cards but you would need some workarounds or fall-back for 'weaker' devices such as tablets and phones.

like image 168
havarc Avatar answered Oct 01 '22 12:10

havarc