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

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

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

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

на ГИЯ то[с) В1Со1огтаЬ)ерэгаметег([()и(С[.епизп Гауес, ОТепиптрлате, ТУРЕ "рахат); Устанавливает параметры 66 СОСОК ТАВСЕ 5САСЕ и 66 СОСОК ТАВСЕ В1А5 для каждой таблицы цветов. Аргумент гаг)(е7 — зто одна из следующих кон- стант; 6С СОСОК ТАВСЕ, 66 Р05Т СОМЧОГ ОТ10М СОСОК ТАВСЕ или 6С Р05Т СОСОК НАТК1Х СОСОК ТАВСЕ, он указывает саму таблицу цветов. Возможные значения для рлате — это 6С СОСОК ТАВСЕ 5САЬЕ и 61 СОСОК ТАВсЕ В1А5. Значением аргумента рогат является массив из четырех значений, представ- ляющих красный, зеленый, синий и альфа-модификаторы в атой последова- тельности.

ент 5Т )СЕ, ОК сти Листинг 8.5 показывает, как с помощью таблицы цветов можно инвертировать юображение, то есть заменить каждый цветовой компонент инверсным ему. Листинг 8.5. Замещение пикселов с помощью таблицы цветов: со[оггаЫе.с ех(его бсииуте* гевЕТмабе(сопят сиаг', бсз1ке1*, бьз1зе!* ); 6ШЬуте *рпхе1з; 6Ы!гез н!итп, Ье16ЬС; хо(В (пзт(то!д) ( 1п( 1; 6(иоуте со1огТвще [256] [3); елов ых в трам продолжение,о сра- РНА, СЕ4, 6(. 61. 6[. ГЕН- 61. 61.

6( А(РНА 6( ЕОИ1МАМСЕ 6( [ОНТМАМСЕ АСРНА 6[ !МТЕМ51ТУ 61 КОВ 6[ РЕВА ц ц 1г К, Кг ц 1, б~ 6, 296 Глава 8 ° Вывод пикселов, битовых образов, шрифтов и изображений Листинг 8.5 (продолжение) р1хе15 = ге а01вазе (" Вата/]ееаз. Ы п", ан101П. Вне]ВЬ 1); 61Р]хе151оге1(60 ОМРАСК А(16ММЕМТ, 1); 61С1еагСо1ог(0, О, О, 0); /* Формирование таблицы инверсных цветов 'l тог (! = 0; ! < 256; ++1) ( со1огТаЫе(1) (В] = 255 - 1; со1огТаЫе(1]( 1] = 255 - 1; со1огТаЫе(!](2] = 255 - з; ) 61Со1огТаЫе(60 СОСОР ТАВ(Е. 6( РОВ.

256, 60 КОВ, 6( Вй516йЕО ВУТЕ. со1огТаЫе): 01ЕпаЫе(6( СОСОЯ ТАВСЕ); то! 0 01 зр1а у (то!0) ( 0161еаг(60 СОСОК ВВЕРЕН В1Т); 01аазтегРоз21(1, 1); 610ганРзхе15(н101Ь. Пе! Влт, 60 а6В, 60 Ой516МЕО ВТТЕ, р]хе15); В1Р1цзл(); ПРИМЕЧАНИЕ Листинг 8.5 включает в себя процедуру геао]глаоеО, введенную для упрощения структуры про. граммы. В общем, вам требуется такого рода подпрограмма, умеющая читать изображение из файла. Формат файла, понимаемого геаа]гладе(), сводится к следующим принципам: ширина изображения (и!00п) имеет тип ЯзаеЬ высота (Ье!ОЫ) — тип 6(з]зеЬ при сохранении РОВ триад (КОЛИЧЕСТВОМ Ш]ОШ х ЬЕ!ОЫ) дпя КаждОГО КОМПОНЕНта ИСПОЛЬЗуЕтея тнл Я.цоу(Е.

В дополнение к явному заданию таблицы цветов вы можете захотеть использовать изображения, созданные в буфере кадров, в качестве определения для таблицы цветов. Операция 61СоруСО1огтаЫе() позволяет указать отдельный ряд пикселов; с целью считывания его из буфера кадров для дальнейшего включения в таблицу цветов. уо]с( 61 С о руСо1 0 г Та Ы е(С( епшп (агнес, б(еп опт (птегла]гогглад С] ]пС х, С(]01 у, О(л]ге( нлг(гг!); Создает таблицу цветов из данных буфера кадров, используя их как элементы таблицы цветов. Пикселы читаются из текущего буфера 61 КЕАО ВОТРЕМ и обрабатываются как при вызове 61Сорур ! хе15 (), но без «паузы перед конечным преобразованием. Здесь применяются настройки команды 01Р1хе1Тгапзтег'(). Аргумент (атлет должен быть установлен на одну из таблиц командой к1Со1о гТаЫе () .

Для аргумента гл(егла(гоггпат используются те же символические константы, что для одноименного аргумента к1Со1огТаЫ е () . Массив цветов задается строкой буфера кадров с шириной (клг(гл) и начальной позицией (х, у). Замена всей таблицы цветов или ее части Если нужно заменить часть таблицы цветов, используйте операции В1С01ог50ЬТаЫе() и 61Сорусо1ог50ЬТаЫеО. Расширение ?тар)па Вцьзе? 297 чо((? 61СО1ог5оЬТаЬ1е(01 епшп Гатяеб О?.в(ге? ятагг, С?.в?ге? соил(, О?.епцт /оплат, О?.спцш (уре, сопя! С?.чо?т? *г?аса) Заменяет элементы таблицы цветов, начиная с элемента ягагг и заканчивая элементом зтатт + соил( — 1, значениями из массива Ната.

Аргумент Гагяет — это 61 СО(ОЙ ТАВСЕ, 61 Р05Т СОННО?ВТ10Н СОЕОР ТАВСЕ нлн 6С Р05Т СОСОЙ ИАТЙ?Х СОСОЙ ТАВСЕ. Аргументы/оп)пас и Гуретакие же, как для 6!со?огТаЫе (), но относятся к массиву !?ага. чо?т? 61сорусо1ог5оЬТаЫе(0?.епц)п Га!Вет, СЕз?ге? зтагг, С?.(пс х, С?тпг у, 61в?ге1 соипг); Заменяет элементы таблицы цветов, начиная с элемента з(аг( и заканчивая элементом згагг + свинг — 1, где соипг — количество пикселов в строке буфера кадров, начинающейся с позиции (х, у).

Пикселы преобразуются во внутренний формат (тпгегпа?йогтпа() таблицы цветов. 3Впрос значений из таблицы цветов Пнкселы, сохраненные в таблице цветов, могут быть извлечены с помощью коинды д16етсо1огтаЫе (). Подробно см, раздел «Команды запроса» приложсння Б. 3апрос на допустимость таблицы цветов Параметры-посредники (ргохтев) предоставляют способ, которым можно оценить, достаточно ли ресурсов в системе для сохранения таблицы цветов. Эти паРвиетрьт заносятся в аргумент СагВет команды В! СО1огтаЫе О: ° 6( РРОХУ СОЕОР ТАВСЕ; ° 6С РРОХУ Р05Т СОЙНОСОТ?ОН СОСОЙ ТАВСЕ; » 6С РЙОХУ Р05Т СОСОЙ ИАТР?Х СОСОЙ ТАВСЕ.

Тогда ОрепС?. определяет, хватит ли ресурсов системы для сохранения таблицы. Если она не помещается, значения ширины, формата и компонента разрешения ?станавливаются в О. Например: В!Со1огТаще(6( РЙОХУ СО(ОЙ ТАВСЕ, 6С ЙОВ, 1824, 6( РОВ, 6( ОН5?6НЕО ВУТЕ, вы)); 1!Се(Со1огТащеРагаветег)ч(6С РРОХЧ СО(ОЙ ТАВСЕ, ОС СО(ОЙ ТАВСЕ И?отН, (ж)4(П); !т (н(етн == В) М нельзя поддержать такую таблицу Более подробно команда В16етсо1огтаЫеРагаюетег» О описана в разделе «Коканды запроса» приложения Б. Свертки Свертки представляют собой фильтры, которые замещают каждый пиксел средневзвешенным значением его соседеи и собственно самого этого пиксела.

Размытне (Ыцгг?пй) и повышение резкости (з?)агрешпя) изображений, поиск границ н корректировка контраста — вот основные примеры применения сверток. 298 Глава 8 ° Вывод пикселов, битовых образов, шрифтов и изображений На рисунке 8.15 показано, как пиксел Р„и окружающие его пикселы обрабатываются фильтром 3 х 3, чтобы получить пиксел Р'„. Свертки — это массивы весовых значений пикселов, и оперируют они только ВСВАгпикселавии. Фильтр, известный под названием кегпе1 (ядро), является простым двухмерным массивом весовых значений.

Каждый пиксел результирующего изображения создается умножением набора пикселов входного изображения на веса свертки, а результаты суммируются. Например, на рис. 8.15 в формировании пиксела Р'„принимают участие девять пикселов исходного изображения и девять элементов свертки. Рис. 8.1В. пример свертки чоЫ 81Сопчо1ог~ опг11тег2О(СЕепшп Гагдет, С) епшп т~еглаТоппат, СЫте! вил, СЕл1хе1 Ье18йд С1.епшв )оплай С1.ешпп гуре, сопзг С1.чоЫ *йладе); Определяет двухмерный фильтр свертки, где аргумент Гсппет установлен в значение 61 СОИчОЫТ10И 20. Аргумент 1лгегла1Еоплаг определяет, над какими компонентами пикселов выполняется операция свертки, он может быть одной из 38 символических констант, перечисленных для одноименного аргумента функции 81Со1о гтаь1е О. Расширение ]шад[пд 500зет 299 Ширина (геЫЙ) и высота (Ье!8]тг) указывают размеры матрицы фильтра.

Максимально допустимые ширина и высота могут быть оценены запросом 816етсопчо[ог(опРагаиегег»(). (см. раздел «команды запроса» приложения Б.) Как и для В10гаыР ! хе1з (), формат (]о!тиас) и тип (Гуре) задают способ хранения изображения ([шаде). Подобно таблицам цветов, внутренний формат фильтра определяет, какие ком- поненты пзображения подлежат обработке. Таблица 8.9 описывает связь форма- тов с компонентами пикселов.

Обозначения В„бн В, и А, представляют компо- иеиты цвета. Обозначение 1.1 соответствует значению яркости в фильтре 6С [ОН1МАИСЕ, а ]у — значению интенсивности в фильтре 6С 1ИТЕМ51ТУ. Наконец, Вд СА Ву и А; представляют ВОВА-компоненты фильтра. Таблица 8.9. Воздействие свертки на РОВА-компоненты пнкселов Оскевиой формат фильтра Результат для альфа- компонента Результат для синего компонента Результат Результат для красного для зеленого компонента компонента А, х Ау Не изменяется Не изменяется Не изменяется Не изменяется А, х Аг А, х 1( Не изменяется А, х Ау Используйте команду В1ЕпаО)е(6С СОМЧОСОТ10М 20), чтобы разрешить приме- нение двухмерной свертки.

Листинг 8.6 демонстрирует использование нескольких 3 х 3 61 СОН1ИАМСЕ фильтров для обнаружения границ в ВСВ-изображении. Смена фильтра выпол- ияется клавишами Н,! и ч, Листинг 8.6. Использование двухмерного фильтра свертки: сопчо]ц(]оп.с ектегп 6СОЬуге* геад1маве(сопят сваг*, ОС»тте(*, 6гв!те!*); 6[иву(в 'р(хе1»; 6(т(те! нтосп, Ьетапг; П Описание фнп »тра свертки 'I 6(Ива! Ьогт коптя! [З] [З] = ( (О, -1, О), ( О, 1, В ( О, В, В ] 6[(!ва! чеггтса1[3][3] ( О, О, О ( -1, 1, О ), ( В, О, О ) продолменое Р 6[ А(РНА 6( (ВМ!МАИСЕ 61 СОМ1ИАМСЕ АСРНА 6[ 1МТЕИ51ТУ 6[ 06В 6[ 06ВА В,хг! И,х [у й,х], Вг х аг Й,хат 6,х(у 6,хС, 6, х 1! 6, х 6( 6, х 6( В, х С, Вт х С, В, 1 в, .

в, В,хВ 300 Глава 8 ° Вывод пикселов, битовых образов, шрифтов и изображений Листинг З.б (продолжение) 6С!1оаС 1ар1ас!ап[3) (3) = ( ( -0.125, -9.125, -0.125 ), ( -0.125, 1.0, -9.125 ], ( -0.125, -9.125, -0.125 ) чо)о 01зрсау(чо10) ( 9161еаг(61 СОСОР ВОРЕЕМ В1Т); 91йазеегРоз21(1, 1); 910ганР!хе1з(н1ОСП, Пе!ВПС, 6( ПОВ, 6С ОМ516МЕО ВЧТЕ, рзхе1з); 91Р)азп(); ) тозе 1п1С(чозд) ( рзхе1з = геа01шайе("Овса/1еедз.а1п", ан10сп, аье!Влс); 91Р1ХЕ15СОГЕ!(6С ОМРАСК А(16ММЕМТ, 1)! 9161еагсо1аг(9.9, 0.0, 9.0, 0.9); рг)птт("Горизонтальный фильтр!а"); й(Сопчосатзопрзстегза(6С СОМЧОСОТ)ОМ 20, 6С СОИ(МАИСЕ, 61 СОИ1МАМСЕ, 6С РСОАТ, Пог)сопСа1); 91Епаьсе(61 СОМЧОСОт)ОМ 20); ) чо10 Кеуаоаге(апз1йпед слаг Кеу, зпт х, !пт у) ( зн)тсл (Кеу) ( сазе 'Ь': ргзпст("Горизонтальный фильтр!а")', 91Сопча1а11опр111ег20(6С СОМЧОСОТ10М 20, 6( СОИ1МАМСЕ, 3, 3, 6( СОИ1МАМСЕ, 6С ЕСОАТ, Паг(гапта1 ); Ьгеах; саве 'ч': рг(птт("Вертикальный фильтр!а" ); 91Сапча1ат!опР111ег20( 6( СОМЧОСОТ10М 20, 61 СОИ1МАМСЕ, 3, 3, 6С СОИ)МАИСЕ, 6С РСОАТ, чегС)сас ); Ьгеах; сазе '1': рг(птт("Фильтр Папласасп"); 91Сопчо1ит!опЕ! 11ег20(6С СОМЧОСЧТ10М 20, 6С СОИ1МАМСЕ, 3, 3, 6С СЧИ1МАМСЕ, 61 РСОАТ, 1арсасзап ); Ьгеа1с; сазе 27: /* Клавиша Езс */ ах!с(0); Ьгеах; 91аСРозтйеО!зр1ау(); ) Как и в таблицах цветов, вы можете задать фильтр свертки со значениями пикселов из буфера кадров.

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

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

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

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