Главная » Free Pascal » Основные аффинные преобразования OpenGL Free Pascal

0

Отображаемые геометрические объекты или их фрагменты могут подвергаться различным преобразованиям типа перемещения в пространстве, вращения относи- тельно заданного центра или заданной оси, растяжения или сжатия с индивидуаль- ными или одинаковыми масштабными коэффициентами по каждой координатной оси. Библиотека OpenGL обеспечивает построение различных проекций — орто- графической, перспективной, изометрической, диметрической и любой другой, для которой пользователь обнаружил в литературе соответствующую матрицу аффин- ного преобразования.

В OpenGL предусмотрена работа с тремя матрицами, имеющими разное назна- чение. Модельно-видовая матрица (условное обозначение GL_MODELVIEW) определя- ет положение объекта в системе пространственных координат и, соответственно, его видом с позиции наблюдателя. Матрица проекций (условное обозначение GL_PROJECTION) управляет процессом выбранного режима проецирования трехмер- ного объекта в двумерную систему координат окна экрана. Матрица текстуры (ус- ловное обозначение GL_TEXTURE) управляет процессами наложения текстур на по- верхность нашего объекта.

В каждый конкретный момент мы можем выполнять то или иное преобразова- ние только с той из указанных матриц, которая объявлена текущей. Этот выбор происходит в результате обращения к процедуре glMatrixMode. Ее единственным аргументом является одно из упомянутых ранее условных обозначений. Перед на- чалом цепочки аффинных преобразований в текущую матрицу обычно засылают единичную матрицу с помощью процедуры glLoadIdentity. Эта матрица не изме- няет начальное состояние управляемого объекта и, как правило, принимается в ка- честве стартовой текущей матрицы для манипуляций с объектом в системе про- странственных координат. Для других преобразований может потребоваться формирование начальной текущей матрицы с нестандартными значениями коэф- фициентов. В  таких  случаях  прибегают  к  другой  процедуре —  glLoadMatrixf. В качестве аргумента этой процедуры, как правило, задают адрес вектора, содер- жащего 16 вещественных чисел, записанных по столбцам загружаемой матрицы.

Наиболее часто применяемые преобразования связаны со сдвигами, поворота- ми и масштабированием.

Источник: Кетков, Ю. Л., Свободное программное обеспечение. FREE PASCAL для студентов и школьников, Ю. Л. Кетков, А. Ю. Кетков. — СПб.: БХВ-Петербург, 2011. — 384 с.: ил. + CD-ROM — (ИиИКТ)

По теме:

  • Комментарии