Свет не вращается, он фиксируется в статическом положении и направлении.Проблема здесь в том, что вы, похоже, не понимаете, что такое нормаль и как она используется в компьютерной графике.
Компьютерная модель - это серия «вершин», которые соединяются в «грани» (обычно треугольники),Когда «реалистичный» свет вводится в сцену, для определения того, как он должен взаимодействовать с каждым лицом модели, необходим дополнительный фрагмент информации, это называется «нормальным».Нормаль - это вектор направления, который обычно образует линию, перпендикулярную грани, но ему не обязательно, что станет важным для вашей проблемы.Этот нормаль используется для вычисления того, как свет взаимодействует с этой поверхностью.
Таким образом, у вас есть три набора данных: вершины, индикаторы (как вершины собираются вместе для формирования граней) и нормали (вычисляются автоматически втвой пример).Проблема возникает, когда вы начинаете делать преобразования в модель (например, вращение), но не выполняете преобразования, аналогичные нормалам, которые были вычислены до преобразования.
Давайте представим это ... скажем, у нас есть следующая пирамидас одной из нормалей, нарисованных для иллюстрации проблемы:
Теперь, когда мы начинаем вращать пирамиду, но мы оставляем направления нормали без изменений, мы видимчто угол между нормалью и гранью начинает меняться.
Длячтобы все работало как положено, нам нужно также повернуть нормали, чтобы угол относительно лица не изменился.
Угол освещенияОтносительно поверхности нормаль - это то, что определяет, как поверхность затеняется светом.Когда вы вращаете модель, нормали начинают указывать в «случайных» направлениях, это мешает вычислению света, и кажется, что свет вращается, но это не так.
Очевидно, что это очень поливаетобъяснение того, что происходит, но оно должно дать вам базовое понимание того, что является нормой и зачем вам нужно применять преобразования к ним.