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

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

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

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

9.9, 1.9); 91йестт(-9.5, -8.5, 9.5, 0.5); 81Р?цзп (); чотб КеуЬоагб(цпзтвпеб спаг Кеу, !пт х, )пт у) ( зн!Ссп (Кеу) ( саве 'а': сазе 'А': /" Цвета складываются: (1,1,9) + (9,0,1) = (1,1,1). ' В результате получается белый квадрат на желтом фоне '/ 9181епббцоат)оп(6с РЦМС АОО): Ьгеах; саяе 'з': сазе '5': /" Цвета вычитаются: (0,0,1) — (1,1,8) = (-1,-1,1) * После ограничения к (О, 8, 1) получается синий квадрат ' на желтом фоне '/ В?в?епбеццат!оп(61 Рцмс 508тйдст); Ьгеах: саве 'г'; саве 'й': /' Цвета вычитаются: (1,1,8) - (9,8.1) = (1,1,-1). " После ограничения к (1, 1, 9) получаем желтый цвет ' и для квадрата и для фона "/ 8191епбЕЦцат)оп(61 КОМС йЕУЕК5Е 5ЦВТКАСТ); Ьгеак; сазе 'ю': сазе 'Н'; /" Находится минимум по всем компонентам ° как [ю(п(1,8),ю)п(1,0),ючп(0,1)], что дает (0,8,9).

' Позтому имеем черный квадрат на желтом фоне */ 9191епбйцца((оп(61 Н1М); Ьгеай; сазе 'х': сазе 'Х': /* Находится максимум по всем компонентам * как [юах(1, 0), юах(1. 8), вах(8, 1)], что дает (1, 1 * Результат - белый квадрат на желтом фоне */ Смешивание 205 В)В)епЕЕцва(1оп(6( НАХ); ьгеад; сазе 17: ех1((0); Ьгеах; З(а(Роз(дев(зр(ау()( Область применения смешивания Не все комбинации коэффициентов источника и получателя имеют смысл.

Боль- шинство приложений нуждается в ограниченном наборе сочетаний. Ниже описатипичное использование некоторых комбинаций факторов влияния источни- дз в получателя. Некоторые из этих примеров требуют только входное значение мьфа-компонента, поэтому их работа не зависит от того, хранятся ли альфа-не- винны в буфере кадров. Как и везде, здесь обычно один и тот же результат дос- п(жвм различными способами. Один нз способов получения картинки, состоящей наполовину из одного изображения и наполовину из другого, — это установка коэффициента источника з 61 ОМЕ, а значения коэффициента получателя — в 61 1ЕкО, после чего рису- ' ется первое изображение.

Затем фактор влияния источника устанавливается з 6С 5МС АСРНА, а коэффициент получателя — в 61 ОМЕ М1М05 5ЯС АСРНА, в рисуется второе изображение с альфа-компонентом, равным 0.5. Эта пара " значений обычно используется для большинства операций смешивания. Если "' изображение должно состоять на три четверти из одного рисунка и на четверть из другого рисунка, сначала выводится первое изображение, а затем— второе с альфа-значением 0.25, Чтобы смешать три рисунка в равной пропорции, нужно установить коэффициент получателя в 61 ОМЕ, а коэффициент источника — в 6С 5МС АСРНА. За- . тем рисуется каждый рисунок с А = 0.3333333. Таким образом, яркость каждою рисунка равна одной трети оригинальной, что заметно в местах, где ; рисунки не перекрываются.

' Допустим, необходимо написать графический редактор и в нем имитировать кисть для сгущения красок, когда каждый мазок добавляет немного больше ' цвета к текущему цвету изображения (скажем, 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.) Буфер глубины хранит расстояние от точки бозора до части объекта, занимающей заданный пиксел окна на экране. Если данаий пиксел принадлежит еще и другой части этого или другого объекта, он будет о)хранен только в том случае, если текущий объект находится ближе к наблюдаплю; тогда значение в буфере глубины изменится.

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

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

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