我同意@timday的观点,你应该偏向于调查一些“实际”的东西,正如你在评论中建议的那样,你可能想让故事围绕着在桌面应用程序和基于浏览器的应用程序之间进行决策。
这正是我现在正在开发的。我的客户有一个可视化应用程序,目前在Windows桌面上运行。对于他们来说,典型的场景有500,000个三角形,大量的纹理和透明度。目前,他们的用户不愿安装查看器 - 他们倾向于在企业环境中工作,在这种环境中系统管理员控制着计算机上安装的内容。而且,有几个用户更喜欢在他们的iPad上运行可视化效果,但是查看器在那里无法运行。因此,我的客户想知道WebGL是否可以解决他们的平台问题 - 不管任何浏览器都没有正式支持WebGL,并且IE和iPad都没有宣布任何支持。
请注意,任何基准测试都相对无意义,因为您正在测量一个移动目标。浏览器制造商正在努力实现WebGL,并且他们经常更新其测试版发布。他们不仅要致力于符合WebGL标准的实现,还必须担心浏览器安全问题和整体流程。
这个视频讨论了一些问题(并给你提供了一个参考)。此外,性能可能会因您的操作系统和图形硬件而异。
正如您所指出的,一旦WebGL在图形硬件中运行,它应该像桌面应用程序一样快。您的基准测试应该尝试确认这一点,然后您应该尝试测量由于在浏览器中而导致的性能损失的位置。我认为JavaScript本身不是瓶颈,只是因为要执行的JavaScript不是很多(而且这些天它非常快)。然而,正如上述视频末尾所描述的那样,JavaScript-C ++绑定,请求验证,流程控制等可能会导致低效率。另一方面,浏览器制造商(至少是Google)正在努力解决这些问题。
我注意到的问题不是帧速率/性能问题(在我的当前测试中,我可以以30fps渲染500,000个纹理三角形),而是帧速率似乎不太一致,有时会出现帧丢失。我怀疑这可能与相对简单的使用Javascript运行动画的
setInterval()
方式有关。(Mozilla的mozRequestAnimationFrame可能是更好地处理这个问题的方法)。
虽然我不知道以上内容对你的论文有多大帮助,但在我看来,你有一个丰富的主题,应该做更多的比较测试。也许你应该从一些基准测试开始,比较浏览器和桌面性能,然后尝试检查决定使用浏览器还是桌面以及编写WebGL应用程序的最佳实践。
此外,还有很多WebGL框架可供选择。我尝试了几个,非常印象深刻——从中可以学到很多东西。根据你的兴趣和论文要求,你可能也会对对这些进行基准测试感兴趣。
无论你走哪条路,我都认为有一个庞大的潜在WebGL用户群体将渴望获取你即将研究的信息。