In XNA (und Direct3D im Allgemeinen AFAIK) bündeln Sie potenziell einzelne verwandte Shader in "Effekte", anstatt einzelne Vertex- und Fragment-Shader zu erstellen. Wenn Sie einen Effekt verwenden, wählen Sie eine "Technik" aus (oder durchlaufen alle), und dann hat jede "Technik" eine Anzahl von "Durchgängen". Sie durchlaufen jeden Durchgang, in dem der relevante Scheitelpunkt und Fragment-Shader ausgewählt wird, und zeichnen die Geometrie.
Was mich jedoch neugierig macht, ist, wofür Sie mehrere Durchgänge benötigen würden? Ich verstehe, dass Sie in den frühen Tagen von 3D nur eine Textureinheit hatten und dann zwei, und das war oft noch nicht genug, wenn Sie auch Umgebungsmapping durchführen wollten. Aber auf modernen Geräten können Sie selbst in der mobilen Klasse 8 oder mehr Texturen abtasten und so viele Beleuchtungsberechnungen durchführen, wie Sie möchten, in einem einzigen Shader.
Können die erfahreneren hier praktische Beispiele dafür liefern, wo noch Multi-Pass-Rendering erforderlich ist, oder ist dies nur eine Überentwicklung seitens XNA / Direct3d?