У XNA (та Direct3D взагалі AFAIK), замість створення окремих шейдерів вершин та фрагментів, ви об'єднуєте потенційно багато пов'язаних шейдерів у "Ефекти". Коли ви користуєтеся ефектом, ви вибираєте "техніку" (або повторюєте їх усі), і тоді кожна "техніка" має ряд "проходів". Якщо ви переходите через кожен прохід, вибираєте відповідну вершину та фрагмент шейдера, і ви малюєте геометрію.
Мені цікаво, хоча, для чого вам знадобиться кілька пропусків? Я розумію, що у перші дні 3D у вас був лише один блок текстури, а потім у вас було 2, а це часто все ще було недостатньо, якщо ви також хотіли зробити картування навколишнього середовища. Але на сучасних пристроях, навіть у мобільному класі, ви можете вибирати 8 чи більше текстур і робити стільки обчислень освітлення, скільки хотілося б в одному шейдері.
Чи можуть більш досвідчені тут запропонувати практичні приклади того, де багатопрохідний візуалізація все ще потрібен, чи це просто надмірна інженерія з боку XNA / Direct3d?