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

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

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

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

' Допустим, необходимо написать графический редактор и в нем имитировать кисть для сгущения красок, когда каждый мазок добавляет немного больше ' цвета к текущему цвету изображения (скажем, 10 % цвета на 90 % изображения прн каждом приходе). Для этого изображение рисуется кистью с А - 10 %, зфакторы влияния устанавливаются в 61 5РС АСРНА (для источника) и 61 РИЕ М1М05 5МС АСРНА (для получателя), Кроме того, можно изменять альфа- ' значение внутри следа для того, чтобы придать ему свойство сглаживания, кода кисть добавляет больше цвета в центре и меньше по краям (см.

раздел «Сглаживаниеа). Точно так же создается ластик путем установки цвета стирания в цвет фона. Функция смешивания, которая использует цвета источника и получателя— значения 61 Р5Т СОСОМ или 61 ОМЕ М1МР5 Р5Т СОСОМ для коэффициентов 206 Глава 6 «Смешивание, сглаживание, туман и отклонение источника и 6С 5КС СОСОЯ нли 6С ОМЕ М1МО5 5кС СОСОМ для коэффициентов получателя, — позволяет корректировать каждый компонент цвета в отдельности.

Эта операция эквивалентна применению простого фильтра; так, умножение красной составляющей на 80 %, зеленой составляющей на 40 %, а синей составляющей на 72 % имитирует просмотр сцены через светофильтр, блокирующий 20 % красного света, 60 % зеленого и 28 % синего. ° Предположим, что нужно нарисовать рисунок, составленный из трех полупро.

зрачных поверхностей на залитом фоне, частично перекрывающихся. Пусть самая дальняя поверхность пропускает 80 % цвета за ней, следующая пропус. кает 40 %, а ближняя — 90 %. Для получения этого изображения сначала рисуется фон с факторами влияния источника и получателя по умолчанию, затеи меняем коэффициенты смешивания на 6С 5КС АСРНА (для источника) Я. ОМЕ Н1МО 5 5 КС АС РНА (для получателя). Теперь рисуем дальнюю поверхность с А - 0.2, затем промежуточную поверхность с А = 0.6 и наконец ближнюю поверхность с А - 0.1. ° Если ваше оборудование имеет альфа-плоскости, можно построить объекты один раз (включая их альфа-значения), вернуться назад, а затем выполнить требуемые операции матирования и компоновки на уже полностью построен. ных объектах.

