移动WebGL中的OES_texture_float

时间:2016-02-11 02:36:49

标签: opengl-es webgl opengl-es-2.0

我使用OES_texture_float纹理在WebGL中创建了延迟着色渲染器来存储G缓冲区数据。

此功能在PC浏览器中显然有效(Chrome,Firefox,Safari,Edge ...) 但是,这个G缓冲区似乎无法在移动浏览器中运行。

我试图找出原因,但我无法做到。这就是我调试它的方法。

  • 支持或不支持OES_texture_float。

我当然是这样做的。我确保我的调试设备支持OES_texture_float。 我尝试了getExtension,并且该方法没有返回undefined。

我还检查了网站以检查WebGL扩展兼容性(http://renderingpipeline.com/webgl-extension-viewer/)。

  • 我尝试使用readPixels
  • 获取浮动值纹理的像素

我无法为移动浏览器执行此操作。但是,在PC中的Chrome中,readPixels读取浮动值纹理的工作正常。

我猜即使支持OES_texture_float,也无法确保对这些类型的纹理的readPixels工作。

我知道这很难回答,但我无法在此处粘贴代码,因为这些代码非常庞大。现在我猜OES_texture_float只支持从像texture2D(floatingTexture,uv)这样的纹理中获取纹理值,而不是确保用于渲染纹理本身。

我想要任何调试建议。并且,如果您知道任何使用浮动值纹理的样本并在移动设备上工作,请粘贴网址。我想检查它。

1 个答案:

答案 0 :(得分:2)

您是否检查过可以渲染到浮点纹理?我不认为你可以在移动中使用。

在创建附加浮点纹理的帧缓冲区后,您是否正在调用gl.checkFramebufferStatus并检查结果是否为gl.FRAMEBUFFER_COMPLETE?如果它没有完成,则硬件不支持渲染到浮点纹理。