OpenGL ES 2.0 を使用した 2D シーンがあります。有機的な効果をシミュレートするために、さまざまなフェーズで回転する半透明のテクスチャ (一種のノイズ) を含むクワッドを描画する必要があります。2 つのオプションがあると仮定します。
- 複数のサンプラーを備えたシェーダーを使用して 1 つのクワッドを描画し、各サンプラーのテクスチャ座標を回転させます (頂点シェーダーなど)。
- 複数の上に重なって回転するクワッドを描画し、異なるテクスチャを各メッシュにバインドします (そして、はるかに単純なシェーディング プログラム)。
四角形 (または四角形) は、頂点配列を使用して描画されます。
glBindVertexArrayOES(vertexArray);
glDrawArrays(GL_TRIANGLE_STRIP, index, numVertex);
最初のオプションは、メッシュが 1 つしかなく、すべてのブレンドがフラグメント シェーダーで 1 回行われるため、より効率的です。glDrawArrays() への呼び出しは 1 つだけです。
一方、2 番目のオプションは、はるかに単純なフラグメント シェーダーを意味し、1 つのテクスチャ ルックアップ (ただし、クワッドごとに N 回と呼ばれます) を使用します。
どちらのオプションにも同じ数のテクスチャ バインディングがありますが、最初のオプションでは、すべてのテクスチャが異なるテクスチャ ユニットにバインドされます。
これらの各オプションのパフォーマンスについて、ご意見をお聞かせください。