我使用OES_texture_float纹理在WebGL中创建了延迟着色渲染器来存储G缓冲区数据。
此功能在PC浏览器中显然有效(Chrome,Firefox,Safari,Edge ...) 但是,这个G缓冲区似乎无法在移动浏览器中运行。
我试图找出原因,但我无法做到。这就是我调试它的方法。
我当然是这样做的。我确保我的调试设备支持OES_texture_float。 我尝试了getExtension,并且该方法没有返回undefined。
我还检查了网站以检查WebGL扩展兼容性(http://renderingpipeline.com/webgl-extension-viewer/)。
我无法为移动浏览器执行此操作。但是,在PC中的Chrome中,readPixels读取浮动值纹理的工作正常。
我猜即使支持OES_texture_float,也无法确保对这些类型的纹理的readPixels工作。
我知道这很难回答,但我无法在此处粘贴代码,因为这些代码非常庞大。现在我猜OES_texture_float只支持从像texture2D(floatingTexture,uv)
这样的纹理中获取纹理值,而不是确保用于渲染纹理本身。
我想要任何调试建议。并且,如果您知道任何使用浮动值纹理的样本并在移动设备上工作,请粘贴网址。我想检查它。
答案 0 :(得分:2)
您是否检查过可以渲染到浮点纹理?我不认为你可以在移动中使用。
在创建附加浮点纹理的帧缓冲区后,您是否正在调用gl.checkFramebufferStatus
并检查结果是否为gl.FRAMEBUFFER_COMPLETE
?如果它没有完成,则硬件不支持渲染到浮点纹理。