Чтобы скомпоновать сцену из нескольких трехмерных объектов, каждый из которых может быть определен в собственном предметном пространстве, необходима общая система координат. Такая система называется глобальным пространством или глобальной системой координат, и в ней определяется соотношение всех объектов сцены. В глобальном пространстве определяются пространственные отношения между объектами, источники света, точка обзора. Единицы измерения в этом пространстве выбираются такие, чтобы были удобными для целой сцены. Если, к примеру, моделируется комната в доме, единицами будут футы или метры, но если конструируется силуэт города, в качестве единицы измерения пространства можно выбирать и городские кварталы. Начало координат также можно расположить в произвольном месте. Для сцены определяется трехмерный ограничивающий параллелепипед, начало координат устанавливается в углу, так что все остальные его координаты положительны. Можно сделать и по-другому - например, установить начало координат в важную точку сцены (в угол строения, в место расположения ключевого персонажа и т. д.).

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

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

После компоновки объектов в сцену необходимо указать параметры вида - точку обзора (положение камеры или глаза), точку фокуса (то есть направление взгляда) и направление верха (направление, в котором камера смотрела бы снизу вверх).

Параметры обзора, сочетаясь, определяют путь трансформации изображения при изменении точки обзора и могут быть объединены в матрицу визуализации. С помощью этой матрицы координаты могут преобразовываться из глобального пространства в пространство обзора. Начало координат в этой координатной системе находится в топке обзора (положение камеры). Пространственные отношения сцены не меняются, зато легко определять расстояние от точки обзора до различных объектов сцены. Почти все графические 3D API позволяют приложениям определять отдельно матрицу преобразования и матрицу визуализации. В OpenGL они объединены в единую матрицу, называемую матрицей модели-вида, которая преобразует координаты из предметного пространства сразу в пространство обзора (рис. 1.2).

Существует множество матриц, которыми можно оперировать в OpenGL. Чтобы выбрать либо модельно-видовую, либо другую OpenGL-матрицу, можно вызвать функцию glMatrixMode. Можно установить единичную матрицу в качестве текущей функцией gl LoadIdenti ty или заменить любой другой произвольной матрицей с помощью функции gl LoadMatrix (при этом стоит убедиться в необходимости этого, так как в результате преобразований есть вероятность получить малопонятное изображение). Умножением можно совместить текущую матрицу с произвольной с помощью функции glMul tMatrix.


⇐ вернуться назад | | далее ⇒