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

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

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

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

д. После 6( КЕТОкИ должен проверить, петли у пользователя женання прервать процесс. Этот интерфейс немного медленнее, поскольку рсзультируюьцее изображение лолжно быть скопировано в видимый буфер после кажюго прохода. Выбирая п, вам следует найти компромисс между скоростью (чем большее колин(ство раз рисуется сцена, тем длиннее становится весь процесс) и качеством (чем большее число раз рисуется сцена, тем более удовлетворительней она вы- 406 Глава 10 ° Буфер кадров глядит, пока пе выработана разрешаюшая способность буфера). Описанный процесс иллюстрируется также цветными рисунками 22 и 23.

В листинг 10.2 включены две процедуры для «дрожания» и сглаживания сцены, которые могут оказаться вам полезным: ассРегзресс!че() и ассегизсинО, Процедура асс РегзрЕСС уче() используется вместо команды 81ирегзресС! че(), первые четыре аргумента обеих процедур одинаковые. Чтобы заставить «дрожать» конус угла зрения, укажите х и у (меньше одного пиксела) в качестве значений пятого и шестого аргументов ассрегзрестуче(). Также присвойте значение 00 седьмому и восьмому аргументам асс регзрес11че() и ненулевое значение девятому (с целью упреждения деления на нуль в асс рег брест ! че () ).

эти последние три параметра используются для получения эффекта резко очерченного пространства (глубины резкости), описанного ниже в этой главе. Листинг 10.2. «Дрожание» объектов сцены: ассрегзр.с №бе1!пе Р1 3.14159265358979323846 чо!б ассгги»Сии(6(боиЫе 1е1С, 6(боиЫе г!8ЬС, 6(боиЫе Ьоггам, бьбоиЫе Сор, 6(боиЫе гйе»г, 6(боиЫе ггаг, 6(боиЫе р!хбх, бьбоиЫе р!хбу, 6(боиЫе еуебх, 6(боиЫе еуебу, 6(боиЫе 1оси») ( 6(боиЫе хи»!ге, ук»!ге; 6(боиЫе бх, бу; 6С!пС Ы еирогС[4); 816еС[пееаегч(бь Ч(ЕИРОКт, Ы е»РогС>; хи»~ге = г!8ПС - 1е1С; ун»1ге = Сор - ЬоССоеи бх = -(р1хбх'хмшгеl(6(боиЫе) ч!еирогС[2] + еуебх»гйеаг/1оси»); бу = -(р!хбу'ун»!ге)(6(боиЫе) ч!еирогг[3) + еуебу'сне»гуго«из); 81Магг!хМобе(6( РКО>ЕС110й); 81(оаб[бепС!Су(); 81еги»сип(1е11 » бх, г!Еьс + бх, ьоссоа + бу, сор + бу, гйеаг, геаг); 81М»Сг!хиабе(6( МООЕСН1ЕИ); 81(оаб[бепС!Су<>; 8(тгап»[агег(-еуебх, -еуебу, О.О); чо!б ассРегерессгче(6(боиые точу, бсбоиые азресс, бьбоиЫе гйеаг, 6(боиЫе гЕ»г, 6(боиЫе р!хбх, бьбоиЫе р!хбу, бьбоиЫе еуебх.

6(боиЫе еуебу, 6(боиЫе !оси») ( 6(боиЫе гоч2, [е(С, г! 8Ы, ЬоССом. Сор; 1оч2 = ((1очу'Р1 ) ! 180.8) / 2.8; Сор = гйеаг I (гса»(1оч2) I 1»1п(1оч2)) > Ьосгоп = -сор; г!8ЬС = Сор ' азресг; (е1С = -г!8Ы: ассггизги»(1е1С, г!8ЬС. ЬоССом, Сор, гйеаг, гЕ»г, р!хбх, р!хбу, еуебх, еуебу, 1оси»): Буфер накопления 407 В листинге 10.3 обе процедуры листинга 10.2 задействованы для сглаживания б(ены.

Ямстииг 10.3. Сглаживание сцены: ассрегвр.с ча!б !п(С(чо(б) ( 6[с]оаС ваС авь!епС[] = ( 1,0, 1.О, 1.0, 1,О ]; 6[с]оаС ва( аресисаг[] = ( 1.9, 1.0, 1.0, 1.0 ]; 6(ссоаС 1!Ей! рос(С!опЦ = ( 9.0, 0.0, 18,9, 1.9 ]; 61(1оаС 1в аво(епС[] = ( 0.2, 8.2, 0.2, 1.0 41мэсег(41(ч(6с Рйомт, 6с АМВ1емт, вас авь!епс); 11на(ег(а1(ч(61 РНОМТ, 6С 5РЕСОСАМ, ваС аРеси1аг); 41ка(ег(а1((6С РКОМТ, 61 5Н1М1МЕ55, 58.0); 111!Вне(ч(6С 116НТВ, 6С Р051Т10М, 1п ВПС роз! С! оп); 511(ЕЬСнобе1(ч(6С 116НТ НООЕС АНВ1ЕМТ, 1в аво(епС); 11Епао]е(61 С[6НТ1М6); 11Епао]е(61 116НТВ); 51(паосе(6С ОЕРти тЕ5т); 515иабенобе](61 РСАТ); 1161еэгсо1ог(9.8, 0.0, 0.0, 0.8); 5161еагАссив(9.

О, 0.0, 0.0, 0.0); ] чо(б б! ар1ауОЬ1ес С а (чо! б) ( 61(1оаС Согиа б!(Свае[] = ( 0.7. 0.7, 0.0, 1.0 ]; 61(соаС сиЬе б! (Свае [] = ( О. 8, О. 7, О. 7, 1. 9 ); 61(1оаС ариеге б!(свае[] = ( 0.7, 0,0, 0.7, 1.0 6[ыоаС ос(а б! (!чье[] = ( 8.7, 0.4. 0.4, 1.0 ): 51Риьииа(г]х(); 91тгапа1асег(8.8, 9.0. -5.0); 1)Ко(а(ег(39.8. 1.8, 0.0, 8.0); 11Риьпнагг(х(); 11тгапьсасе((-9.90, 0.35, 0.0); а[косасес(188.8, 1.0, 0.0, О.О); 51масег!а]сч(61 Ркомт, 6с 01РРО5е.

согиа б(стиве); 41иС5о1(отоспав(8.275, 0.95, 16, 16); 41Рориа(гзх(); а1Риапнаег(х(); 51тгапа1асес(-0.75, -0.59, 0.0): 5[ко(а(ес(45.9, 0.0, 0.8, 1,0); 5]Вега(е((45.9, 1.0, 0.9, 0.9); 11нэ(ег!а1(ч(61 РМОМТ, 6С 01РР05Е, сиЬе б(!свае); 51и15о1(бсиЬе(1.5): 11Рорна(г(х()'. 51Риьона(г(х()! 51тгапа1асег(8,75, 0.60, 9.0); продолжение .Р 408 Глава 10 ° Буфер кадров Листинг 10.3 (продолжение) 81йотате!(38.8, 1.0, 0.0, 0.8); 81Матег!а1(ч(СС ЕВОМТ, 6( 01РЕО5Е, ариеге б1!1изе),' 81иС5а1зб5РПеге(1,0, 16, 16); 81Рориатг(х(); 81РизПМатг1х(); 81Тгапз1ате1(0.70, -8.90, 0.25); 81Ма(ег1а1!ч(СС РВОМТ, СС 01ЕР05Е, оста б! [созе); 81иС5о1збостанебгоп(); 81РорМаСг(х(); 81рорМатг!х(); вбит(пе АС512Е В чотб б1зр1ау(чо!б) ( СЫпС чзенрогт[4]; [пС [1ССег; 816еС[п(евегч(СС у[ЕИРОйт, ч!еирогС>; В[С[еаг(СС АССОМ ВОРРЕй В[т>; тог Ц зССег = 8; >зССег < АС512Е; ] 1ССег++) ( 81С1еаг(6[ СОСОй ВОРРЕй 81Т [ 6С ОЕРТН ВОРРЕй В[Т); ассРегаресС(че(58.8, (ССбоиЫе) чзенрогС[2]/(6[боиЫе) чзеирогт[3], 1.8, 15.О.

>Вцзттег].х, >Вцзтеег].у, О.О, О.О, 1.8>; б(зр1ауоо)ес(в(); В)Ассов(СС АССОМ, 1.8/АС512Е>; ) В]ассии(61 йвтийи, 1.8>; 81Р1изп () > чо(б гезларе(1пС и, 1пС П) ( ВТЧ!еирогС(0, 8, (ССз!зе!) н, (ССз!ае!) П); ) /" Главный цикл ' Убедитесь в наличии запроса буфера накопления. '/ 1пС пазп(зпС агвс. слаг*" агвч) ( 81иС1п1С(вага<. агвч); 81иС1п(СО[ ар1аунобе(6СОТ 51М6СЕ [ ОСОТ й68 [ С! ОТ АССОМ [ ОСОТ ОЕРТН); 81иС1ю СИ>пбон51се(250, 250); 81иС1п1СИ!пбонРоз(1!оп(188, 100); 81иССгеа(еИ>пион(агвч[О]); !п1С(); 81итйеанареЕипс(гезларе); 81иС01зр1аурипс(б1зр1ау); В!и!на!п(оор(); ге!игл 8; Буфер накопления 409 ]]н не должны использовать перспективнусо проекцию для сглаживания сцены. 0/упенчатость сцены можно устранять с ортогональной проекцией, просто аызыия 81Тгал51ате«() для получения «дрожания».

Имейте в виду, что команда 11Тгапз\асе«() оперирует мировыми (счог]о) координатами, а вас интересуют нюрдинаты экранные. Таким образом, вы должны самостоятельно произвести а!Ответствующее преобразование, разделив вьюоту и ширину в мировых коордимтах на размеры области просмотра. Затем умножьте значение в мировых коорйнматах на интервал дрожания, чтобы «предсказать» максимальную величину 0(вмга — меньше 1 пиксела. Листинг 10.4 показывает, как выглядели бы процедуры 6[зр1ау() и ге 5 царе(), если бы ширина н высота в мировых координатах были равны 4.5. Лнстинг 10.4. «Дрожание» с помощью ортогональной проекции: ассапйзс нег(пе АС512Е 8 та[6 отзр1ау(чото) ( 61!пт чтеирогт[4]; !пт )тССег; 116ет!птенегч(6С Ч1ЕИРОМТ, ч(еирогС); 1161«аг(6С АССОМ ВОРРЕМ В!Т): (ог ()тССег = В; 1(ССег < АС512Е; )!Стет++) ( 81С1еаг(6С СОСОМ ВОРРЕМ 81Т ] 6С ОЕРТН ВОРРЕМ 81Т); 81РозПМатг!х(); /' Заметьте, что 4,5 — это расстояние в мировых координатах ' между левой и правой сторонами и между верхней и нижней.

' Зта формула преобразует движение пиксела от дробного значения ' к мировым координатам. 81ггапз1атет(18[1!ССег].х*4.5/чтеирогС[2], )8[)тССег).у'4.5/чтеирогС[3], В.В); 6!ар1ауоо1есСз(); 81РориаСгтх(); 81Ассом(6С АССОМ, 1.0/АС512Е); ) 81Ассом(6С МЕТОКМ, 1.0); 1[ыози(); и[6 геяьаре(!пт и, !пт П) ( 11чтеирогС(0, О, (6С5(2«!) и, (6С5!7«!) Л); 11Матг(хМоое(6( РРО)ЕСТ10М); 11(оа616«пт(ту(); (! (и <= и) 810гСПо(-2.25, 2.25, -2.25'П/и, 2.25'П/и, -10.0, 10.0); е1зе 810гтьо(-2,25'и/и, 2.25'и/П, -2,25, 2.25, -10.8, 10,0); 1[наегтхиоое(68 МООЕСЧ]ЕИ); 81(оа616епттту(): 410 Глава 10 ° Буфер кадров Размытие при движении Схожие методы могут использоваться для имитации размытия при движении, как показано на цветном рисунке 7 и на рис.

10.2. Пусть на вашей сцене присутствуют статические и несколько движущихся объектов, и вы хотите получить изображение с размытыми краями, как бы снятое за некоторый период времени. Настройте буфер накопления так же, как в предыдущем примере, но вл(есто «дрожания» изображения в пространстве заставьте его флуктуировать во времени.

Полная сцена может быть получена последовательным «затуханием» при вызове З)Асснж(бс НЭЬТ, десаугас1ог); Здесь сцена рисуется в буфер накопления, а г(есауГасгог — число в интервале от 0.0 до 1.0. Небольшие числа «периода полураспада» ьг(есауГасгог) заставляют обьект «двигаться» быстрее. Вы можете передать полную сцену, имитируя «испарение» с предшествующей позиции в буфере накопления, в стандартный буфер цвета с помощью вызова к)Асснж(6( абтсян, 1.0); Изображение выглядит приемлемо, даже если его элементы «движутся» с различными скоростями или если некоторые из них ускоряются.

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

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

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

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

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