для того, чтобы теневые объемы работали, вам, вероятно, следует избегать обрезания крышки дальним самолетом.Чтобы сделать это, либо увеличьте диапазон глубины (отодвиньте дальнюю плоскость подальше), либо уменьшите степень выдавливания.
Существует много техник теневого объема, некоторые из которых разработаны специально, чтобы избежать ограничения глубины.Мой фаворит - обратная сторона Кармака, которая работает хорошо, если вы знаете ограничивающую рамку вашей геометрии (Кармак использует деревья BSP, так что ему легко), потому что тогда вы точно знаете, как далеко нужно выдавливать теневой объем.Кроме того, может потребоваться некоторое ограничение, если источник света находится очень близко к объекту, отбрасывающему тень (в противном случае это не дальняя крышка, но углы объема окажутся отсеченными).Хотя это легко объяснить, это довольно сложно реализовать.Есть также некоторые другие алгоритмы, лучше подходящие для простой реализации на GPU (см. Здесь http://www.nvidia.com.br/object/robust_shadow_volumes.html).
Надеюсь, это поможет вам, не стесняйтесь комментировать, если вам потребуется дополнительная помощь.