4

私はHTML5ゲームフレームワークの仕組みを見ていて、それが行う特定の最適化について疑問に思っていました。

フレームワークは、変更された可能性のある画面の「ダーティ」な領域を追跡します。エンティティがそのような領域と重なる場合、それは再描画されます。ただし、最初に、コンテキストはダーティエリアのみにクリップされます。

これは、単に画像全体を再描画するよりも高速ですか?エンティティがより複雑な一連のキャンバスコマンドを介してレンダリングされる場合はどうでしょうか。

e:もう少し考えてみると、パフォーマンスに関係なく、ゲームフレームワークのコンテキストでクリッピングが不可欠である理由があることに気付きました。でも、まだちょっと気になるので、そのまま質問を残しておきます。

4

1 に答える 1

0

一方で、ダーティ エリアと交差しないエンティティをレンダリングしないことで時間を節約できます。しかし、その反面、クリッピングを伴うキャンバス操作は遅くなるため、時間がかかります。

一部のブラウザー (Chrome) は、ペイントしたキャンバス領域を追跡し、画面のその部分のみを更新します。時間の節約にもなります。

したがって、そのようなことが役立つかどうかは、汚れた領域の大きさ (汚れた領域がキャンバス全体とほぼ同じ大きさの場合、クリッピングせずにすべてを再描画する方が高速です) とオブジェクトの数 (時間があればあるほど、保存できます)。ほとんどの場合、それを行う価値があると思います。フレームごとにすべてを再描画するのは非常に遅いに違いありません。

于 2013-03-06T18:22:25.030 に答える