@Toonas

Матрицы и выполнение собственных операций с матрицами в OpenGL?

Доброго времени суток!

Перед разъяснением вопроса заведомо прошу не серчать, если найдёте что-то глупое, так как я только в процессе своего обучения.

Обучение проходит по книге "OpenGL. Суперкнига".

Недавно я познакомился с такой замечательной вещью в OpenGL как матрицы. Были предоставлены какие-то базовые функции для работы с матрицами по типу glPushMatrix, glPopMatrix, glRotate, glTranslate ну и т.д.

Под конец рассказали, что можно не использовать push и pop, а создавать свои матрицы в виде массивов 4 на 4 или одномерных из 16 элементов и делать свои преобразования, что гораздо практичнее.

Попытавшись понять перемножение матриц и прочее я задался вопросом:
"А за что отвечает каждый элемент в матрице?".

В интернете же на этот счёт написано немного. В самой же книге только рассказывается , мол первые четыре элемента - ось х, вторые - у, третьи - z, а четвёртые - трансляция. Дело в том, что не понимая за что отвечает каждый элемент матрицы, я не могу понять сути перемножения матриц, а тем более не понимаю как работает трансляция, ротация и масштабирование.

Очень надеюсь на вашу помощь. Заранее спасибо.
  • Вопрос задан
  • 302 просмотра
Пригласить эксперта
Ответы на вопрос 2
TrueBers
@TrueBers
Гуглю за еду
Во-первых, эта "суперкнига" устарела, как говно мамонта, ни в коем случае нельзя по ней учиться, она научит нехорошим древним костылям, которые давно уже не используются и удалены из стандарта в современных версиях! Прямо сейчас выкиньте/удалите/сожгите её и забудьте всё, что успели заучить из неё! В 2017-м году она не имеет никакой ценности. Сейчас в OpenGL всё по-другому.

Во-вторых, эти функции давно официально объявлены устаревшими и категорически не рекомендуются к использованию, как и целиком весь immediate-mode rendering. Вместо immediate-mode сейчас используется Core Profile с программированием отдельных стадий графического конвеера, а вместо конкретно этих функций рекомендуется пользоваться библиотекой GLM.

Современный OpenGL начинается с версии 3.3. По сути, он является основой, в которую добавляются разные фичи.

Учиться советую по замечательным туториалам от Джоуи де Фриза, он там разбирает всё очень подробно и пошагово. Очень крутой туториал, крайне рекомендую!
Ну и, конечно же, OpenGL Programming Guide (9th Edition) — топовая книга по OpenGL с полным фаршем последней версии. Но её лучше использовать как справочник, учить по ней, для новичка, будет довольно проблематично.
Ответ написан
Комментировать
Перемножение матриц не относится напрямую к OpenGL.
Это отдельный математический аппарат, используемый практически во всех областях.
Что бы в нём разобраться, вам нужно изучать линейную алгебру, а не OpenGL.
Что бы понять, как OpenGL использует матрицы, вам нужно изучать аналитическую геометрию.

А можете забить и использовать без глубокого вникания в тему. Что бы включать микроволновку мне не пришлось несколько лет изучать физику.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы