XNA(および一般的なAFAIKのDirect3D)では、個々の頂点シェーダーとフラグメントシェーダーを作成するのではなく、潜在的に多くの関連するシェーダーを「エフェクト」にバンドルします。エフェクトを使用するときは、「テクニック」を選択(またはそれらすべてを繰り返し)すると、各「テクニック」にいくつかの「パス」があります。各パスをループして、関連する頂点シェーダーとフラグメントシェーダーを選択し、ジオメトリを描画します。
私が興味を持っているのは、複数のパスが必要になることですか?3Dの初期の頃は、テクスチャユニットが1つしかなかったのに2つありましたが、環境マッピングもしたい場合は、それでも十分ではないことがよくありました。しかし、最新のデバイスでは、モバイルクラスでも、8つ以上のテクスチャをサンプリングして、単一のシェーダーで必要なだけライティング計算を実行できます。
ここでより経験豊富な人は、マルチパスレンダリングがまだ必要な実際的な例を提供できますか、それともXNA / Direct3dの部分でオーバーエンジニアリングしているだけですか?