0

我正在开发一个可以在这里找到的网站。

简而言之,这是一个在 webgl 片段着色器中执行的流体动力学求解器。结果被映射到带纹理的四边形并在画布上渲染。

在本周末进行一些开发工作时,我注意到页面的低和中分辨率版本不再在 Chrome 上运行(请参阅右上角的链接)。但是,如果您在 Firefox 中打开该页面,一切都会按预期进行。请注意,除非您启用了 webgl,否则此页面预计无法在 mac 上运行,它在 IE 中不起作用,而且我还没有使用 opera 对其进行测试。

其他一些奇怪的症状:

  • 除非窗口是全屏的,否则鼠标位置到画布位置的映射现在在 chrome 中是错误的。
  • 低质量和中等质量版本似乎只显示纹理右下角的一小部分。

    • 要在低/中观察这一点,请单击“分析”选项卡,然后在低和高之间快速更改速度滑块。在高模式下试试这个,看看有什么不同。
  • 上周末,我的机器上 chrome 的帧速率是 60fps,现在即使在高质量的情况下也是 30fps。Firefox 获得稳定的 60fps

低、中、高实现之间唯一真正的区别是纹理分辨率,分别为 256x32、512x64、1024x128。

任何人都可以阐明发生了什么吗?

4

1 回答 1

1

我不确定这是否是问题所在,但根据模拟(以及我看到的损坏伪影),您似乎可能正在使用浮点纹理来存储/渲染模拟状态。Chrome 有一个最近的更改,修复了过滤浮点纹理如何暴露的错误,并且需要更改一些代码。你可以在这里读到它:

重要提示:您的 WebGL 浮点纹理使用需要修复!!!!

于 2013-08-25T19:36:02.657 回答