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

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

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

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

8.4. Порядок размещения компонентов для некоторых типов данных и форматов пиксела 61 0М516ЙЕО ВУТЕ 3 3 2 61 0Й516МЕО ВЧТЕ 2 3 3 КЕЧ 61 0М516МЕО 5НОРТ 5 б 5 61 0М516ЙЕО 5НОКТ 5 б 5 КЕЧ 61 ОМ516МЕО 5НОРТ 4 4 4 4 61 0Й516МЕО 5НОКТ 4 4 4 4 йЕЧ 61 0М516МЕО 5НОКТ 5 5 5 1 61 0М516МЕО 5НОКТ 1 5 5 5 КЕЧ 61 0Й516МЕО 1МТ 8 8 8 8 61„0Й5!6ЙЕО 1МТ 8 8 8 8 КЕЧ 66 0М516МЕО 1МТ 10 10 10 2 61 0М516ЙЕО 1ЙТ 2 10 10 10 КЕЧ бг К68 61 Р68 И К68 61 К68 6Е РОВА,ОЕ ВОРА 61 РОВА,бг 86РА 66 К6ВА,61,86КА 6Е РОВА, 61 86КА 6Е РОВА,61 ВОРА 61 РОВА,6Е 86КА 61 РОВА,61 86КА 6Е РОВА,ОЕ 86КА 274 Глава 8 ° Вывод пикселов, битовых образов, шрифтов и изображений Самый старший бит каждого компонента цвета всегда пакуется в позицию самого старшего бита отведенного поля.

