2012-07-30 5 views
2

requestAnimationFrame을 사용하여 애니메이션 webGL 장면을 그려주는 http://williame.github.com/Mandel_1 페이지가 있습니다. 이것은 generally recommended approach입니다.빡빡한 루프에서 webGL을 그릴 때 Chrome이 부적절하고 webGL을 그리지 않음

간혹 캔버스 옆의 div 요소를 업데이트합니다.

Firefox의 경우 주소 표시 줄에 초점을 맞추기가 어려울지라도이 방법이 유용합니다.

Chrome에서 div는 업데이트 되더라도 자주 다시 칠하지 않으며 Chrome 전체가 느려지고 응답하지 않을 수 있습니다. 나는 리눅스와 윈도우 모두에서 사람들의보고를 받는다.

또한 FPS I는 (이전 3 초 동안 몇 개의 프레임을 정기적으로 계산했는지) Chrome의 자체 디버그 FPS 카운터가 보여주는 FPS와 일치하지 않습니다. 불일치는 Chrome에서 다른 것을 측정하고 있는지 궁금하게 생각할만큼 충분합니까?

가능한 한 좋은 프레임 속도로 그림을 그리는 동안 Chrome 및 다른 브라우저가 응답하도록 그리기 루프를 구성하려면 어떻게해야합니까?

+0

Mac에서 문제가 나타나지 않습니다. Linux 및 Windows 만있는 경우 아직 Mac에서 사용하도록 설정되지 않은 일부 변경자와 관련된 것일 수 있습니다. 내가 about : flags로 가서 스레드 합성 (Win과 Linux에서 기본적으로 활성화되어 있다고 믿는다)을 사용하면 브라우저가 매우 느려지 게됩니다. ("div가 자주 다시 그려지지 않습니다"라고 평가하기는 어렵지만). 그것은 당신이 보는 것과 동일한 행동입니까? 이것은 버그 일 수 있습니다. http://crbug.com/new/에서 Chrome에 파일을 제출해야합니다. 다른 사람이 유사한 파일을 제출했는지 처음부터 검색 할 수 있습니다. –

답변

1

귀하의 앱에서 무슨 일이 일어나는지 잘 모르겠지만 div를 삽입 할 때마다 4 개의 쉐이더를 컴파일하고 연결하고 성공 여부를 확인하는 것처럼 보입니다. 컴파일 및 링크가 느립니다.

시작할 때 모든 프로그램을 컴파일하고 연결해보십시오.

반대로 컴파일 및 링크 상태가 100 % 확실하다면 컴파일 및 링크 상태를 확인하지 마십시오. 컴파일 및 링크 상태가 JavaScript에 비해 100 % 비동기가됩니다.

관련 문제