1
GL ES:フラグメントシェーダーの最適化
概要: スプライトに色を付けようとするとすぐにFPSの速度が低下します(つまり、テクスチャをフラグメントシェーダーで色と乗算します)。 詳細: ハードウェア:iPod touch 4 glDrawArraysを使用して画面に700のスプライトを描画しています。そして、はい、これらすべてを1回の描画呼び出しでバッチ処理しています。以下は、頂点データ構造を示しています。 struct Vertex { float Position[2]; float Color[4]; float Texture[2]; }; はい、いくつかのスプライトを選択的に着色する必要があるので、他のスプライトを選択的に着色する必要がないため、各頂点で色を送信しています。以下は私が使用しているフラグメントシェーダーです: varying lowp vec2 TexCoord; uniform sampler2D TextureSampler; void main(void) { gl_FragColor = texture2D( TextureSampler, TexCoord ); } 今までそれは素晴らしい仕事をしていて、私に完全な60 FPSを与えています!!! だが フラグメントシェーダーを次のように変更するとすぐに(着色を可能にするため): varying lowp vec4 DestinationColor; varying lowp vec2 TexCoord; uniform sampler2D TextureSampler; …