Размещение отдельного компонента не зависит от режима хранения пикселов, но подчиняется принятому порядку следования байтов в слове. (См. раздел «Режимы хранения пикселовэ.) Запись пикселов из оперативной памяти в буфер кадров чоЫ к10 г айР ! хе(5(С1л1ге[ жЫ(Ь, 01л1ге] Ье[8Ьс, 01 епшп/ос)пас, 01 епшп суре, сопят 0].чоЫ «рстей); Отображает прямоугольник из пикселов, с шириной в[!ссЬ и высотой Ье[8Ьс. Левый нижний угол прямоугольника соответствует текущей позиции растра. Аргументыуогпмгт и Суре несут ту же нагрузку, что и для функции г1Реа 0 Р(хе15 () (см. табл. 8.1 и 8.2.).

Массив рстей содержит данные для отрисовки. Если текущая растровая позиция некорректна, никакого вывода не производится. Листинг 8 3 представляет собой часть программы, использующей я(0 г айР ! хе] 5 () для отображения прямоугольника пикселов в левом нижнем углу окна. Процедура вакеслесК1ваке О создает КСВ-массив 64 х 64 черно-белого изображения шахматного поля.

Команда к1РавтегР052! (9, О) позиционирует изображение в левый нижний угол. И опять-таки пока не обращайте внимания на команду к1Р! хе15Соге! (). Листинг 8.3. Использование команды о[Огаи(Р!хе[во; [глаце.с №бес!пе спеск1вагей!бСЬ 64 №бес!пе слеск1вагеае16ПС 64 6саьуСе слеск1ваге [сьеск1вагеНе! 6ЬС] [олеся]вагей1бСП] [3]; чосб вакеслеск1ваге(чо!б) ( !пс(,),с; гаг (! = 0; 1 < спеск1вагене!ЗПС; 1++) ( гог (> = 9, > < слеск1вааей!бСП; ]++> ( с = ((((1авхз)==0)~((]веха))==9))'255; сье<Х1ваге[1][]][9] = (6СаьуСе) с; слеса1ваге [ 1] [ 1 1[ 1] = (6саЬуте) с; спеск1ваге[1][)][2] = (6саьусе) с: ) ) чо!б 1п!С(чо1б) ( 6]С]еагСо]ог(0.9.

9.0, 9.0, 0.0); 915лабеиобе((6С РСАТ); вакеслеск]вазе(); 6]Р!хе]5(оге!(6С НМРАСК АС]6МНЕМТ, 1); ) чо!б б!вр1ау(ча1б) ( 6]С]еаг(6С СОСОР ВНРРЕР В]т>; 6]аав(егРов2!(9, 9); 6\ЬганР(хе]в(слеск1вазей10СП, слеск1вагеие16ПС, 6С Р66, Конвейерная обработка изображений 275 6С ЦМ516МЕО ВЧТЕ, снесХ1ваце); ц1Р10»Н О ~ ) Когда вы используете В?бгаиР(хе?з() для записи ВОВА-данных или индексов цвета, вам может потребоваться выбрать текущий буфер для рисования команЦой В10 гаиВи т ге г (), которая, как и В1РеаО Вот те г (), описана в разделе «Выбор йуферов цвета для записи и чтения» главы 10.

Копирование пикселов в пределах буфера кадров чо1г? В?СоруР(хе1з(О??пт х, С1?пг у, 6?яке? вата, О1яхе? Ье(ВЬГ, С?еппш Пиууег); Копирует прямоугольную область внутри буфера кадров с позицией левого нижнего угла (х, у), шириной иЫтг) и высотой Ье(ВЬГ. Левый нижний угол целевого прямоугольника совпадает с текущей позицией растра.

Аргумент 6иууег это либо 6С СОСОР, либо 6С 5ТЕМС11, либо 61 ОЕРТН, он указывает тип используемого буфера. Функция В1СоруР(хе1з О ведет себя аналогично последовательности из В1РеааР(хе1з() и В10гаиР!хе1з(), с промежуточным «преобразованием» константы Визг в аргумент ?оплат; ° если ЬиДег — 61 ОЕРТН или 61 5ТЕМС11, используется 61 ОЕРТН СОНРОМЕМТ нли 61 5ТЕМС11 1МОЕХ соответственно; ° если указано значение 61 СОСОР, используется 6С Р6ВА или 61 СОСОР 1МОЕХ, в зависимости от режима — ВОВА или индекса цвета. Пчяетьте, что в аргументах уогглаг или г?ата при использовании 61СоруР(хе1з () игг необходимости, так как данные никогда не поступают через оперативную паюпь. Исходный и целевой буферы для В1С ору Р( хе1ц () указываются с помощью ?веаОВоутег() и В10гаиВоттег() соответственно.

Как 610гаиР1хе1з(), так ц11(оруР1хе1ь () используется в листинге 8А. Зля всех трех функций то, насколько верно преобразуются поступакпцие из бу- $«Ра кадров или передаваемые в него данные, зависит от текущего режима. Об вам мы поговорим в следующем разделе. (?онвейерная обработка изображений Пцтои разделе рассказъшается о конвейеризации обработки изображений (ппай(п8 ц1)ю?1не): режимах сохранения пикселов и операциях прн передаче пикселов, нлючающих в себя произвольные преобразования данных.

Вы можете растянуть ма сократить прямоугольную область перед ее отображением с помощью команцв11Р1хе11ооюо. Последовательность этих операций показана на рис. 8.5. Прн вызове В10ганР1хе1ь() данные сначала распаковываются из оперативной вкати согласно режимам хранения пикселов, а затем к ним применяются преоб?ноаання при передаче. Результат растеризуется. Во время растсризапии прямольннк пикселов может быть масштабирован в обе стороны, в завис имости от текущего состояния.

В заключение выполняются операции над фрагментами 276 Глава 8 ° Вывод пикселов, битовых образов, шрифтов и изображений и пикселы записываются в буфер кадров. (См. раздел «Тесты и операции над фрагментами» главы 10). При вызове 81йеаОР)хе1з () данные считываются из буфера кадров, аналогичным образом преобразуются и упаковываются в оперативную намять. Функция к1С ору Р1 х е1з ( ) выполняет промежуточные преобразования при передаче, подобно 81йеаОР1хе1з () . Результирующие данные записываются подобно а10 гав Р) хе1з (), но во второй раз преобразования не применяются. Рисунок 8 6 демонстрирует, как в1Сору Р)хе1з () передает пикселы от самого буфера кадров. Рис.

8.5. Конвейеризация обработки изображений Рис. 8.6. Маршруг пиксепов при выполнении р!Сорур~хе)зП Конвейерная обработка изображений 277 Из раздела «Вывод битового образа> и рис. 8.7 вы можете составить представлевие, что воспроизведение битового образа прогце воспроизведения изображений и счет отсутствия перечисленных выше промежуточных преобразований. Рис.

8.7. Путь пнкселов прн выполнении д18йварВ Обратите внимание, что режимы сохранения пикселов и операции при передаче применяются к текстурам, когда те читаются из памяти текстур или записываются инее. Рисунок 8 8 демонстрирует зффект от команд 81тех1ааде* (), 81Тех5ип1ваде*() и 816еттех1иаде(). Рвс. 8.8. Пути пнкселов прн выполнении д1Техвпаде*(), д1техдиЫгпадеь() н д1пегтехьпаде[] )(зх видно из рис. 8.9, когда пикселы копируются из буфера кадров в память текпур (81Сорутех1ааке" () или 81СоруТехбоЫваде*()), применяются только операции при передаче. (См. главу 9 для получения большей информации о текаурах.) 278 Глава 8 ° Вывод пикселов, битовых образов, шрифтов и изображений Рис.

8.9. Пути пихсепов при выполнении д)Сорутех1п~аде"() и д)СорутехдиЫтаде*в Упаковка и распаковка пикселов Упаковываются или распаковываются пикселы, определяется тем, в каком направлении следуют данные — на запись или чтение из оперативной памяти. Изображение сохраняется в памяти в нескольких элементах. Данные могут представляться просто индексом цвета или значением яркости (то есть средневзвешенным значением красного, зеленого и синего компонентов) или же быть выра.

жены красным, зеленым, синим и альфа-компонентом (РСВА) для каждого пиксела. Возможное размещение данных пикселов, то есть формат, определяется количеством элементов и их порядком. Некоторые элементы (такие как индексы цвета или трафарета) являются целочисленными, а другие (РСВА или глубины) — значениями с плавающей запятой (вещественными), обычно в диапазоне между О и 1. Вещественные компоненты обычно сохраняются в буфере кадров с более низкпм разрешением, чем позволяет число с плавающей запятой (например, компонентам цвета может отводиться по 8 бит). Точное количество битов, используемых для представления компонентов, зависит от особенностей аппаратной части.

Таким образом, сохранение каждого компонента в виде 32-разрядного вещественного числа часто теряет смысл, тем более что изображения могут содержать миллионы пикселов. Элементы могут сохраняться в памяти с различными типами данных, от 8-разрядного байта до 32-разрядного целого или числа с плавающей запятой. ОрепЯ. явно определяет преобразование каждого компонента в каждом формате для ка. жного допустимого типа данных. Имейте в виду, что вы можете потерять данные, если попытаетесь сохранить компонент высокого разрешения с типом, предста. вимым малым числом битов.

Конвейерная обработка изображений 279 га- зд- ве- раэго гся лотой «ты !ен- ясл, разаО1. ! каные, (ста- Режимы хранения пикселов Данные изображения обычно сохраняются в оперативной памяти в виде прямо- )гольных (двух- или трехмерных) массивов.

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

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

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