Трехмерные системы координат

На разных этапах обработки объектов используются различные системы координат. Используются следующие основные системы координат:

1. Координаты модели.

2. Мировые координаты.

3. Координаты камеры.

4. Координаты перспективы.

5. Экранные координаты.

Координаты модели (локальные координаты)

Объект описывают в его собственной системе координат и, только затем, переносят в реальное положение. При этом объектом может быть и часть рассматриваемого объекта. Суть описания в локальной системе координат заключается в том, что для каждого объекта локальная система наиболее удобна для описания его свойств.

Например, пусть рука робота описывается с помощью двух деталей (рис. 1).

Рис. 1. Пример локальных систем координат объектов

Каждую часть руки (объект) удобно описывать в своей локальной системе координат.

СОГЛАШЕНИЯ

Существуют соглашения ориентации:

1. Передняя часть объекта ориентирована вдоль положительного направления оси z, а верх – вдоль положительного направления оси y.

2. Программное обеспечение само определяет первую главную ось (вдоль наибольшей длины) и согласовывает с положительным направлением оси y, а вторую главную ось согласовывает с положительным направлением оси z.

Первый способ предпочтительнее, так как главные оси объекта не всегда имеют максимальные длины.

Существуют соглашения масштабирования. Это связано с тем, что на этапе создания объекта часто используют нормализованные размеры. Например, и мяч и астероид на этапе создания на экране могут иметь одни и те же размеры.

Левая или правая система координат. Обе системы равноправны, нельзя только путаться затем в формулах. Это касается положительного направления оси z. Чаще всего используют левую систему координат, когда положительное направление оси z внутрь экрана.

Мировые координаты

Трехмерные модели объектов надо разместить в единой сцене, где правит система мировых координат. Если ранее координаты объекта были определены относительно локальной системы координат, то теперь нужно переопределить (не изменяя или сохраняя локальные координаты) их в мировых координатах. Это обычный перенос (или смещение) – то есть тривиальная операция. Если требуется выполнить поворот (или масштабирование) объекта, то его сначала поворачивают (или масштабируют) в локальных координатах и, только затем, переносят в мировые координаты.

Координаты камеры

Камеру располагают обычно в левой мировой системе координат. Характеристики камеры задают следующие параметры:

1. Положение определяют координатами (cam_x, cam_y, cam_z).

2. Ориентацию задают углами поворота (вокруг оси x – тангаж – α, вокруг оси y – рыскание – β, вокруг оси z – крен – γ). Для пояснения углов поворота приняли, что камера смотрит в положительном направлении оси z, верх камеры – в положительном направлении оси y. Конечно, камера может быть ориентирована и по-другому, но смысл и название углов остаются.

3. Поле обзора камеры ограничено в горизонтальном и вертикальном направлении в пределах 60-130°.

4. Имеются ближняя и дальняя плоскости отсечения, между которым находятся видимые для камеры объекты.

5. Плоскость проекции – это математическая плоскость, на которую проецируются изображения трехмерных объектов. Естественно, для нас эта плоскость совпадает с экраном дисплея.

Камера обычно располагается не в начале мировых координат. Для проецирования объектов на плоскость проекции удобнее, если мы перенесем начало координат в центр объектива камеры. При этом нужно выполнить такой же перенос всех видимых для камеры объектов реального мира.

Точно также камера практически всегда имеет ненулевые значения углов поворота. До поворота обязательно нужно переместить начало мировых координат в центр координат камеры. После этого можно повернуть мировые координаты и все видимые объекты так, чтобы углы поворота камеры оказались нулевыми, и камера смотрит в положительном направлении оси z, верх камеры – в положительном направлении оси y. При этом наиболее часто поворот выполняют последовательно сначала вокруг оси y, затем вокруг оси x, и только потом вокруг оси z. Это подобно тому, что человек при поиске поворачивает голову сначала влево-вправо, затем вверх-вниз, и только в последнюю очередь покачивает головой от плеча к плечу. Реже выполняют повороты в последовательности zyx. Можно поступать и по-другому – выполнять поворот сначала на максимальный угол.

Наши рекомендации