내 프로젝트에는 그래픽 객체가 반복적으로 그려지는 HTML5 캔버스가 있습니다. 이러한 개체는 빠르게 변합니다. 그리기에는 시간이 필요합니다. 어떻게하면 더 빨리 만들 수 있습니까?HTML5 Canvas : 개체를 다시 그리거나 비트 맵을 사용하는 것이 좋습니다.
개체는 지나치게 복잡하지는 않지만 호, 그라디언트, 다각형 등의 개체가 포함되어 있습니다.
개체의 모양은 각각 약 10 개의 값 중 하나를 갖는 약 10 개의 속성에 따라 다릅니다. 즉, 물체가 가질 수있는 것보다 약 100 가지의 다른 모습이 있음을 의미합니다. 그래서 각 모양을 한 번 그리면 비트 맵을 다시 캐싱하여 재사용 할 생각입니다.
모든
- 것은 무엇 HTML5 캔버스와 함께이 작업을 수행하는 가장 좋은 방법이 될 것이다 (나는 준비가 만든 이미지를 사용할 수 없습니다 즉) 클라이언트에서 작업을해야합니까?
- 매번 오브젝트를 다시 그리는 것보다 비트 맵 작업의 오버 헤드가 크지 않습니까?
필자는 데모를 시험해 보았고 Firefox7에서는 win7에서 캐싱과 비 캐싱의 차이점을 많이 볼 수 없었다. "객체"(폴리곤/그라디언트)를 그리면 캐싱이 훨씬 빨라지므로 캐싱을 사용하는 것에 동의합니다. 새로운 브라우저의 렌더링 API 지원 덕분에 캐싱이 훨씬 빨라지는 이유는 무엇입니까 – Niko
또한이 기사는 캔버스 성능에 대한 팁으로 굉장합니다. http://www.html5rocks.com/en/tutorials/canvas/performance/ –
@Niko 데모를 꽤 오래 전으로 업데이트해야합니다. 화면에 몇 백 개를 더 추가하면 성능이 크게 향상됩니다. – Loktar