Главная » Просмотр файлов » OpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д

OpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д (1124475), страница 27

Файл №1124475 OpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д (Раздаточные материалы) 27 страницаOpenGL. Руководство по программированию (Библиотека программиста) (2006). Ву М., Девис Т., Нейдер Дж., Шрайнер Д (1124475) страница 272019-05-11СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 27)

Как полагается, у самолета есть крен, наклон самолета к его поперечной оси и линия курса (это углы поворота самолета относительно центра тяжести). Следующая подпрограмма осуществляет необходимые видовые преобразования: чо!б р!1оСЧ!еи(6(бапые р1апех, 6ьбапЫе р1апеу, 6(боиЫе р1апес, 6(бппые гп(1, 6(боиЫе р!ссп, 6(босые Пеаб!пв) ( Хщпгатеб(гп(1, О.О, О.О, 1.8); Всао(атеб(р!Сев, 8.0, 1.О, О.О); д(ао(агеб(ьеаб(па, 1.0, 0,8, 0.0); х1тгапх(асеб(-р1апех, -р1апеу, -р)апет) ) Предположим, приложение имитирует камеру, вращающуюся по орбите вокруг обьекта, расположенного в начале координат. В этом случае видовое преобразование можно определить в полярной системе координат.

Пусть переменная г(мтансе !ахает радиус орбиты или расстояние от камеры до начала координат. (Изначально камера смещена на агсг(апсе единиц вдоль положительного направления оси г.) Параметр азстигг) описывает угол поворота камеры вокруг объекта в плоскости зу, отмеренный относительно положительной полуоси у. Также существует паракетр е(епайоп, который указывает угол поворота камеры в плоскости уг, относительно положительного направления оси к Наконец, параметр гср)з( обозначает арашение объема видимости вокруг линии взгляда.

Следующая подпрограмма производит предложенные преобразования: чоы рп1агЧ!еи(6(бопЫе б!з(апсе, 6(бобЫе Свист, 6(бопЫе е(еча(зоп, 6ыббЫе ас!ипСП) ( 81тгапз1а(еб(8.8, 0.0, -б!х(апсе); х(апсасеб(-сихзс, 8,0, О.о, 1.0); а(ао(агеб(-е1ечаС!оп, 1.0, 0.8, 8.0); 81ао(аСеб(ас!поСП, 8.0, 0.0, 1.0); Преобразования проецирования В предыдуШих разделах рассматривалось, как получить желаемую модельно-видовую матрипу для проведения правильных модельных и видовых преобразоваавй. Данный раздел объясняет, как определить желаемую матрицу проекций, которая также изменяет вершины объектов сцены. Перед использованием любых преобразований, описанных здесь, не забудьте выполнить команды: 11яа(ю х небе (6С ряо! 8СТ(оя); 11(паб1бепС! Су(); 120 Глава 3 ° Визуализация Они применяют все преобразования к матрице проекций и позволяют не затрагивать модельно-видовую матрицу, соответственно, удается избежать смешивания преобразований, которое может появиться потому, что каждая команда преобразования проекций отвечает за отде,тьное преобразование.

Цель преобразования проецирования — определить объем видимости, используемый в лвух случаях. Объем видимости устанавливает, как объект отображается на экран (посредством перспективного или ортогонального проецирования), и определяет, какие объекты илн части объектов отсекаются в окончательном изображении. Вы можете представить, что точка обзора находится в одном конце видимого обьема. Возможно, будет полезно перечитать раздел «Пример: рисование куба» на предмет преобразований, включая преобразование проекции.

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

Команда к)Е газ спи О, определявшая усеченную пирамиду, вычисляет матрицу перспективной проекции и перемножает ее с текушей матрицей (обычно единичной). Напоминаем, что объем видимости предназначен для отсечения всех объектов, лежаших вне его. Четыре грани пирамиды, ее вершина и основание определяются шестью плоскостями отсечения объема вссдссмости, как показано на рис.

3.13. Объекты или пх части, находящиеся вне этих плоскостей, отсекаются в окончательном изображении. Функция к)ггвзгвпо не требует, чтобы видимый объем был симметричным. тосд я)Р гозсвпс(СИопЫе (е(г, Сссс)опЫе пцйг, Сс.с)оцЫе Ьопот, СИопЫе гор, С) сссгпЫе пеаг, С1 сйшЫе/аг); Создае~ матрицу для усеченной пирамиды и умножает на нее текущую матрицу. Обьем видимости в виде усеченной пирамиды определяется аргументами в следуюшем порядке: (1е/г, Ьоггот, -пеаг) и (пй)сг, гор -пваг) задают координаты (х; у, г) левос.о нижнего и правого верхнего углов ближней плоскости отсечения соответственно; а пеаг и ~аг уточняют расстояние от точки обзора до ближней и дальней плоскостей отсечения.

Они должны быть положительными. Усеченная пирамида получает задаваемую по умолчанию ориентацию в трехмерном пространстве. Матрица проекций дает возможность выполнить некоторый поворот или перенос для изменения этой ориентации, но это сложно, и почти всегда можно без такого обойтись. Преобразования проецирования 121 Рис. 3,13. Определение объема видимости с помощью функции д)Ршвшю() ПРИМЕЧАНИЕ Усеченная пирамида не обязана быть симметричной, и ее ось не обязательно должна быть параллельна оси т. Например, д)Ргцэюгп0 сработает и для рисования изображения, получаемого при взгляде в прямоугольное окно, когда окно располагается выше, левее наблюдателя или под углом к нему.

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

Тогда разрежем основание видимого объема на четыре части, используя усеченную пирамиду, которая заполняет весь экран одной четвертой частью иэображения, и выполним четыре рисования. Пиксельные данные каждого квадранта формируют соответствующую часть изображения высокого разрешения, собираемого в конечном итоге. (Ом, главу 8 для получения информации о чтении пиксельных данных.) Хотя, в общем, функция к1Р го зтцж () умозрительно понимаема, она не является понятной на интуитивном уровне. Есть аналогичная по целям функция СШ к1црегзресс)че(), которая создает тот же объем видимости, что п функция х1Ргцзсцм0, но другим способом.

Вместо определения углов ближней плоскости отсечения берутся угол поля зрения (0), как показано на рис. 3.14, в направлении у, в отношение ширины к высоте (хггу). (ясно, для квадратной части экрана отношение сторон равно 1.0.) Этих лвух параметров достаточно для задания неусеченной ннрамилы, ориентированной вдоль линии взгляда, как показано на рнс.

3.1гь уоЫ к)црегзресс1уе(С(х)оцЫеуоюу, С)к)оцЫе азресд С(х)оцЫе пеаг, С)х)оцЫе )ог); Создает матрицу для симметричной усеченной пирамиды и умножает на нее текущую матрицу. Значение аргумента /ору — угол поля зрения в плоскости уд Его значение лежит в диапазоне [0.0, 180.0]. Аргумент аятесг определяет соотношение сторон усеченной пирамиды — ширины к высоте. Аргументы пеаг иуагуказывают расстояние между точкой наблюдения и плоскостями отсечения по оси г. Их значения всегда положительны.

Усекается пирамида заданием расстояния между точкой наблюдения и ближней идальней плоскостями отсечения. Функция к1црегзрест1уе() умеет создавать 122 Глава 3 ° Визуализация только усеченные пирамиды, симметричные относительно осей х и у, ориентированные по линии взгляда, но обычно этого достаточно. Рмс. 3.14. Определение объема видимости с помощью функции вмРегвресбуе() Так же, как и в случае с я1Егцэтцв(), здесь допустимо изменить ориентацию объема видимости по умолчанию, с помошью вращения или переноса.

По умолчанию наблюдатель считается помещенным в начало координат, а линия взгляда — направленной вдоль отрицательной оси г. При использовании функции я1цРегврест1уе() нужно задать правильные значения для поля зрения, иначе изображение будет искажено. Чтобы выяснить, какие значении поля зрения правильны, ответьте на вопрос: как далеко обычно глаз располагается от экрана и насколько велико окно? Затем вычислите угол, соответствуюший таким размерам и такому расстоянию. Наверняка он меньше, чем можно было предположить. Для сравнения: 94-градусное поле зрения с 35-миллиметровой камерой требуют 20-миллиметровых линз, которые являются широкоугольнымп. (См.

раздел «Проблемы преобразованияь этой главы.) Конечно, ОрепСь все равно, дюймы это или миллиметры. Проецирование и другие преобразования, по сути, безразмерны. Если вам нравится думать, что ближняя и дальняя плоскости отсечения располагаются на расстоянии 1.0 и 20.0 метров, дюймов, километров или парсеков — это ваше право. Главное — использовать одинаковые единицы измерения. Тогда конечное изображение будет с правильными пропорциями. Ортогональное проецирование При ортогональном (прямоугольном) проецировании объем видимости представляет собой прямоугольный параллелепипед, или коробку (рис. 3.15).

В отличие от перспективного проецирования размер объема видимости не изменяется от одного конца к другому, н расстояние от камеры не влияет на размер объектов. Этот тип проецирования применяется в архитектурных чертежных приложениях и системах автоматизированного проектирования, где необходимо знать реальные размеры объектов и углы между ними. Преобразования проецирования 123 юр (аг К точке просмотра Рис.

3.1Б. Ортогонапьный объем видимости команда К10 г с по () создает ортогональный параллельный объем видимости. так же, как и в функции к1р го этиа(), задаются углы ближней плоскости отсечения и расстояние до дальней плоскости отсечения. чоЫ К10гтпо(С(.г(опЫе 1еД СМопЫе пдйг, СИопЫе Ьоггоя, С) ОопЫе гор, СМоиЫе пеап С1.бопЫе)'аг); Создает матрицу для ортогонального объема видимости и умножает на нее текущую матрицу. Аргументы (1е)д Ьоггот, -пеаг) и (ттдЬА (ор, -пеаг) определяют точки на ближней плоскости отсечения, соответствующие левому нижнему и правому верхнему углам окна просмотра. Аргументы (1еД Ьог(от, -)аг) и (щ60 Го)т, -/аг) определяют точки на дальней плоскости отсечения, которые соответствуют тем же проецируемым углам окна просмотра. Аргументы пеаг и )аг могут быть положительными, отрицательными и равными пулю, но не одними и теми же.

Характеристики

Тип файла
PDF-файл
Размер
56,35 Mb
Тип материала
Высшее учебное заведение

Список файлов учебной работы

Свежие статьи
Популярно сейчас
А знаете ли Вы, что из года в год задания практически не меняются? Математика, преподаваемая в учебных заведениях, никак не менялась минимум 30 лет. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6376
Авторов
на СтудИзбе
309
Средний доход
с одного платного файла
Обучение Подробнее