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

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

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

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

Это напоминает смешивание красок на палитре художника; аналогично цветовая палитра в компьютере ограничивает множество ВСВ-значений избранными, соответствуюшими заданным индексам, как показано на рис. 4.4. Художник рисует сцену, выбирая цвета из палитры и закрашивая требуемгяе области нужным цветом. Компьютер хранит цветовые индексы в битовых плоскостях для каждого пиксела. Затем данное значение битовой плоскости сопоставля- йбВА в сравнении с индексированным цветом 153 ется с цветовой таблицей, и на экране рисуется пнксел требуемого цвета, как показано на рис.

4.5. Красный Синий Номер о 1 2 3 4 б 296 Рис. 4.4. Карта цветов Рис. 4.5. Использование цветовой карты для рисования изображения В режиме индексации цвета число доступных цветов ограничено размером цветоюй карты и числом доступных битовых плоскостей. Размер цветовой картпя оппепеляется возможностями оборудования. Он всегда кратен двум и обычно лепит в пределах от 256 (2") до 4096 (2 о), где показатель степени — число битовых ппоскостеьь Если в цветовой карте солержится 2" индексов и доступно т битовых плоскостей, количество доступных записей равно меньшему значению из 2" и 2". В режиме йОВА цвет каждого пиксела не зависит от цвета других пикселов. Азот в режиме индексов цвета каждый пиксел связан с соответствующим значеппем индекса в цветовой таблице. Если содержимое элемента цветовой таблицы вменяется, все пикселы с таким значением индекса меняют цвет.

выбор между режимами КбВА и индексации цвета Выбор между этими двумя режимами должен производиться на основе возможностей вашего оборудования и ваших требований. Для подавляющего количества спстем большее число цветов доступно в режиме йОВА, чем в режиме индекса- 154 Глава 4 ° Цвет ции цвета. Также для некоторых эффектов, таких как затенение, освещение, текстурирование и туман, КСВА предоставляет более гибкие возможности, в сравнении с индексацией. Использование индексации цвета оправдано в следующих случаях: ° Если приложение, оперирующее индексированными цветами, переносится на другую платформу. ° Если число битовых плоскостей невелико, режим КСВА дает достаточно жалкий набор цветов.

Например, при наличии всего 8 битовых плоскостей в режиме КСВА доступны только 3 бита на красный, 3 бита на зеленый и 2 бита на синий. То есть возможны только 8 (2') градаций красного и зеленого, и только 4 градации синего. Переход между различными цветами чрезвычайно груб. Тогда, при ограниченных требованиях к передаче полутонов, предпочтительней использовать цветовую таблицу для загрузки большего числа набора цветов. Например, если нужна только синяя гамма, цветовая таблица позволяет хранить 256 (2") синих полутонов, что гораздо лучше, чем 4 градации в режиме КСВА. Конечно, таким образом вы заполните всю таблицу оттенками синего цвета, и у вас не будет ни красного, ни зеленого, ни каких других комбинаций.

° Режим индексации цвета очень удобен для различных хитростей, таких как анимация и рисование в слоях. (См. главу 14 для получения дополнительной информации.) Вооб|це говоря, используйте режим КСВА везде, где это возможно. Он работает с текстурами и хорошо сочетается с освещением, затенением, туманом, размытн.

ем и смешиванием, Переключение между режимами Допустим, вы не можете выбрать между режимом КСВА и индексации цвета. Например, вам нужны н анимация с индексированными цветами, и текстурирование, то есть режим КСВА. Илн же вам потребовалось переключиться между режимами одиночной и двойной буферизации. Например, у вас очень мало битовых плоскостей, скажем, восемь. В режиме одиночной буферизации в вашем распоряжении 256 (2') цветов, а режим двойной буферизации, нужный для устранения мерцания при анимации, дает только 16 (2") цветов. Предположим, что требуется нарисовать движущийся обьект без мерцания и вы готовы пожертвовать цветностью ради двойной буферизации (может быть, объект движется слишком быстро, и точная детализация не нужна — кто различит детали на такой скорости). Но когла объект останавливается, надо нарисовать его в режиме одиночной буферизации, уже полноцветным.

К сожалению, большинство оконных систем не позволяют так легко переключаться между режимами. Так, в системе Х %1пбозч режим отображения цвета— атрибут объекта Х т'1зпа1. А объект Х Ъ'1зпа! должен быть определен до создания Задание цветовой и полутоновой моделей 155 Задание цветовой и полутоновой моделей ОрепС1 поддерживает текущий цвет (в режиме ВСВА) и текущий индекс пвета (а режиме индексации цвета). Пока не используется более сложная цветовая мопель, такая как освещение или текстурирование, каждый объект рисуется этим теку>>)им цветом (или индексом цвета).

Посмотрите на следуюпгий псевдокод: ает со1ог(ЯЕ0); бган ! теябя); бган )ген(В): >ет со1ог(цяЕЕИ); ает со1ог(ВГ ця); бгач >ген(С); Элементы А и В рисуются красным, а элемент С вЂ” синим. Четвертая строка, устанавливающая цвет в зеленый, не имеет смысла (кроме того, что дает задержку ао времени). Без освещения илн текстурирования, если текущий цвет установлен, впоследствии все элементы рисуются этим цветом, пока он не будет сменен. 3Вдание цвета в режиме И ВА режиме ВСВА текущий цвет устанавливает команда я1Со!ог* ().

