W XNA (i ogólnie AFAIK Direct3D) zamiast tworzyć pojedyncze shadery wierzchołków i fragmentów, potencjalnie wiele powiązanych shaderów łączy się w „Efekty”. Kiedy korzystasz z efektu, wybierasz „technikę” (lub iterujesz przez wszystkie z nich), a następnie każda „technika” ma kilka „przejść”. Pętla przechodzi przez każde przejście, wybiera odpowiedni wierzchołek i fragmentator cieni i rysujesz geometrię.
Ciekawe, czy potrzebowałbyś wielu przepustek? Rozumiem, że na początku 3d miałeś tylko jedną jednostkę tekstur, a potem miałeś 2, a to często wciąż nie wystarczało, jeśli chciałeś również mapować środowisko. Ale na nowoczesnych urządzeniach, nawet w klasie mobilnej, możesz próbkować 8 lub więcej tekstur i wykonywać tyle obliczeń oświetlenia, ile chcesz w jednym module cieniującym.
Czy bardziej doświadczeni mogą zaoferować praktyczne przykłady tego, gdzie renderowanie wieloprzebiegowe jest nadal potrzebne, czy jest to po prostu nadmierna inżynieria ze strony XNA / Direct3d?