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

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

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

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

ПРИМЕЧАНИЕ Это полезно для обработки видеокадров, размеры которых в общем случае произвольны. Теи не ивнев вы должны загружать видеокадры в исходное, большое изображение, с размерами в 2" текселов в каждом измерении, а для вкладываемых изображений подстраивать координаты текстуры. 324 Глава 9 ° Наложение текстур во[с[ я1тех5оываке20(С[еппш гагяег, С[да( 1еэе1, С[зпсхоДтег, С[1псуо//зег, С[л[хе[ нийЬ, С1з[ге] Ье[фи', С1.епшп /оплат, С1.ешпп гуре, сопзс С1уо[с[ "гехей); Определяет двухмерное изображение текстуры, замещающее собой существующее двухмерное изображение или его некусочный участок (в 2[) это просто прямоугольник). Аргумент (агнес должен бьгть установлен аналогично команде к1Сорутех]ваке20.

Аргументы 1еое[, /оппаг и Гуре используются аналогично к1Тех [ваке 20 () . Уровень детализации (1еэе1) — это номер уровня детализации для М1Р-отображения. Не является ошибкой задание пулевых ширины и высоты, по эффекта на изображение это никакого не производит. Аргументы/отта( и гуре описывают формат и тип данных изображения текстуры. На неполное (парциальное) изображение также влияют режимы, установленные к1Р1хЕ15Соге*() и к1Р1 хе1- Тгапзуег«(), и другие операции прн передаче пикселов. Массив гехв[з содержит данные текстуры для парцнального изображения, Ширина (ши[гЬ) и высота (Ье[дйг) — это размеры подобласти, замешающей изображение или его часть. Аргументы хоДзег и увозе( указывают смещение тексела в х- н у-направлениях — (О, 0) соответствует левому нижнему углу текстуры, — то есть положение в массиве текстуры, в которое будет помещено неполное изображение, Эта область не может включать в себя любые текселы вне изначально определенного массива текстуры.

В программе из листинга 9.3 присутствует код из листинга 9.1, модифицированный так, чтобы по нажатию клавиши 6 в существующее изображение вставлялось небольшое изображение «в шахматную клетку». (Результирующая текстура показана на рис. 9.3.) При нажатии клавиши г восстанавливается исходное изображение. Листинг 9 3 содержит две процедуры, вакеСПеск [вакез () и КеуЬоагб (), которые были основательно изменены. (См. раздел «Объекты текстур» для получения большей информации о команде к101пбтехгпге().) Рмс.

9.3. Текстура с добавленным неполным изображением Листинг 9.3. Замещение части изображения текстуры: сехзцЬ.с /' Создание клеточных текстур '/ №беттпе спеск]ва№ей1бСП 64 №беттпе спесхгвазеНе1№ПС 64 №бет[пе зиЫвв№ейтбСП 16 №бе11пе звЫвв№ене1№ПС 16 зтат[с 6(вэуте сПесх[ввзе[спесК]ввзеНес№ПС][спесх[взяей1бСП][4]; всат~с 6[оьуте зпЫва№е[зиЫва№ене!6ПС] [зиЫвааей[бСП] [4]; Описание текстуры 325 чо1и вахесьеск[вавеа(чо1и) ( !пс !.

), с; 1ог (! = В; 1 < спеск[вавене18пс; !++) ( гог () = 0; ] < <Не<К[ваней!ОСП; ]++) ( с = (((!йнхв)==В) * ((]авхв)==В))"255; спес(<[ване[1] [)][0] = (6(иоу(е) с; спеск[ваве [1] [] ] [ 2] = (бьиьуее) с: спеса[ваве[1][))[2] = (6(иЬуСе) с; спеса[ваве [ 1] [) ] [3] = (6(иЬу(е) 255; ) 1ог (! = 0; ! < аиЫвавеНе18ПС; 1++) ( гог (] = 0; ) < аиЫвавен!ОСП; ]++) ( с = (((1йах4)==в) " ((]ЙВХ4)==В))'255; аиЫваве[!][]][В) = (6(иЬуСе) с: ВЬЫваве[з][)][1] = (6(.иЬу(е) В; 5иЫваве[!][]][2) = (6[.иЬу(е) 0; 5ЬЫваве[1][]][3) = (6(иЬуСе) 255; ) !о!в хеуьоаги(ипа[впеи спаг хеу, !пс х, зпс у) ( аи)С<П (Хеу) ( саве сазе '5': В[В!потех(иге(6С ТЕХТОНЕ 20, Сехнаве); В[тех5иЫвавего(6С ТЕХТОНЕ го, В, )г, 44, аиЫваней1ОСП, аиЫвавене18ПС, 6С НОВА, 6С ОМ516НЕО ВУТЕ, аиЫваве)1 В[иСРоа(Нее!ар)ау О; Ьгеах; сазе 'г': сазе 'Н': 818!потех(иге(6С ТЕХТОНЕ 20, Сехнаве); 8)тех[вавего(66 тЕХТННЕ гв, В, 6С НОВА, сьесх[вавей!йСП, спеск[вавеНе[ВМ, О, 66 НОВА.

66 ОН5[ВНЕО Вутв, спесх[ваве): ВСЬСРоаСНеи1ар!ау(); Ьгеах; саае 27: ех1с(0); Ьгеах; ие1аи)С: Ьгеах: Напомним еще раз, что сам буфер кадров может быть использован в качестве исвчннка данных текстуры — здесь это часть изображения текстуры. Команда [ИоруТех 5 иЬ? ваве20 () читает прямоугольник пикселов из буфера кадров и за- 32б Глава 9 ° Наложение текстур мешает им часть существующего объекта текстуры. (Эта команда похожа на команды к1СоруТех1ваае20О и к1Тех5ип1ваке20О.) чо(й к1Сорутех5оп1маке20(С(.еппш Гагдей С)лпг 1еое(, Ссшг хоДзед С1ш( уорд С1.!пс х, С1.

пс у, С)л1ге1 тйгл, С1л1зе1 Ье(8)гг) Применяет данные изображения из буфера кадров для замены существующего двухмерного изображения текстуры или его некусочной подобласти. Пикселы читаются из текущего буфера ОС кЕАО ВОРЕ ЕП и обрабатываются аналогично команде к1СоруР1хе1з (), но вместо поступления в буфер кадров они помещаются в память текстуры.

К этой команде применимы установки для команды к1Р! хе1Тгапв(ег» () и другие операции при передаче пикселов. Аргумент Гагпет устанавливается аналогично команде к1Сорутех1еаае20. Аргумент 1еое1 — номер уровня детализации для М1Р-текстур. Аргументы хоДзе( и уоДзег указывают смещение тексела в х- и у-направлениях — (О, О) соответствует левому нижнему углу текстуры, — то есть положение в массиве текстуры, в которое будет помещено парциальное изображение.

Замещающее изображение берется из выровненного относительно экрана прямоугольника пикселов с координатами левого нижнего угла (х, у). Аргументы щп((л и Ье(ййг задают размеры прямоугольника подобласти. Одномерные текстуры Иногда достаточно одномерной текстуры, например, если вы рисуете текстурированные полосы и все изменения однонаправлены. Одномерная текстура ведет себя подобно двухмерной с высотой (Ае(ййг), равной 1, и без верхней и нижней границ. Все двухмерные текстуры и их подтекстуры имеют соответствующие «одномерные» процедуры-аналоги. Чтобы создать простую одномерную текстуру, используйте команду к1Тех1маке10 О.

чо1с) к1тех1маке10(С?.еппш Гагйей С(зпс (еое1, С1.пй т(егпа1гоппаб С1яие( пи«(ГЬ, С1зпс Боги(ег, С1.ели т /оппай Сйеппш (уре, сопи( С1чоп) "ГехеЬ). Определяет одномерную текстуру. Все принимаемые аргументы имеют те ке значения, что и для команды а1тех1маке20(), с той разницей, что Гелей— здесь одномерный массив. Как и раньше, ширина (влйй) или равна 2" (или 2 + 2, с учетом границ), где га — неотрицательное целое число. Вы также мо. жете применять множественное отображение и текстуру-посредник (устаио. вив аргумент (а»пег в Ос РЙОху техтОпе 10), и все так же доступны параметры фильтрации. Пример простой программы, использующей одномерную карту текстуры, приве.

ден в листинге 9.8. Если ваша реализация ОрепСВ поддерживает расширение 1та81пй ЯпЬзсг и если включен одномерный фильтр свертки (61 СОМУОСОТ1ОН 10), эта свертка применяется и к изображению текстуры. (Свертка может изменить его ширину.) Са. храняют силу и другие операции над пикселами. Для замены одномерной текстуры целиком нли части ее текселов используйм команду к1Тех5оЫмаке10().

Описание текстуры 327 ха на ко- ед С1лп( :твуюше. сти. Пик ся анало. п(ров он ювки д ;село в. ~1е20. Ар ~ты хоОз ~) соответ ве текс ту ющее из угольни 1йи Ае! екстури тура вед ~в нижн тствующ Ою текс хай С1.Ы ехеЬ); ~меют те зто гехеЬ вна 2"' (и ыта кже м ~их( устан нып арам гуры, при )нЬзе( и е .ртка при гирину. ) использу" чоЫ к1Тех5оЫааке10(С1.епшп гагВег, С1зп( 1епе1 С|ли(хо(1зег, С(л)ге! гаЫ(А, Я.еппш !огглад С1.епшп гуре, сонат С1чоЫ "гехеЬ); Определяет массив одномерной текстуры, которая замещает собой существующее целое изображение одномерной текстуры илп его некусочную область (для 1П это ряд). Аргумент !ащег должен быть установлен в значение 61 ТЕХТЬКЕ 10.

Аргументы 1епе1, 1огтаг и гуре подобны используемым для к)Тех!ааке10(). Уровень (1еге1) — это номер уровня детализации М!Р-отображения, Аргументы уогтаг и гуре описывают формат и тип данных изображения текстуры. В отношении парциального изображения также эффективны режимы, устанавливаемые командами 61Р) хе!5(оге'(), к1Р! хе1Тгапзгег*() или другими операциями при передаче пикселов.

Массив гехеЬ содержит данные текстуры для неполного изображения. Ширина (плЫ(А) — это количество замещающих текселов. Аргумент хоДзег указывает смешение тексела в существующем массиве текстуры, куда будет помещено неполное изображение. Чтобы задействовать буфер кадров в качестве источника новой одномерной текпуры или для подмены старой текстуры либо ее части, используйте команды 1)(орутех1вабе10() или к16оругех5оЫваке10(). чоЫ к16оруТех1ваке10(С1.еппш гагдег, С1.шг 1епе1, С1!и( т1егла!гогтад Я|чп( х, С?зпг у, С1 гйге! юЫЙ, С1зп( бои!ег); Создает одномерную текстуру с использованием данных буфера кадров для определения ее текселов. Пикселы читаются из текущего буфера 61 кЕА0 80Г Г ЕК и обрабатываются аналогично команде к16ору Р ! хе1з (), но вместо поступления в буфер кадров пикселы помещаются в память текстуры.

Здесь сохраняют силу установки для к1Р(хе15тоге*() и кТР! хе1Тгапз(ег*(). Аргумент Гагдег должен быть установлен в значение 61 ТЕХТпкЕ 10. Уровень детализации (1еие1), внутренний формат (тгегаа1готтаг) и границы (Ьоп!ег) задаются подобно к16оруТех1паке20(). Массив текстуры берется из строки пикселов с координатами левого конца (х, у). Ширина (гаЫ(А) указывает количество пикселов в строке. Это значение должно быть равно 2~ (или 2~ + 2, без учета границ), где т — неотрицательное целое число. чоЫ д)6оругех5оЫааке10(С|.епшп сагпег, С!.)пс 1епе1, С!зп( хоДзед С(зпг х, СПп( у, С! я!ге! геЫгл); Применяет данные изображения в буфере кадров для замены существующего одномерного изображения текстуры или ее некусочной подобласти.

Пикселы читаются из текущего буфера 6( ЯЕА0 ВЬРРЕК н обрабатываются аналогично команде д16оруР(хе1з(), но вместо поступления в буфер кадров они помещаются в память текстуры. Сохраняют силу установки для В1Р) хе|- Тгапзтег*() и других операций при передаче пнкселов. Аргумент Гагпег должен быть установлен в значение 6( ТЕХТЬРЕ 10. Аргумент 1епе! — это номер уровня детализации М!Р-отображения.

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

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

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

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