чоЫ ~1Со1о г 3(Ь я 1 1 г( пЬ пя ш)(ТУРЕ г, ТУРЕ д, ТУРЕ (>); чоЫ ~1Со1ог4(Ь з 1 1 г1 пЬ пз ш)(ТУРЕ г, ТУРЕц, ТУРЕ 6, ТУРЕ а)г чоЫ д1Со1огЗ(Ь з 1(г( пЬ вя ш)ч(сопяс ТУРЕ»п); чоЫ я1Со1ог4(Ь я 1 Е г( пЬ ця ш)ч(сопят ТУРЕ "и); Определяет текущие значения для красной, зеленой, синей и альфа-составляюгцпх.

Эта команда может иметь три суффикса, обозначающих различные параметры. Первый суффикс — 3 или 4, признак задания альфа-значения. Если альфа-значение не задается, оно принимается равным 1.О. Второй суффикс определяет тип данных аргументов: байт (Ьуте), короткое целое (зЬогг), пелое (гпгейег), вещественное (Пояс), двойной точности (г(опЫе), беззнаковый байт (нпа)япег( Ьусе), беззнаковое короткое целое (ппз(дпег( зЬогс) или беззнаковое целое (ппзгяпег( 1пседег). Третий суффикс — ч, отвечает за то, является ли аргумент указателем на массив значений заданного типа данных.

о г- о >й Для версий я1Со1о г" (), принимающих в аргументах вещественные данные, значения должны быть в диапазоне от 0.0 до 1.0, минимального и максимального аначеннй, которые могут быть сохранены в видеобуфере. Компоненты типа целое ия еяна, то есть не может меняться при жизни окна.

Фактически вы «ггриклеивае- тесь» либо к двойной буферизации, либо к режиму РСВА. Хитроумное решение этой проблемы — создание более одного окна, работающего а собственном режиме. Вам остается только управлять видимостью окон (отобра- жать или не отображать в системе Х 1)(г(пг(о>ч, управлять или не управлять видже- тами Мот>(и Асйепа) и рисовать об'ьект в подобаюгцсм, видимом окне. 156 Глава 4» Цвет Значения и вещественного типа, и знакового целого преобразуются к диапазону (О, 1] перед обновлением текущего цвета или параметров освещенности текущего материала.

После вычисления освещенности результирующий цвет, попадающий вне диапазона (О, 1), приводится в рамки данного диапазона перед интерполяцией или записью в видеобуфер. Если освещенность отключена, ограничивание компонентов цвета делается перед растеризацией. Таблица 4.1. Приведение значений цвета х вещественному типу Суффикс Тип данных Минимальное Минимальное Максимальное Максимальное значение значение значение значение приводится к приводится к 1-ЬуСе(пгедег 2-Ьуте спгедег 4-Ьуте сптедег ипзгдпеб 1-Ьуге (птедег ппядпеб 2-Ьуге гпгедег опйдпеб 4-Ьуге гпгедег †1 -1.0 — 32 768 -1.0 — 2147483648 -1.0 0 0.0 127 32 767 2 147 483 647 255 1.0 1.0 1.0 1.0 иЬ 0.0 65 535 1.0 4 294967 295 1.0 Оз ц( 0.0 Аналогичная команда 815есопбагуСо1ог*() предусмотрена для определения цвета, применяемого после текстурирования (если отключено освещение).

(Для получения более подробной информации см. раздел «Применение вторичного цвета после текстурирования» главы 9.) Задание цвета в режиме индексации цвета В режиме индексации цвета для выбора индекса цвета в качестве текущего ис- пользуется функция 611п бе х ' () . то(б 811пбех(яИ иЪ)(ТУРЕ с); тоЫ 811пбех(я(б цЪ)т(сопзС ТУРЕ "с) Устанавливает текущий индекс цвета н с. Первый суффикс команды опреде- ляет тип значений аргументов: короткое целое (зЪогс), целое ((псеяег), вещест- венное (Попс), двойной точности (допЫе) или беззнаковый байт (цпяяпеб Ъусе). Второй, опциональный, суффикс определяет, является ли аргумент мас- сивом значений заданного типа данных (массив содержит только одно значе- ние).

число без знака (ппяяпеб шсеясг) линейно преобразуются (с!атреб) к вещественному типу, максимальное значение приравнивается к 1.0, а 0 приравнивается к 0.0. Компоненты типа целое число со знаком (яягсеб (пседег) линейно преобразуются к вещественному типу, причем ограничиваготся сверху значением 1.0, а снизу — значением — 1.0 (табл.

4.1). Задание цветовой и полутоновой моделей 157 В разделе «Очистка окна> главы 2 было приведено описание функции В1С(еагсо1ог(). Для режима индексации цвета прелусмотрена аналогичная функция В1С1еа г1пдех О. уоЫ В1С1еаг1пдех(СЕ()оа( сгис(ех); Устанавливает текущий цвет очистки в режиме индексации цвета. Значение индекса очистки по умолчанию равно 0,0.

При включенной индексации цвета тот же эффект даст команда В1С1еаг(ОС СОСОК ВОРРЕП В1Т), ПРИМЕЧАНИЕ В Орепбь нет команд для загрузки значений цветов в цветовую таблицу. Эти операции обычно выполняет оконная система. Осцт предоставляет функцию о)ц(бе<со<от(), которая вызывает специфичную для оконной системы команду.

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

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

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

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