Мегаобучалка Главная | О нас | Обратная связь


Шаг 2: двигаем и поворачиваем блок 2



2019-08-13 218 Обсуждений (0)
Шаг 2: двигаем и поворачиваем блок 2 0.00 из 5.00 0 оценок





 


Шаг 3: двигаем и поворачиваем блок 3


Иерархия преобразований: итог

· Относительное преобразование каждого блока зависит только от его геометрии

· Абсолютное преобразование формируется домножением на «родительское преобразование»

· Чтобы двигать три блока вместе, надо менять только параметры первого (родительского) блока

· Чтобы повернуть 2й или 3й блок, нужно менять только параметры локального преобразования

В мировой системе координат мы строим свою сцену из отдельных объектов, часть из которых должны быть подвижны и называются актерами. Как правило, вначале объект создается вершинами примитивов относительно начала мировых координат, а затем настраивается матрица преобразования модели для помещения объекта в требуемое место сцены. Затем относительно мировой системы координат мы определяем взгляд наблюдателя на построенную сцену с помощью камеры. Размещение трехмерных объектов на сцене, а также управление их дальнейшим положением и ориентацией осуществляется с помощью матриц преобразований модели, которые реализуют следующие три действия:

· Перемещение – плоскопараллельный перенос всего объекта в некоторую точку мирового пространства. Реализуется командой glTranslate{fd}(TYPE x, TYPE y, TYPE z). Окончания f или d - для команд с аргументами типа float или double. В аналитических выкладках принято обозначать как матрицу T.

· Вращение – поворот объекта вокруг некоторой линии, определенной в мировых координатах, на заданный угол. Реализуется командой glRotate{fd} TYPE angle,TYPE x,TYPE y,TYPE z). Окончания f или d - для команд с аргументами типа floatили double. В аналитических выкладках принято обозначать как матрицу R.

· Масштабирование – растяжение, сжатие или отражение объекта по соответствующим осям. Реализуется командой glScale{fd}(TYPE x, TYPE y, TYPE z). Окончания f или d - для команд с аргументами типа float или double. В аналитических выкладках принято обозначать как матрицу S. Масштабирование со значением больше +1.0 растягивает объект по соответствующей оси, со значением меньше +1.0 - уменьшает объект. Значение -1.0 приводит к зеркальному отображению объекта.

Все модельные преобразования применяются к объектам, заданным координатами вершин, последовательным домножением текущей матрицы справа на новую матрицу, определяющую нужное геометрическое преобразование. Последовательность применение тех или иных действий имеет значение. Например, при прочих равных условиях разные результаты дадут действия, выполненные в последовательности: переместить/повернуть и повернуть/переместить. Это и понятно, поскольку совершенно разными будут итоговые матрицы для таких действий:

M = M * T * R;     M = M * R * T

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

 

НАЗАД

 

13. Последовательные преобразования при обработке вершин. Проецирование. Общий вид преобразований в пространстве. Виды проекций. Проективное преобразование.

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

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

Параллельные проекции можно разделить на следующие группы:

1. Ортографическая проекция (параллельно одной из координатных плоскостей) координатная плоскость параллельна или совпадает с одной из координатных плоскостей. Если она параллельна, то необходимо координаты исходной точки умножить на матрицу сдвига с параметром m или n или l <> 0.

2. Аксонометрическая проекция (проектирующие прямые перпендикулярны картинной плоскости):

· триметрическая (нормальный вектор картинной плоскости образует с ортами координатных осей попарно различные углы);

· диметрическая (два угла между нормалью картинной плоскости и координатными осями равны);

· изометрическая (три угла между нормалью картинной плоскости и координатными осями равны);

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

3. Проекции, для получения которых используется пучок прямых, не перпендикулярных плоскости экрана, называют косоугольными.

· Свободная - кабинетная. Среди перспективных проекций выделяются:

¾ одноточечная (r ¹ 0);

¾ двухточечная (p, q ¹ 0);

¾ трехточечная (p, q, r ¹ 0).

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

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

В OpenGL ортографическая проекция задается функциями:

· glOrtho(left, right, bottom, top, near, far), где near >0, far >0.

· glOrtho2D(left, right, bottom, top), где near=0, far=1.

В OpenGL перспективная проекция задается функциями:

· glFrustum(left, right, bottom, top, near, far), где near >0 , far >0;

· gluPerespective(fovy,aspect,near,far) – параметр fovy задает угол видимости в направлении оси OY в градусах, центрированный относительно этой оси.

Используемый в OpenGL и других графических API подход базируется на методике нормализации проецирования (projection normalization), которая предусматривает сведение всех типов проекций к ортогональной, для чего выполняется предварительной искажение исходных объектов.

Проективное преобразование – перспективные и масштабные искажения.

Выполняет 3D преобразование, подготавливая модель к переходу на 2D

· Матрица проекции вырожденная

¾ Фактически, информация от координаты z теряется

· Часто необходимо выполнять дополнительные действия уже ПОСЛЕ проецирования

¾ Например, удаление невидимых линий/поверхностей

· Поэтому часто (в т.ч. OpenGL) используется проективное преобразование вместо проекции

¾
Проективное преобразование невырожденное и позволяет анализировать глубину

 



2019-08-13 218 Обсуждений (0)
Шаг 2: двигаем и поворачиваем блок 2 0.00 из 5.00 0 оценок









Обсуждение в статье: Шаг 2: двигаем и поворачиваем блок 2

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:
Как распознать напряжение: Говоря о мышечном напряжении, мы в первую очередь имеем в виду мускулы, прикрепленные к костям ...
Почему человек чувствует себя несчастным?: Для начала определим, что такое несчастье. Несчастьем мы будем считать психологическое состояние...
Организация как механизм и форма жизни коллектива: Организация не сможет достичь поставленных целей без соответствующей внутренней...



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (218)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.007 сек.)