我已经定义我的游戏速度非常慢,在旧的移动设备(三星Galaxy S4,IPhone 5)上启用了阴影。当我关闭阴影时,它会大大提高性能。
有没有人知道如何检测慢速GPU以在慢速设备上完全关闭阴影或如何提高阴影性能?
我尝试在灯光上使用不同的shadow.mapSize
,在渲染器上使用shadowMap.type
并且它不会提高性能。
一些细节:
我使用渲染大小为1700x667的PerspectiveCamera
和WebGLRenderer
。
二手灯:new THREE.AmbientLight(0xffffff, 0.7)
和new THREE.SpotLight(0xffffff, 0.4, 4000, 100)
使用过的材料:MeshPhongMaterial
答案 0 :(得分:2)
选项
正如安德烈所指出的做一个基准
在创建WebGL上下文时尝试使用failIfMajorPerformanceCaveat: true
。
Make a fingerprint。查询与GPU限制相关的所有各种gl.getParameter
统计信息并创建指纹。看看是否有某些指纹=慢。
尝试获取并使用WEBGL_debug_renderer_info扩展名未屏蔽的渲染器/供应商字符串(这实际上只是#3的更多数据)。
与大多数PC游戏一样,有一个选项屏幕,让用户可以选择使用哪些图形功能。
答案 1 :(得分:0)
可能,你可以在开始游戏之前使用gpu基准测试进行第一次运行,或者通过检查一些webgl属性 - 取决于你如何实现阴影。它的自定义或默认的三个着色器?