Android でグラフィックスをいじっていましたが、キャンバスでビットマップを描画するには多くの時間とリソースが必要であることに気付きました。特に、一度に多くの画像を描画する必要があるハイエンド ゲームでは、これはフレームレートなどにかなり悪影響を与える可能性があります。もし私がopenGLを学んで使うことに決めたら、それは大きな違いを生むでしょうか? それとも、キャンバスを正しく使用していないのでしょうか。
質問する
223 次
1 に答える
1
話しているAndroidのバージョンによって異なります。
Android バージョン 2.X では、すべてのキャンバス操作がハードウェア アクセラレーションではないため、GPU をまったく使用せず、CPU ですべてをピクセル単位で処理します。
Android 3 または 4 (正確にはどれかは忘れました) では、ハードウェア アクセラレーションがキャンバスに追加され、GPU アクセラレーション キャンバスを使用できるようになりました。
OpenGLES は常にハードウェア アクセラレーションを使用するため、Android 2.X の場合、常にキャンバスよりもはるかに高速になります (妥当なフレームレートが必要なあらゆる種類のゲームでは、これが唯一の現実的なオプションです)。
ハードウェア アクセラレーションされた Android では、キャンバスでハードウェア アクセラレーションが有効になっている場合、両方とも GPU を利用するため、キャンバスと OpenGL の違いにほとんど気付かないでしょう。
于 2012-08-27T05:14:43.907 に答える