У Direct3D багатопрохідні шейдери прості у використанні, оскільки ви можете буквально визначати проходи в межах програми. У OpenGL це здається трохи складнішим, тому що можна надати програмі шейдерів стільки вершин, геометрії та фрагментів шейдерів, скільки вам потрібно.
Популярний приклад багатопрохідного шейдера - тоновий шейдер. Один прохід робить фактичний ефект затінення, а інший створює контур. Якщо у мене є два вершинні шейдери, "cel.vert" і "outline.vert", і два шейдери для фрагментів, "cel.frag" і "outline.frag" (подібно до того, як ви це робите в HLSL), як я можу це зробити комбінувати їх для створення повного тонового шейдера?
Я не хочу, щоб ви казали, що для цього може використовуватися шейдер геометрії, тому що я просто хочу знати теорію, що стоїть за багатопрохідними шейдерами GLSL;)