Есть 3D объект, и лампа. Они отрисовываются. А еще есть тень.
Тень должна знать про объект, чтобы отрисоваться, но она еще и должна знать про источник света, где он и какие у него характеристики.
Куда лучше по дизайну засунуть тень? В объект? Но тогда как привязать лампу? В лампу? Но тогда лампа должна знать про все объекты.
Вопрос не в том, как сделать. А в том как по красоте с точки зрения ООП.