(这个问题不是针对three.js的,但我会用它作为例子)
我最近一直在使用three.js开发一个Web应用程序界面,并在WebGL和Canvas渲染器(用于桌面浏览器)之间编写了一些不错的回退。
但现在问题变成了如何正确检测设备功能,问题有两个方面:
一个值得注意的例子:Firefox mobile / Opera mobile声称支持WebGL,但是设备硬件有问题或受到限制。
到目前为止,我提出了一些解决方法:
或许它不一定很难,还有其他建议吗?
答案 0 :(得分:14)
我最终在一个项目中使用了性能测量方法,我们希望利用高规格CPU / GPU桌面上提供的画布功能,以及桌面和手机等低速设备。
基本上我们从最小的场景复杂度开始,如果renderloop花费的时间少于33ms,我们就会增加复杂性(如果renderloop以后开始花费太长时间,我们也会降低复杂性。)
我想在您的情况下,您可能需要运行快速画布和webgl性能测试,然后选择一个。花了一些时间研究这个,我没有遇到一些棘手的非显而易见的技术,可以更好地解决这个问题。
答案 1 :(得分:0)
您可以使用http://webglstats.com/进行WebGL硬件支持和功能检测。
答案 2 :(得分:0)
如果您使用three.js,您可以使用detector.js来查明是否启用了webgl。也远离canvasrenderer将有所帮助。使用webglrenderer或softwarerender。因为它们允许更多顶点。 softwarerender相当新,需要一些工作但可以使用。