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

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

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

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

Также присвойте значение 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); Изображение выглядит приемлемо, даже если его элементы «движутся» с различными скоростями или если некоторые из них ускоряются.

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

10.2. Разнытие объекта при движении Глубина резкости На фотографии, полученной с помощью фотоаппарата, в фокус попада)от тольке элементы, принадлежащие плоскости, удаленной на определенное расстояние от пленки. С удалением элемента от этой плоскости его четкость снижается. ГлуЫ лой резкости ((1ер(Ь о( ВеЫ) в терминах фотографии называется область рядом с фокальной плоскостью, где потерей четкости можно пренебречь. В нормальных условиях все, что рисует Ореп(.'), всегда находится «в фокусеь (если у вас хороший монитор, вы могли это заметить). Буфер накопления может быть использован для приближения к картинке, которую вы увидели бы, будь Буфер накопления 411 взображение сформировано фотоаппаратом, где элементы тем больше размыты, зем далъше они находятся от фокальной плоскости. Это не точное моделнровааае съемки фотоаппаратом, а приближение к нему, Чтобы достигнуть этого резулътата, повторите многократно рисование сцены, вызывая б1Егцэтци() с различными значениями аргументов.

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

Список файлов книги

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