(Пример использования этой техники см. в работе Тома Даффд Сотрояд(лй .Ю Яелдегег1 1та8ез (труды конференции 81СОКАРН, 1985, с. 41 — 44.) Объекты, составляющие изображение, могут быть получены из различных источников: они могут быть построены командами Орепб), при помощи технологии трассировки лучей илн метода излучательности, реализованных в других графических библиотеках, или могут просто являться сканированными копиями. ° Задавая различные значения альфа-компонента для отдельных фрагментов изображения, можно создавать растровые изображения непрямоугольной формы. В большинстве случаев для этого нужно обнулить альфа-значение каждой «невидимой» части н присвоить максимальное (1.0) каждому непрозрачному участку.

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

Этот метод, иногда называемый «обшивкой» (Ь1!!Ьоагг(1п8), работает быстрее, чем конструирование дерев» из «трехмерных» многоугольников. Пример приведен на рис. 6.1, где дерево является одиночным прямоугольником, способным вращаться вокруг оси ствола, как показано с помощью контуров, причем оставаясь всегда обращен. ным «лнцом» к наблюдателю.

(См. раздел «Функции текстур» главы 9 для получения более подробной информации о смешивании текстур.) ° Смешивание также применяется для сглаживания (ап11а11аз1п8), под которыя понимается технология, «разглаживающая» шероховатости во внешнем виж примитивов, рисуемых на растровом экране. (См. раздел «Сглаживание» ддз получения дополнительной информации.) Смешивание 207 г 1 М 1 1 1/ Рис. 6.1. Создание непрямоугольного растрового изображения Пример смешивания Листинг б.2.

Пример смешивания: а(р))а.с ттат)с зот (еттрт гзт = 6( ТНЧЕ; /' Инициализируем еункцно смешивания "/ иаыс чозо зпт'т(чете) ( В(Епао)е(6( ВСЕМВ); В(В1епвгцпс(6( 5ЙС АСРНА, 6Е ОМЕ Н)М05 5ВС АСРНА); 915навеноде!(6С Р(АТ); 91С1еагСа1ог(9.9, 9.9, 9.0, 9.0); о ттат!с чотп Оган(етттг!ап91е(чоттв) ( /' Рисуем желтый треугольник в левой части экрана '/ 11Вейтп(6( Тй)АМВСЕ5); В(со(огат(1.0, ).Е.

9.0, 9.)5); 91чегтехзт(9. 1, 0.9, 0.9); 91Чегтехзт (Е. 1, О. 1, 9, О); 91Чегтехзт(9.7, 0.5. 0.0); М (е (Я продолжение вх Программа, представленная в листинге 6.2, строит два перекрывающихся тре- рольника, со значениями альфа-компонента 0.75, Смешивание включено, а фак- торы влияния источника и получателя установлены в 6( 5КС АЕРНА и ОС ОМЕ В(Н05 5КС АЕРНА соответственно. При запуске программы слева появляется желтый треугольник, а затем справа рисуется циановый треугольник таким образом, чтобы они перекрывались в цен- тре окна и циан смешивался с изначальным желтым цветом. Смена порядка рисо- мния треугольников производится с помощью клавиши Е. 208 Глава б ° Смешивание, сглаживание, туман и отклонение Листинг 6.1 (лро(Толженые) 81Епб(); ) всат!с чо!б бгаий!Влттг!ап81е(чо!б) /* Рисуем ивановый треугольник в правой части экрана '/ 818ев!п(61 Т81АМ6(Е5); 81со1ог4((9.9, 1.9, 1.0, 0.75); 81ЧегсехЗТ(О.Э, 9.9, 8.8); 81Негсех)Р(8.3, 9.5, 9.0); 81ЧегсехЗТ(9.9, 8.1, 0.0): 81Епб(); чо!б б!вр1ау(чо!б) ( 8161еаг(61 Со(08 ВЧРЕЕК В!Т); !Т (1ет(Р!гэ1) ( бгаисетстг!апй)е(); бгаий!'8леТг!апй1е() ) е1ве ( бгаий!Олстг!ап81е(): бган(е(1тг!ап81е(): ) 81Р)овл(); ) чо!б гевпаре(!пс и, !пс П) ( 81Чтеирог1(8, 8, (6(э!Те!) и, (6св!ае!) П); 81иа1г!хиобе(6С РКО)ЕСТ108); 811оаб1беп(1(у(): (и <= и) 81овгспо20(9.9, 1.8, 9.8, 1.8'(6(Т1оа1)П/(6((1оа1)и); е1эе 81овгспо20(8.8, 1.9*(61(1оа1)и/(6((1оас)П, 8.0, 1.0); ) чо!б кеуьоагб(опв!Впеб сваг кеу, зпс х, !пс у) ( эи11сп (Хеу) саве '1': саве 'Т' 1етср!гвс = (1ет(Р!гэс; 81о(Ровскеб! вр1ау(): Ьгеах; саве 27: /' Клавиша Еэс '/ ех11(0); Ьгеах, бетаи11: Ьгеа)с; ) ) Смешивание 209 )а( на\ п(1п1 агхс, спаг** агвч) ( В1н(1п(1(загвс, агхч); а1н(1п! гвг ар1аунове(О(ОТ 51МОГЕ ( 6(ОТ ЙОВ); В1н11п( (И(пнои5(ге(200, 200); х1нтсгеасеи!пони(агвч(0]): (п1'1(); а1н(яеавареЕнпс(геапаре); а1н(хеуноагорнпс(кеуЬоагс); а)н(вгвр)аугнпс(оц ар(ау); В1н(иа!пгоор О: ге(нгп 0; Последовательность рисования треугольников влияет на цвет пх пересечения.

Вслучае, когда сначала рисуется левый треугольник, цпановый фрагмент (источВвк) смешивается с желтым фрагментом, который уже хранится в видсобуфере (получатель). Когда же первым рисуется правый треугольник, желтый наклады'аается на циан. Так как значения альфа-компонента равны 0.75, реальный коэффициент смешивания равен 0.75 для источника и 1.0 — 0.75 = 0.25 для получатеаа. Другими словами, фрагменты-источники слегка прозрачны, и они оказываю~ (влыцес влияние на конечный цвет, чем фрагменты-получатели. трехмерное смешивание с использованием буфера глубины )(ак было показано в предыдущем примере, порядок отрисовки многоугольников оказывает существенное влияние на результат смешивания.

При рисовании трсхкерных полупрозрачных объектов результат зависит от способа рисования много)(ельников — от задней грани к передней или от передней к задней. При опрсдемвии правильной последовательности необходимо также учесть эффект буфера глубины. (См. раздел «Удаление невидимых поверхностей» главы 5, а также пг, раздел «Тест глубины» главы 10.) Буфер глубины хранит расстояние от точки бозора до части объекта, занимающей заданный пиксел окна на экране. Если данаий пиксел принадлежит еще и другой части этого или другого объекта, он будет о)хранен только в том случае, если текущий объект находится ближе к наблюдаплю; тогда значение в буфере глубины изменится. Таким способом выявляются аеавдимгае (или скрытые) части поверхностей, не подлежащие рисованию и кочерме, соответственно, не используются при смешивании.

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

Однако если прозрачный объект находится ближе, его нужно шегнать с непрозрачным объектом. Конечно, можно определить должный поря(ох рисования многоугольников, когда сцена неподвижна, но при перемещении )вблюдателя или объекта эта проблема вырастает в практически неразрешимую. 210 Глава 6 ° Смешивание, сглаживание, туман и отклонение Решение кроется в использовании буфера глубины в режиме «только для чтения» при рисовании прозрачных объектов. Сначала рису!отея все непрозрачные объекты в обычном режиме доступа к буферу глубины. Затем устанавливается запрет на изменение значений в буфере глубины. Когда рисуются прозрачньн обьекты, их глубина также сравнивается с сохраненными в буфере значенияма для непрозрачных объектов, то есть прозрачные объекты не рисуются, если расположены за непрозрачными.

Если же они ближе к точке обзора, это не отбрасывает непрозрачные объекты, так как буфер глубины не может быть изменен. Для управления режимом доступа к буферу глубины предназначена функция а10ер(ПИ а за () . Если в качестве аргумента ей передать значение 61 РАЕ 5 Е, буфер переходит в режим етолько Лля чтения», а значение 61 Тй()Е восстанавливает нормальный режим, разрешая запись. Пример использования этого метода для рисования непрозрачных и прозрачных трехмерных объектов приведен в листинге 6.3. В данной программе клавиша а переключает последовательность анимации ца состояние, где прозрачный куб перемешается через непрозрачную сферу.

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

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

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

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