En Direct3D, los sombreadores multipass son fáciles de usar porque literalmente puede definir pases dentro de un programa. En OpenGL, parece un poco más complejo porque es posible darle a un programa de sombreado tantos sombreadores de vértices, geometrías y fragmentos como desee.
Un ejemplo popular de un sombreador multipass es un sombreador de toon. Un pase realiza el efecto de sombreado de celdas real y el otro crea el contorno. Si tengo dos sombreadores de vértice, "cel.vert" y "outline.vert", y dos sombreadores de fragmentos, "cel.frag" y "outline.frag" (de forma similar a como lo hace en HLSL), ¿cómo puedo combinarlos para crear el sombreador de toon completo?
No quiero que digas que se puede usar un sombreador de geometría para esto porque solo quiero conocer la teoría detrás de los sombreadores GLSL multipass;)