跨浏览器的WebGL扩展支持

Jay*_*ayC 5 webgl webgl-extensions

这可能就像我在Chrome或Firefox中的愚蠢设置一样简单,但我不知道该去哪里弄清楚它是否是那个或者是否是别的东西.

我想弄清楚的基本问题是为什么浏览器之间的扩展支持是如此不同.

例如,转到http://prideout.net/recipes/ExtensionViewer.html

对于FireFox我得到了

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)
Run Code Online (Sandbox Code Playgroud)

但在Chrome中我得到:

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)
Run Code Online (Sandbox Code Playgroud)

注意缺少 OES_texture_float

我在某些方面注意到我做(或者确实)似乎有一个AMD相关的浮点扩展,但我不知道哪个页面显示我有这个.我有一种感觉,无论展示它是什么旧版本的Chrome.

我知道我的卡支持浮点纹理(至少在某种程度上),每当我去Firefox中需要浮点纹理的页面时,该演示工作得非常好.

如果有什么我想弄清楚的,那就是我要做的就是让浮点纹理在我的机器上的Chrome中运行.您可以使用WebGL执行的一些最酷的事情需要使用浮点纹理扩展.

据我所知,Firefox和Chrome都使用了ANGLE,所以不会同时支持相同的扩展吗?

hav*_*arc 3

请阅读MDN 上的WebGL 最佳实践页面

  • 即使支持 OES_texture_float 扩展,也可能不支持渲染为浮点纹理。通常,这在当前的移动硬件上会失败。要检查是否支持此功能,您必须调用 WebGL checkFramebufferStatus() 函数。

这是一个硬件问题,它至少应该在现代专用显卡上工作,但您需要一些解决方法或针对“较弱”设备(例如平板电脑和手机)的回退。