V = TR.

Вектор v должен быть ортогонален вектору п, следовательно, n v = 0.

5.2. Размещение камеры

На рис. 5.16 видно, что v является проекцией на картинную плоскость, заданную своей нормалью п. Следовательно, v есть линейная комбинация п и лу:

V = осп + (3\у.

Если пренебречь длинами векторов, то можно положить (3=1 и получить

\У п

. а =-п п и

v = \у--п .

п п Теперь можно определить третий вектор правой тройки как векторное произведение: и = v x п.

В общем случае эти векторы не являются единичными, поэтому их нужно нормализовать и получить три единичных вектора (орта) осей координат фрейма камеры и', v1 и п'. Матрица поворота

позволяет получить ориентацию вектора, заданного в системе и', v1, п', по отношению к осям координат исходной системы. Но нам нужно решать обратную задачу - получить представление вектора, заданного в исходной системе координат,, в системе и', v1, п'. Поэтому нужно обратить матрицу М, но поскольку это матрица "чистого" поворота, то обращение можно заменить транспонированием: К = М-1 = мг.

Последняя операция - умножение на матрицу сдвига Т:

Обратите внимание на то, что в данном случае матрица сдвига стоит в произведении справа, в то время как раньше мы умножали ее слева. Интерпретировать это отличие можно следующим образом: в первом случае мы сначала поворачивали фрейм, а затем отодвигали его в направлении, которое было представлено в координатах фрейма камеры. В данном же случае позиция камеры (а следовательно, и требуемое ее смещение из исходного положения) представлена в координатах мирового фрейма.

Можно и по-другому разобраться в этих отличиях. Обратите внимание на то, что матрицы ИТ и ТК имеют аналогичную структуру. Ориентирующие части обоих произведений матриц - верхние левые подматрицы 3x3 - идентичны, а три первых элемента четвертого столбца отличаются по той простой причине, что компоненты смещения выражаются в них в разных фреймах. В произведении ТК - это компоненты в неповернутом фрейме, а в произ-

Визуализация

ведении КТ - в повернутом. Для примера с получением изометрического вида, который был рассмотрен в предыдущем разделе, имеем:


⇐ Предыдущая| |Следующая ⇒