2017-11-23 14 views
0

예전 모바일 장치 (삼성 갤럭시 S4, 아이폰 5)에서 그림자가 활성화되어 게임이 너무 느리다 고 정의했습니다. 그림자를 끄면 성능이 크게 향상됩니다.
저속 장치에서 느린 GPU를 감지하여 그림자를 완전히 끄는 방법이나 그림자 성능을 향상시키는 방법을 알고 있습니까?
three.js가 포함 된 모바일 장치에서 느린 GPU를 감지하는 방법은 무엇입니까?

나는 렌더러에 조명에 diferrent shadow.mapSizeshadowMap.type를 사용하려고했는데 그것은 성능을 향상 나던.

일부 세부 정보 :

나는 PerspectiveCamera 및 크기 1700x667 렌더링과 WebGLRenderer 사용합니다.
사용 된 조명 : new THREE.AmbientLight(0xffffff, 0.7)new THREE.SpotLight(0xffffff, 0.4, 4000, 100)
사용 재료 : MeshPhongMaterial

답변

0
아마도

, 첫 번째 실행 또는 일부 WebGL이 등록 정보를 확인하여 시작 게임을하기 전에 GPU 벤치 마크를 사용할 수는 - 어떻게 당신이 당신의 그림자를 구현에서 달려있다 . 그것은 사용자 정의 또는 기본 3js 셰이더입니까? 안드레이는 지적

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

+0

당신은 몇 가지 소품/객체에 가짜 그림자로 교체 할 수 있습니다 - 평면 객체 – Andrey

+0

장면을 최적화하기위한 또 다른 방법에 알파 텍스처와 같은 동적 그림자와 객체의 양을 줄일 수있다 - 당신은 정적 오브젝트의 그림자를 '구워'필요 – Andrey

+0

또한 최적화를 위해 renderer.shadowMap.auto 및 renderer.shadowMap.needs 속성을 업데이트 할 수 있습니다. https://stackoverflow.com/questions/31275839/render-the-shadows-once-for-all – Andrey

2

옵션

  1. 는 벤치 마크

  2. 가 WebGL이 컨텍스트를 만들 때 failIfMajorPerformanceCaveat: true를 사용해보십시오 않습니다.

  3. Make a fingerprint. GPU 한도와 관련된 모든 다양한 gl.getParameter 통계를 쿼리하고 지문을 만듭니다. 특정 지문이 느린 지 확인하십시오.

  4. WEBGL_debug_renderer_info 확장되지 않은 렌더러/공급 업체 문자열 (실제로는 # 3에 대한 데이터)을 가져와 사용해보십시오.

  5. 대부분의 PC 게임처럼 사용자가 사용할 그래픽 기능을 선택할 수있는 옵션 화면이 있습니다.