Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript WebGL基准测试-我应该创建什么样的测试?_Javascript_Opengl_Opengl Es_Benchmarking_Webgl - Fatal编程技术网

Javascript WebGL基准测试-我应该创建什么样的测试?

Javascript WebGL基准测试-我应该创建什么样的测试?,javascript,opengl,opengl-es,benchmarking,webgl,Javascript,Opengl,Opengl Es,Benchmarking,Webgl,(我不确定这是否应该打开,如果您认为应该,请评论) 我将为我的学士学位论文创建一个WebGL实现的基准。我不确定我应该创建什么样的测试,我是否应该只测量每秒的帧数,如果我可以得到一些其他有用的数据来进行基准测试 目前我只想到这样的测试: 1单色物体 1多色物体 1纹理对象 1具有混合的纹理对象 1带有闪电的纹理对象 1个具有多个照明点的纹理对象 1场景渲染为纹理并在另一个对象上使用 1模型动画 具有更多对象的所有测试:50、500、5000 每次渲染更改着色器/程序(一次、两次、多次) 这将

(我不确定这是否应该打开,如果您认为应该,请评论)

我将为我的学士学位论文创建一个WebGL实现的基准。我不确定我应该创建什么样的测试,我是否应该只测量每秒的帧数,如果我可以得到一些其他有用的数据来进行基准测试

目前我只想到这样的测试:

  • 1单色物体
  • 1多色物体
  • 1纹理对象
  • 1具有混合的纹理对象
  • 1带有闪电的纹理对象
  • 1个具有多个照明点的纹理对象
  • 1场景渲染为纹理并在另一个对象上使用
  • 1模型动画
  • 具有更多对象的所有测试:50、500、5000
  • 每次渲染更改着色器/程序(一次、两次、多次)
这将导致40个不同的测试,但我不确定这些是否是性能的重要测试

一位朋友建议在复杂着色器上进行测试,但由于着色器在图形硬件上运行,因此与java桌面应用程序应该没有区别,对吗

无论如何,我的感觉是,JavaScript的性能是WebGL的主要瓶颈

更新


我终于做了测试。在讨论了基准测试的工作方式后,我创建了以下内容:

您选择基准测试的内容应取决于您打算如何处理基准测试分数(或者分数的预期受众是谁以及他们打算如何处理);大概他们应该会影响某个决策——你应该从该决策开始,然后从该决策开始反向工作,以确定基准应该衡量什么


我想说,你提出的清单属于基准测试范围的“综合”端;对于使用探查器的WebGL/浏览器实现者来说,它们似乎比那些试图在WebGL实现/平台之间进行选择以决定哪种应用最适合运行的人更有用(c.f OpenGL基准测试的历史,过去人们一直声称每秒合成多边形的数字是各种各样的胡说八道,直到出现并强加了一些真实的测试用例)。

我同意@timday的观点,即你应该将调查偏向于“真实”的东西,正如您在评论中所建议的,您可能希望故事是关于在桌面应用程序还是基于浏览器的应用程序之间做出选择

这正是我现在正在做的。我的客户端有一个可视化应用程序,目前运行在Windows桌面上。他们的典型场景有500000个三角形、大量纹理和透明度。目前他们的用户不愿意安装查看器-他们倾向于在系统管理员控制的公司环境中工作rol他们的电脑上安装了什么。一些用户更喜欢在他们的iPad上运行可视化,而浏览者无论如何都不会运行。因此,我的客户想知道WebGL是否能解决他们的平台问题——尽管还没有浏览器正式支持WebGL,IE和iPad都没有宣布任何形式的支持港口

请记住,您所做的任何基准测试都是相对没有意义的,因为您正在衡量一个移动的目标。浏览器制造商正在努力实现WebGL,并且他们正在频繁更新其测试版。他们不仅致力于符合要求地实现WebGL,而且还必须担心浏览器安全问题和总体安全问题管道流。讨论一些问题(并让您知道应该研究什么)。此外,性能可能因您的操作系统和图形硬件而异

正如您所指出的,一旦WebGL在图形硬件中运行,它的运行速度应该与桌面应用程序一样快。您的基准测试应该尝试确认这一点,然后您应该尝试测量由于在浏览器中而导致的性能损失。我的感觉是,Javascript本身并不是瓶颈,只是因为没有太多的Ja但是,正如前面视频结尾所描述的,Javascript-C++绑定、请求验证、流控制等方面可能会出现效率低下的问题。另一方面,浏览器制造商(至少谷歌)正在努力解决这些问题

我注意到的一点不是帧速率/性能问题(在我当前的测试中,我可以以30fps的速度渲染500000个纹理三角形),而是帧速率似乎不太一致,而且帧似乎会不时被删除。我怀疑,但不知道这是否与相对简单的
setInterval有关()
使用Javascript运行动画的方式(Mozilla的mozRequestAnimationFrame可能是更好的处理方式)

虽然我不知道上面的内容对你的论文有多大帮助,但在我看来,你的主题很丰富,你应该做的不仅仅是编造简单的基准测试。也许你应该从一些基准测试开始,比较浏览器和桌面的性能,然后试着研究最佳实践,不仅是在决定浏览器和桌面之间,而且还包括也用于编写WebGL应用程序

还有很多WebGL框架。我尝试了一些,给我留下了深刻的印象——从中可以学到很多东西。根据您的兴趣和论文要求,您可能也对这些框架的基准测试感兴趣


无论你走哪条路,我怀疑有一大群潜在的WebGL使用者,他们会渴望你将要研究的信息。

我不经常访问这个网站,所以我觉得读你的问题有点可笑,因为我也在写关于这个主题的文章。一个月前我在想关于同样的问题,他决定不再对不同的网站进行基准测试