Пару дней назад я сдал экзамен по компьютерной графике, на котором был задан дополнительный кредитный вопрос, подобный следующему:
Свет можно определить одним из двух способов. Его можно определить в мировых координатах, например, уличный фонарь или зритель (координаты глаза), например, фара, которую носит шахтер. В любом случае точка зрения может свободно меняться. Опишите, как должен изменяться свет в этих двух случаях.
Так как я не смогу увидеть результаты этого до весенних каникул, я подумал, что могу спросить здесь.
Кажется, что используемые аналогии вводят в заблуждение - не могли бы вы определить источник света, который расположен у глаза зрителя в мировых координатах так же хорошо, как вы могли бы в координатах глаза? Я провел некоторое исследование того, как OpenGL обрабатывает свет, и кажется, что он всегда использует координаты глаза - матрица ModelView будет применяться к любому источнику света в мировых координатах.
В этом случае ответом может быть просто то, что вам придется преобразовывать свет, определенный в мировых координатах, в координаты глаза, используя что-то вроде матрицы ModelView, в то время как свет, определенный в координатах глаза, нужно будет преобразовывать только с помощью матрицы проекции.
С другой стороны, я мог бы полностью думать (или думать об этом).
Еще одна мысль, которая у меня возникла, заключается в том, что она определяет способ рендеринга теней, но это в большей степени связано с расположением света и его типом (точка, направление, излучение и т. Д.), Чем в каких координатах он представлен.
Есть идеи?