Для рендеринга карты теней вы обычно хотите связать текстуру глубины (предпочтительно квадратную и степенную, равную двум, потому что драйверы стерео воспринимают это как подсказку!) К FBO и использовать ровно один шейдер (как можно более простой) для все. Вы не хотите прикреплять цветной буфер, потому что вы вообще не интересуетесь цветом, и это создает больше ненужного давления на ROP (плюс, некоторые аппаратные средства могут рендерить двойную скорость или больше только с глубиной). Вы не хотите переключаться между многими шейдерами.
В зависимости от того, выполняете ли вы «классическое» отображение теней или что-то более сложное, например, карты экспоненциальных теней, шейдер, который вы будете использовать, либо прост, насколько он может быть (постоянный цвет без записи глубины), либо выполняет некоторые (умеренно сложные) вычисления по глубине, но обычно вы не хотите выполнять какие-либо вычисления цвета, поскольку это будет означать ненужные вычисления, которые не будут видны каким-либо образом.