一般的な Android 描画関数を使用すると深刻なパフォーマンスの問題が発生したため、OpenGL ES を使用してかなり複雑なパスを描画する実験を行っています。これまでのところ、OpenGL を直接使用すると大幅に高速になるようですが、2D での描画と 3D での描画の違いについて疑問に思っています。
OpenGL の Google チュートリアルの例を使用しており、頂点から 3 番目の次元を削除するために少し変更しています。z 座標を省略しglVertexAttribPointer
、サイズ パラメータとして 2 を渡すだけでうまくいくようです。これは明らかで簡単な最適化のようであり、コードも少し明確になります。しかし、OpenGL ES が 3D を前提として不必要な作業を行っている他の場所はどこにあるのだろうかと思っています。
たとえば、深さのテストは必要ありませんが、明示的に有効にしないだけで十分なのか、設定を無効にする必要があるのか は明確ではありません。
私はマイクロ最適化を探しているわけではありませんが、3D で作業しているという仮定を取り除き、2D では必要のない計算を単純化または削除する一般的な設定を求めています。3D ではなく純粋な 2D で作業している場合、他に何をすべきですか?