Наконец-то переписал тени с использованием FBO и GLSL:
Следующим шагом будет variance shadow mapping (VSM).
В демке видно, как окружение реагирует на перемещение светящихся желтых контейнеров.
Правда, есть один минус – после полного перехода на шейдеры перестали работать тени (реализация теней работала на фиксированном конвейере). Так что следующим шагом будет рефакторинг теней.