0

I've define that my games is extremely slow with enabled shadows on old mobile devices (Samsung galaxy S4, IPhone 5). When I turn off shadows it's improving performance greatly.

Does any one know how to detect slow GPU to turn off shadows completely on slow devices or how to improve shadow performance?

I've try to use diferrent shadow.mapSize on lights and shadowMap.type on renderer and it dosen't improve performance.

Some details:

I use PerspectiveCamera and WebGLRenderer with render size 1700x667.
Used lights: new THREE.AmbientLight(0xffffff, 0.7) and new THREE.SpotLight(0xffffff, 0.4, 4000, 100)
Used materials: MeshPhongMaterial

Andrii Tsarenko
  • 655
  • 7
  • 21

1 Answers1

3

Options

  1. As Andrey pointed out do a benchmark

  2. Try using failIfMajorPerformanceCaveat: true when creating the WebGL context.

  3. Make a fingerprint. Query all the various gl.getParameter stats related to GPU limits and create a fingerprint. See if there are certain fingerprints that = slow.

  4. Try getting and using the WEBGL_debug_renderer_info extension unmasked renderer/vendor strings (this is really just more data for #3).

  5. Like most PC games, have an options screen that let's users choose which graphics features to use.

gman
  • 100,619
  • 31
  • 269
  • 393