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

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

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

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

Для нахождения более общего решения проблемы разбиения рассмотрим произ- вольную поверхность, определяелгую двумя параметрами, и]0] и и]1]. Допустим, имеется две функции: чгд б авгс(61(1оа! в[2], 6сг!Оаг чегсех(3], 6сг!Оа! погаэ![3]); (1оаг свГЧ(6ьг!оа! О[2]); При передаче и]] в качестве аргумента функции за г Г () возвращается соответствующая трехмерная вершина и вектор нормали (длиной 1). Если и~] передается функции с вгч(), вычисляется и возвращается кривизна поверхности в данной точке. (См. учебник по дифференциальной геометрии для получения информации о вычислении кривизны.) Листинг 2.21. Обобщенное разбиение ча(б 5ОЬб]ч(бе((1оа! О1[2], г!Оас О2[2], Г!Ьа! вЗ[2], Г1оат со!о!с, !ППХ бер!Ь) ( 6!(!оаг ч1[3], ч2[3], чЗ[3], п1[3], п2[3], пЗ[3]; 6сг!Ьа! О12[2], О23[2], О32[2]; 6Е!и! !; (! (берса == вахберсь свгч(в2) < 5ОГ((О1, ч1, п1); 5вгг(О2, ч2, п2); 5вгг(ОЗ. чз, пз); а!Век(п(6! РОЕт60Н); К!Но/на!Згч(П1); Б!Ногаа!Згч(П2); Х!Ногае!Згч(ПЗ); В!ЕПОО; ГЕ!ОГП; (свгч(О1) < сосо!с Йа свго(Г аа свгч(ОЗ) < св!ОГ!)) [ х!Нег!ехЗЕч(ч1); Х!Нег(ехзгч(ч2); Х!НегсехЗтч(чЗ); ) (ог (! = О; ! < 2; ]++) ( О12[5! = (О1[ч! + О2[!])/2.0; в23[5] = (О2[5! <ОЗ[(])/2.0; О31[!] = (ОЗ[З] +О1[(])/2.0; 5ОЬб/ч]бе(О1, О12, в31, 5ОЬбзч(бе(О2, О23, О12, 5ОЬб(ч(бе(ОЗ, О31, О23, 5ОЬб(ч(бе(О12, О23, О31 св!Ьг(, бер!Ь+1); свсогт, бер!Ь+1); св!О(Г, берть+1); св!Отг, берть+1) Листинг 2.21 показывает рекурсивную процедуру разбиения треугольника до тех пор, пока не достигается максимальная вложенность или максимальная кривизна в трех вершинах не станет меньше некоего предела.

Визуализация Прочитав эту главу, вы сможете: е Просматривать геометрическую модель в любом положении, осуществляя преобразования в трехмерном пространстве ° Управлять местоположением наблюдателя в трехмерном пространстве ° Удалять ненужные части модели из сцены ° работать с набором матриц, которые управляют изменениями модели, и проецировать модель на экран ° Осуществлять групповые трансформации для имитации сложных систем в движении, таких как солнечная система или рука робота ° Обращать результаты конвейера геометрической обработки Визуализация 97 В главе 2 было рассказано, как с помощью ОрепС1. строить геометрические модели для вывода на сцену.

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

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

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

Представьте модель в - некоторой 30-вселенной, находящейся внутри вашего компьютера, и доверьте последнему работу по прорисовке нужных пикселов. Совокупность трех операций позволяет компьютеру преобразовать координаты трехмерных обьектов в положение пикселов на экране: ° Трансформации, реализуемые умножением матриц, в том числе моделирование, визуализация и проецирование. К таким операциям относятся врашение, перемещение, масштабирование, отражение, ортогональная и перспективная проекции.

Сцена строится с помошью комбинации нескольких операций. ° Так как сцена рисуется в прямоугольном окне, объекты (или части объектов), оказывающиеся вне этого окна, должны быть отсечены. В трехмерной компьютерной графике отсечение происходит путем отбрасывания объектов, находящихся за плоскостью отсечения. В конечном итоге должно быть установлено соответствие между преобразованными координатами и пиксслами на экране. Этот процесс называют преобразованием окна просмотра (ч1еп рогг). . Перечисленные операции и методы управления ими описываются в следующих асновных разделах данной главы: 98 Глава 3 ° Визуализация ° Обзор: аналогия с камерой.

Дает представление о процессе преобразования через аналогию с процессом фотографирования. В этом разделе представлен простой пример программы, которая преобразует объект, н кратко описываются основные команды преобразований в ОрепС!.. ° Команды преобразования общего назначения. ° Модельно-видовые преобразования. Подробно объясняет, как определить и представить результат модельно-видовых преобразований. Эти преобразования устанавливают взаимное расположение модели и камеры для получения желаемого результата. ° Преобразования проецирования. Описывает, как задать форму и расположение видимого обьежа (ч1еччпя чо1шпе).

Видимый объем определяется согласно тому, как сцена проецируется на экран (в перспективной или ортогональной проекции) и какие выступающие за этот объем части объектов отсекаются. ° Преобразование окна просмотра. Рассказывает, как контролировать преобразование координат трехмерной модели в координаты на экране.

° Проблемы преобразований. Дает несколько советов, как поступить в случае, если вы нс можете получить желаемый эффект при моделировании, просмотре, проецировании объектов и вписывании их в окно просмотра. ь Управление стеком матриц.

Обсуждает, как сохранить и восстановить какие- либо преобразования. Это особенно полезно, когда вы рисуете сложные объекты, состоящие из более простых элементов. ° Дополнительные плоскости отсечения. Описывает, как определить дополнительные плоскости отсечения, кроме определенных видимым объемом. ° Примеры объединения нескольких преобразований. Продемонстрирует вам несколько более сложное использование преобразований. ° Изучив раздел «Обратные, или имитационные, преобразования», вы узнаете, как из оконных координат точки получить первоначальные координаты объекта. Само преобразование (без инверсии) также может быть эмулировано.

Дополнительно в ОрепС1. версии 1.3 были добавлены новые функции для поддержки развертывания матриц по строкам, а не по столбцам (транспонирования, в терминах ОрепС1.). Обзор: аналогия с камерой Процесс преобразования, подготавливающий изображение желаемой сцены, сходен с фотографированием.

Как показано на рис. 3.1, шаги при работе с фотокамерой (или компьютером) могут быть следующими: 1. Установить штатив и направить камеру на сцену (видовое преобразование). 2. Подготовить фотографпруемую сцену в нужной композиции (модельное преобразование). Обзор: аналогия с камерой 99 3. Подобрать объектив или отрегулировать масштабирование (преобразование проекции). 4. Определиться с размером конечной фотографии, например, вы можете захо- теть ее увеличить (впнсывание в окно просмотра). После того как все этапы выполнены, изображение может быть зафиксировано кли сцена нарисована. Фотокамера Компьютер Рис. 3.1.

Аналогия с камерой 100 Глава 3 ° Визуализация Обратите внимание, что эти шаги соответствуют последовательности, в которой вы определяете необходимые преобразования в вашей программе, а не обязательно в последовательности, в которой над вершинами объектов выполняются важные математические операции. Видовые преобразования должны предшествовать модельным в коде, но можно определить проекцию и видовое преобразование в любой точке перед началом рисования. Рисунок 3.2 показывает порядок, в котором эти операции происходят на вашем компьютере. Оконныа координаты Рнс. 3.2, Стадии преобразования вершин Чтобы определить видовое, модельное и проекционное преобразования, мы создадим матрицу М размерности 4 н 4, которая затем будет умножаться на координаты каждой вершины ч в сцене для осуществления преобразования: и' =Мы (Помните, что вершины уже имеют четыре координаты (х, у, г, ш), хотя в большинстве случаев ге = 1, а для двухмерных данных г - О.) Обратите внимание, что видовое и модельное преобразования автоматически применяются к векторам нормали к поверхности, дополнительно к координатам вершин.

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

Затем выполняется деление по перспективе путем деления значений координат на ге для получения нормализованных Обзор: аналогия с камерой 101 координат устройства. (См, приложение Е для получения дополнительной информации о значении т-координаты и ее влиянии на матричные преобразования.) Наконец, преобразоваш<ые координаття переводятся в оконные координаты в ходе преобразования окна просмотра. Изображение при этом сжимается или растягивается. Можно предположить, что координат х и у достаточно для определения точек, отображаемых на экране. Однако все преооразовання выполняются также и над координатой г.

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

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

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

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