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


Аффинные преобразования



2020-02-03 141 Обсуждений (0)
Аффинные преобразования 0.00 из 5.00 0 оценок




Масштабирование

Преобразование масштабирования увеличивает или уменьшает размеры объекта.

Команда масштабирования glScale (arg1, arg2, arg3) с тремя аргументами – коэффициентами масштабирования по каждой из осей.

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

После команд рисования следует восстановить нормальный масштаб, чтобы каждое следующее обращение к обработчику перерисовки экрана не приводило бы к последовательному уменьшению / увеличению изображения.

 

Поворот

Для поворота изображения используется команда

glRotate (arg1, arg2, arg3, arg4)

с четырьмя аргументами:

arg1 – угол поворота (в градусах),

arg2, arg3, arg4 – вектор поворота.

 

Сдвиг

Преобразованиесдвига смещает точки в новые позиции в соответствии с заданным вектором смещения. Перенос системы координат осуществляется командой

glTranslate (arg1, arg2, arg3)

arg1, arg2, arg3 – величины переноса по каждой из осей.

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

 

Закрашивание объектов сцены

 

В трёхмерном пространстве поверхность объектов характеризуется материалом. Материал может отражать, поглощать и пропускать свет различной длины волн. В зависимости от характеристик материала и от свойств источника света мы видим объекты различными. Свойства материала задаются с помощью команды glMaterialfv(). Характеристики свойств материала, определяют соответствующие им символьные константы, которые представлены в таблице 1.3.

 

Таблица 1.3. Характеристики свойств материала

GL_AMBIENT рассеянный свет
GL_DIFFUSE Параметр, указывающий насколько сильно этот цвет отражается поверхностью при её освещении
GL_EMISSION излучаемый свет
GL_SHININESS степень отраженного света

 

Зеркальный цвет задаёт цветовую гамму бликов материала, степень зеркального отражения определяет, насколько близка поверхность к идеальному зеркалу (определяется числом из интервала [0,128]).

Свойства материала задаются для внешней и внутренней стороны фигуры.

glMaterialfv (GL_FRONT, GL_AMBIENT_AND_DIFFUSE,@MaterialFront);

glMaterialfv (GL_BACK, GL_AMBIENT_AND_DIFFUSE,@MaterialBack);

Существует несколько режимов рисования многоугольников.

Чтобы изменить метод отображения многоугольника используется команда:

glPolygonMode (GLenum face, Glenum mode)

 

Параметр mode определяет, как будут отображаться многоугольники, а параметр face устанавливает тип многоугольников, к которым будет применяться эта команда и могут принимать следующие значения:

 

Таблица 1.4. Значения параметров face и mode

GLenum face

GL_FRONT для лицевых граней
GL_BACK для обратных граней
GL_FRONT_AND_BACK для всех граней

Glenum mode

GL_POINT Отображаются вершины многоугольников
GL_LINE представляется набором отрезков
GL_FILL закрашиваются текущим цветом с учетом освещения и этот режим установлен по умолчанию.

 

Пример:

GlPolygonMode (GL_FRONT, GL_POINT);

GlPolygonMode (GL_ BACK, GL_LINE);

GlPolygonMode (GL_FRONT_AND_BACK, GL_FILL);

 


Источники света

 

Без источника света изображения не видно. По умолчанию освещение отключено. Что бы инициализировать источник, и включить обработчик расчёта воздействия источника на объекты достаточно выполнить команды:

glEnable (gl_lighting);

glEnable (gl_light0);

Источник света по умолчанию располагается в пространстве с координатами (0,0,¥), можно создавать источник света в любой точке пространства изображений.

Параметры источника света задаются с помощью команды,

glLightfv (source, parameter, pointer_to_array).

Первый параметр команды – идентификатор источника

Второй аргумент – символическая константа, задающая атрибут

Третий – ссылка на структуру, содержащую задаваемые значения для данного атрибута.

 

Таблица 1.5. Константы, задающие свойства окружающей среды и позицию источника света

GL_Position задаёт позицию источника света, источник света не перемещается за системой координат (x, y, z, cos J)
GL_AMBIENT рассеянный свет
GL_DIFFUSE Параметр, указывающий насколько сильно этот цвет отражается поверхностью при её освещении
GL_SPECULAR отраженный свет
GL_EMISSION излучаемый свет
GL_SHININESS степень отраженного света
GL_AMBIENT_AND_DIFFUSE задаёт поглощение цвета поверхностью в рассеивающей составляющей
GL_SPOT_direction направление света (x, y, z)
GL_SPOT_Cutoff задаёт максимальный угол излучения источника света [0,90] и 180.

Для того чтобы внутренняя сторона объекта была видна необходимо включить освещенность для внутренней стороны многоугольника. Световая модель с освещением внутренней части многоугольника включается или выключается соответствующей функцией

glLightModeli (GL_LIGHT_MODEL_TWO_SIDE, 1).

Второй аргумент 0 или 1 (вкл. или выкл.).

 

Наложение текстуры



2020-02-03 141 Обсуждений (0)
Аффинные преобразования 0.00 из 5.00 0 оценок









Обсуждение в статье: Аффинные преобразования

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

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

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



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

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

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

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

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

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



(0.008 сек.)