В XNA (и Direct3D в общем AFAIK) вместо создания отдельных вершинных и фрагментных шейдеров вы потенциально объединяете много связанных шейдеров в «Эффекты». Когда вы начинаете использовать эффект, вы выбираете «технику» (или перебираете все из них), а затем каждая «техника» имеет несколько «проходов». Вы проходите через каждый проход, выбираете соответствующий вершинный и фрагментный шейдеры и рисуете геометрию.
Что меня интересует, так это то, что вам нужно несколько проходов? Я понимаю, что в первые дни 3d у вас был только один текстурный блок, а затем у вас было 2, и этого часто все еще было недостаточно, если вы также хотели сделать картографирование среды. Но на современных устройствах, даже в мобильном классе, вы можете сэмплировать 8 или более текстур и выполнять столько вычислений освещения, сколько захотите в одном шейдере.
Могут ли более опытные здесь предложить практические примеры того, где многопроходный рендеринг все еще необходим, или это просто чрезмерная разработка со стороны XNA / Direct3d?