Среда, 20.09.2017, 01:22

Кибер-Сайт

Приветствую Вас Гость | RSS
Меню сайта
Наши реквизиты
Считаете полезными материалы нашего сайта?
Хотите и можете помочь проекту?
Z222164825293
Категории
Delphi [8]
Delphi, Object Pascal, уроки, статьи, исходники
OpenGL API [9]
Графика на OpenGL API, уроки, статьи, исходники
Blender [9]
Трехмерная графика, моделирование, разработка игр с помощью Blender
3D. Общие вопросы [1]
Наш опрос
Оцените мой сайт
Всего ответов: 90
Статистика
Ваш IP: 54.198.247.44
Онлайн всего: 1
Гостей: 1
Пользователей: 0

Форма входа
Главная » 2013 » Июль » 29 » Особенности оперирования матрицами в OpenGL
18:35

Особенности оперирования матрицами в OpenGL

К таким особенностям можно отнести порядок перемножения матриц, а также помещение матриц в матричный стек. Рассмотрим их более подробно.

Порядок перемножения матриц

При перемножении матриц либо при вызове команд, таких как glScale*, glTranslate*, glRotate* или glMultMatrix* (которые перемножают текущую матрицу на заданную, см. Видовые преобразования
) следует учитывать порядок вызова команд или порядок перемножения матриц, если вы самостоятельно перемножаете матрицы. Таким образом, если нам, например, нужно, переместить и повернуть куб с центром, лежащим в центре координат, то выполненные вращение и повороты в разных последовательностях дадут совершенно разные результаты, что вполне логично.

Если мы повернем куб на 45 градусов вокруг оси Y, то он повернется вокруг своей оси, так как центр куба и центр координат совпадают. Если мы теперь переместим куб на 3 единицы по X, то он соответственно переместится по X вправо. В результате мы получим повернутый, а затем перемещенный куб.

Если мы (наоборот) переместим куб, а затем повернем его, то он уже не будет повернут вокруг собственного центра, а повернется вокруг центра координат, так как он был сначала перемещен. Разница очевидна.

Помещение матриц в матричный стек

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

Следует учитывать эти особенности при построении сцен в OpenGL.

Категория: OpenGL API | Просмотров: 972 | Добавил: Admin | Рейтинг: 0.0/0

Похожие материалы
Всего комментариев: 0
Имя *:
Email *:
Код *:
Поиск
Календарь
«  Июль 2013  »
ПнВтСрЧтПтСбВс
1234567
891011121314
15161718192021
22232425262728
293031
Друзья сайта
  • Скачать Blender
  • Архив записей
    Реклама
    Copyright Кибер-Сайт © 2017 | Используются технологии uCoz