如何使用three.js检测移动设备上的慢速GPU?

时间:2017-11-23 09:52:25

标签: javascript performance three.js webgl gpu

我已经定义我的游戏速度非常慢,在旧的移动设备(三星Galaxy S4,IPhone 5)上启用了阴影。当我关闭阴影时,它会大大提高性能。

有没有人知道如何检测慢速GPU以在慢速设备上完全关闭阴影或如何提高阴影性能?

我尝试在灯光上使用不同的shadow.mapSize,在渲染器上使用shadowMap.type并且它不会提高性能。

一些细节:

我使用渲染大小为1700x667的PerspectiveCameraWebGLRenderer
二手灯:new THREE.AmbientLight(0xffffff, 0.7)new THREE.SpotLight(0xffffff, 0.4, 4000, 100)
使用过的材料:MeshPhongMaterial

2 个答案:

答案 0 :(得分:2)

选项

  1. 正如安德烈所指出的做一个基准

  2. 在创建WebGL上下文时尝试使用failIfMajorPerformanceCaveat: true

  3. Make a fingerprint。查询与GPU限制相关的所有各种gl.getParameter统计信息并创建指纹。看看是否有某些指纹=慢。

  4. 尝试获取并使用WEBGL_debug_renderer_info扩展名未屏蔽的渲染器/供应商字符串(这实际上只是#3的更多数据)。

  5. 与大多数PC游戏一样,有一个选项屏幕,让用户可以选择使用哪些图形功能。

答案 1 :(得分:0)

可能,你可以在开始游戏之前使用gpu基准测试进行第一次运行,或者通过检查一些webgl属性 - 取决于你如何实现阴影。它的自定义或默认的三个着色器?

http://webglstats.com/webgl2/parameter/