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

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

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

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

-8.25); 8>оСРо»СК«01»рсау(>; Ьгеах; сазе 8>на(г>хноее (00 НОЬЕСЧ>ЕМ>; 81тгап»1аСеч (0.8, 0.8, 8.25); 810СРозтаее)эр1ау(>: Ьгеах: сдхе 27: ех1С(8); Ьгеах; Ее(ам>С: Ьгеах; Параметры точки В некоторых случаях требуется нарисовать объекты, напоминающие маленькие круги или сферы, не обращаясь к помощи неэффективных полигональных моделей.

Например, в авиасимуляторе рисуются посадочные огни — при приближения самолета к взлетно-посадочной полосе посадочные огни становятся больше и арче. Или в системах частиц — при рисовании капель жидкости (таких как дождь лли в видеоиграх — брызги крови) необходимо моделировать соответствующие им явления. Посадочные огни или капли жидкости можно нарисовать с помощью точечных примитивов, если изменять видимый размер и яркость точек. Сглаженные точки Лают функции к1РЬ(пС5>те() и 51Епав(е(бс Р01МТ 5МООТН); это, конечно, шаг относительно решения, обыгрывающего расстояние туманом.

Вместе с тем функмкя к1Р01пт5)хе() неприменима внутри операторных скобок к1Век>п()/ 11100(), поэтому приходится перерассчитать размер точек «на лету», а затем, )вди улучшения производительности, перегруппировать точки исходя из размера. Элегантное решение автоматического изменения размера точечных примитивов и, прн необходимости, их яркости на основе информации о расстоянии до точки обзора предлагает управление параметрами точек. Для задания коэффициентов )равнения изменения размеров точек и их альфа-составляющих (управляющих хркостью) применяется функция к1Ро(пСРагавесегт«(). чоЫ 51Р01пСРагааегегг(СЕепшприате, С) Поа(рахат); чу 51РЬ> пС Рог веет е гтч(С1епшп рпате, С1йоа( "рахат); Устанавливает значения, связанные с рисованием точечных примитивов. Если рпате равно Ос Р01МТ 015ТАМСЕ АТТЕМОАТ10М, то параметр рахат представляет собой массив из трех значений вещественного типа (а, Ь, с), содержа- 234 Глава б ч Смешивание, сглаживание, туман и отклонение Ших коэффициенты константного, линейного и квадратичного изменения раз мера и яркости точки на основе расстояния, заданного в координатах глаза, Ы 1 г(егшег)5(зе = с!атр яге х '1 а+ Ь х с(+ с х с(' у Если значение рпате равно 6К РО)МТ 51ЕЕ НТМ или 6К РОТМТ 512Е МАХ значение рогат устанавливает пороговое значение (нижнюю или верхню границу соответственно), используемое предыдущим выражением для ограничения вычисленного размера точки, Если включена мультивыборка н значение рвоте равно 6К РАОЕ ТНМЕ5НОКО 5)ЕЕ, то рогат задает различные нижние границы (пороговые значения) размера точек.

Если г!егтэег)5ие с глгезйоЫ, вычисляется коэффициент !аде для корректировки альфа-значения точки с целью уменьшения ее яркости; ( г(епэеоэ)зе )аде =~ ~ ЙгезлоЫ В случае 6С Р01МТ 015ТАМСЕ АТТЕМОАТ10М расстояние вычисляется аналогично коэффициентам ослабления локальных источников света. В листинге 6.10 приведена программа, в которой клавиша с, (или О перекл)очает уравнение ослабления между постоянным, линейным и квадратичным коэффициентами. Нажатие клавиши Е или Ь перемещает наблюдателя вперед или назад, что увеличивает иля уменьшает точки в линейном или квадратичном режиме ослабления. Листинг 6.10. Параметры точки: ро)п(р.с есат)с 6Е(1оат соле(апс(3) = (1.8, 8.8, 0.8); ета(~с Ост1оас 1)пеаг(3) = (О.О, 8.12, 8.8); 5(ас(с 6К()оат оваага((с(5) чо!Е КеуЬоаго(ипэгвпео спаг Кеу, )пС х, )пг у) ( еи(ссП (Кеу) ( сазе 'с': 81Ро(псрагааесег(ч (6С РО)МТ ШЕТАМСЕ АТТЕМОАТ)ОМ, сопегапт); 81осРое(аеЕ!ер1ау(); ЬгеаК; сазе '1': 81РЬ~ПСРагаеетегтч(6К РО)МТ 015ТАМСЕ ЯТТЕМОАТ!ОМ, 1)пеаг); 81и(Роз(аеотер1ау(): Ьгеак; сазе 81Ра(пСРагапееегтч(6К РО)МТ 015ТАМСЕ АТТЕМОАТХОМ, Ччаогае(с); 81о1Роесае015Р1аУ(); ЬгеаК; сазе 'Ь': 81насг(хноое(6( МООЕ(Ч)ЕИ); 81тгэпе1асе((8.8, 8.0.

-0.5): 81ЬСРаеСаеЕ(ер!ау П: Ьгеак; сазе 81йатг(хноое(6С НООЕ(Ч)ЕИ); 81тгап51асет(8.8. 0,0, 0.5); Отклонение многоугольников по глубине 235 1!п(Рпагяегм ар!ау О: ьгеах; Когда ослабление линейное или квадратичное, перемещение глаза слишком Елвзко к точке может дополнительно увеличить выработанный диаметр точки— хелением оригинального размера на правильную дробь. Для ослабления или предотвращения этого эффекта пользуйтесь постоянным коэффициентом ослабления или добавьте ограничивающие значения с помощью 6Е РО?МТ 51?Е ИАХ. Ви наверняка захотите получить круг, а не квадрат, поэтому надо включить сглаживание, как описано в разделе «Сглаживание точек или линийм Следующие ~троки кода делают зто: 1!Епаые(6Ь РО1МТ 5ИООТН); 1!Епаше(66 В(ЕМО); 1!В!«ппгппс(6Г 5ЯС АЬРНА, 6Ь ОКЕ И1МВ5 5аг А(РНА); Отклонение многоугольников по глубине В(ли требуется выделить цветом границы сплошного объекта, можно нарисовать пп с помощью многоугольника в режиме 6Е Р?Ес, а затем повторить рисование, ию уже с другим цветом и в режиме 6Е 1? МЕ.

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

(Вуфер трафарета, описанньгй в разделе «Тест трафарета» главы 10, также годити для устранения стежков. Однако отклонение всегда работает быстрее.) Отклоианяе также применяется при маркировке поверхностей, рисовании изобраханяй с улалением невидимых линий. Эта технология применима не только алхвяям и закрашенным многоугольникам, но и к точкам. Ордествует три различных способа отклонения, по одному для каждого типа распризации: 66 Р?Е6, 61 Е?МЕ и 66 Р01МТ.

Режим отклонения включается с помов»в функции я!Епав!е() со значениями аргумента 66 РОЕу60М ОЕЕ5ЕТ Е?Ы., 6( РОЕУ60М ОЕР5ЕТ Е?МЕ или 61 РОЕУ60М ОГР5ЕТ Р01МТ. Кроме того, необхоо вызвать функцию я! Ро?уяопмобе () для выбора текущего способа растерия многоугольника. 236 Глава б ° Смешивание, сглаживание, туман и отклонение чок) б1 Ро1у боло у узет(СИ(оаг ~асгог, С1(1оаг ил1гз); Дополняет значение глубины каждого фрагмента вычисленным значением смещения. Смещение добавляется до теста глубины и перед записью значений глубины в буфер глубины.

Значение смещения о вычисляется по следующей формуле: о - т х Еасгог + г х цштз, где т — максимальное отклонение глубины многоугольника, а г — минимальное значение, гарантирующее получение видимого отличия в координатах окна. Значение г зависит от реализации.

Для сохранения хорошего качества сплошного объекта с выделенными цветом границами без появления каких-либо артефактов можно добавить положительное смещение к закрашенному объекту (отодвинуть его) или отрицательное смещение для каркаса (придвинуть его). Неминуем вопрос — какого смещения достаточно? К сожалению, ответ зависит от множества факторов, включая отклонение глубины каждого многоугольника и толщину линий каркаса. ОрепСЕ самостоятельно вычисляет отклонение глубины (рис. 6.5), но для правильного выбора значения параметра уасгог нужно представлять, что вкладывается в слова «угловой коэффициент глубины» (берги з1оре). Это — девиация г (глубины), деленная на девиацию координаты х или у вдоль многоугольника.

Значение глубины вычисляется в оконных координатах и ограничивается диапазоном 10, 11. Оценка максимального углового коэффициента (т в уравнении смещения) выполняется по формуле т= п1ах —,— Полнгон с оленью наклона» О Рис. 6.5. Многоугольники н нк угловые коэффнцненты глубины Для многоугольников, параллельных ближней и дальней плоскостям отсечения, угловой коэффициент равен нулю.

Для многоугольников с наклоном, близким Отклонение многоугольников по глубине 237 к нулю, требуется небольшое константное значение смещения. Чтобы его полу'цпъ, вызовите функцию к1РО1у копОГ тает () со значениями уас(ог = 0 0 и ил(уз - 1 О. Для многоугольников, образуюших болъший угол с плоскостями отсечения, угвовой коэффициент значительно больше нуля и, соответственно, требуется большее смещение. Небольшого, ненулевого, значения параметра 7астог, такого как 0,75 или 1,0, достаточно для получения значений глубины и устранения нежелаильных артефактов. В листинге 6.11 представлена часть кода, который с помошью списка отображекня (предположим, рисующего закрашенный объект) рисует объект с освещением, в режиме 6 С Е1 С С. Для смещения многоугольника параметры (астог и итуз заАаются равными 1.0 н 1.0. Эти значения гарантируют, что смещение будет цостаточным для всех многоугольников в сцене независимо от наклона.

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

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

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

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