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

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

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

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

Нажатие клавиши г переводит объекты в сцене в первоначальное состояние. Для получения хорошего результата при пересечении прозрачных объектов их нужно рисовать от задней грани к передней. Листинг 6.3. Трехмерное смешивание: а(рлаЗЕ).с №Оегзпе МАХЕ 8.8 №Оетзпе И!МЕ -8.0 №оегзпе Е!МС 0.4 »сат!с (1оа1 зо1107 = МАХЕ; »за(!с 11оас 1гапзрагеп(Е = И1МЕ; »Саззс 6спзпс арпеге((»1, сооесз»1; 5(атзс чозе зпз1(чозо) ( 6С(1оас еас аресо1аг() = ( 1.0, 1.8, 1.0, 0.15 61(1оаз еаз апзп!пе»з[] = ( 100.0 ); 6((1оас роз!с!оп() = ( 0.5, 0.5, 1.0, 0.0 ); 81насегза1!ч(6С РМОМТ, 6( 5РЕСОСАН, пас зреси1аг); 81на1егза1(ч(6С РНОНТ, 61 5Н1М1МЕ55, аа1 зпзпзпееч); 81(зхпс(ч(6С 116НТО, 6С РО51Т!ОМ, ро»!(!оп); 61Епаьзе(6( С16НТ1М6); 61Епаь)е(6С (16НТВ); 81Еп»озе(6С ЬЕРтН ТЕ51)З зрпегесз»1 = 616епс!»Са(1): 81нечзс!»1(зрпеге(з»1, 61 СОИР!СЕ): 61и(5о1зз)5рпеге(8.4, 16, 16); 81Еппс! ас(); сове(!»1 = 616епсзч1»(1); 61нен(ззС(сьье(з»1, 6С СОИР!СЕ); 81и(5о1(есоье(8.6); 81Епоь(зс(); ) 212 Глава 6 ° Смешивание, сглаживание, туман н отклонение Листинг 6.3 (продолжение) зо1!бЕ =- Е1МС; сгапзрагеп(Е += 71МС; 51исро»1Йеб!»р1ау() ! ) чо!б кеуьоагб(ипз!абеб сьаг хеу, !п1 х, !пс у) ( зи!(сп (Кеу) ( сазе 'а': са»е 'А': зо1!б7 = МАХЕ: Сгапзрагеп(Е = М1МЕ; в1и1101еуипс(ап!васе); Ьгеах; сазе 'г': сазе 'Й': 5011бЕ = МАХЕ; сгапзрагептЕ = М1МЕ; 51итрозсаеб! »р1ау (); Ьгеах; сазе 27: ех!1(е); ) Ьгеа)с; ) !пт аа!п((пт агас, спаг'* агач) ( 51и11п)с(аагас, агач); а(ис)п!10!»р)аумобе(ссит ооовсе ! Осот Йов ~ 0(от 05Ртн); 51ис(п!1Н!пбои5(те(500, 500); 51иссгеа1еи! обои(агач(9) ); чп!1(); а1исаезпарегипс(ге»ларе); а1итхеуиоагбгипс(хеуьоагб); 51ито!»р1аурипс(б!»р1ау); В1исна!псоор(): ге!игл 0; Сглаживание Как вы уже могли заметить, в некоторых написанных вами программах линии на рисунках, особенно почти горизонтальные или почти вертикальные, кажутся зубчатыми.

Эта «зубчатость» возникает из-за того, что идеальная в теории линия на практике составлена из групп пикселов, которые выстраиваются на пиксельной сетке. В дг ном разделе описаны технологии для устранения втой ступенчатости (ее уменьшения). На рис. 6.2 изображены две пересекающиеся линии, как в исправленнс 1, так и в исходном виде. Изображения масштабированы для большей наглядности.

Сглаживание 213 Рис. 6.2. Ступенчатые и сглаженные линии Ни рис. 6.3 показано, что диагональная линия толщиной в 1 пиксел некоторые пвкселы перекрывает больше, чем остальные. Фактически при выполнении сглаживания ОрепС1. вычисляет значения локргытия для каждого фрагмента па осювании площади пикселов, охваченной линией. На рис. 6.3 также приведены эти пиления покрытия для рисуемой линии.

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

Выработать компромисс между качеством изображения и скоростью выполнения ООИОГаЕт фуНКцИЯ 81Н1лг О; с ней полезно поупражняться, но не все реализации се поддерживают. А .040510 В .0405!О С .878469 0 .434259 Е 007639 Е 141435 6 .759952 Н 759952 1 141435 .007639 К .434259 878469 М .040510 И 040510 Рис. 6.3. Определение степени покрытия уоЫ 81НО лС(С1.епцш Гагйей С1.еппш 1ппг); Управляет рядом режимов работы ОрепСВ.

Аргумент гагяег идентифицирует подконтрольный режим, его возможные значения перечислены в табл. 6.3. Аргумент лглс может принимать следующие значению ВЕ ЕА5ТЕК для отдания предпочтения скорости обработки, 6Е Н1СЕ5Т с целью постижения наивысшего качества или 6Е 00НТ САКЕ для снятия всех требований. Интерпретация 214 Глава 6 ° Смешивание, сглаживание, туман и отклонение подсказок зависит от реализации.

Некоторые реализации ОрепС1. могут на них не реагировать. Значение аргумента Гагцес 6С РЕК5РЕСТ1УЕ СОККЕСТ10М Н1МТ связано с интерполяцией значений цвета и координат текстур вдоль примитива: или линейно в пространстве экрана (относительно простые вычисления), или с нахождением правильной перспективы (что требует больших усилий).

Часто системы выполняют линейную интерполяцию цвета, поскольку результаты, являющиеся технически не совсем корректными, визуально приемлемы. Однако в большинстве случаев текстуры требуют максимально пригодную интерполяцию по перспективе. Таким образом, реализация ОрепС1. может задействовать этот параметр для управления методом интерполяции. (См. главу 3 для справки о перспективной проекции, главу 4 для получения информации о цвете и главу 9 по вопросам текстурирования.) Таблица 6.3.

Значения аргумента тагрет функции д!Н)пт() Значение Применение 6( Р01МТ 5МООТН Н1МТ,ОЕ Е1МЕ 5МООТН Н1МТ, Управление качеством сглаживания точек, 6Е РОГУООМ 5МОООТН Н1МТ линий или иногоугольников 6С Е06 Н1МТ Указывает, выполнять ли вычисления при наложении тумана по пикселам (61 М1СЕ5Т) или по вершинам (6С ЕА5ТЕ5Т) Качество интерполяции координат при вычислении цветов и наложении текстур Качество и производительность автоматической генерации М1РМАР-текстур Качество и производительность сжатых текстурных изображений 66 РЕКЗРЕСТ1УЕ СОККЕСТ10М Н1МТ 6Е ТЕХТОКЕ СОМРКЕ5510М Н1МТ Сглаживание точек или линий Сглаживание в режиме ГсбВА В режиме РСВА необходимо включить смешивание.

Обычно используются сле- дующие факторы влияния: 6С 5РС АСРНА для источника и 6С ОМЕ Н1М05 5ЙС Одним из способов устранения ступенчатости для точек или линий является включение сглаживания с помощью вызова функции 61Епа(з(е О со значением аргумента6С Р01МТ 5НОООТН или 6С С1МЕ 5НООТН для точек и линий соответственно. Кроме того, функция д1Нт пт () позволяет управлять качеством сглажива. ния. (Напомним, что размер точки и толщина линии являются настраиваемыми. Кроме того, можно создавать прерывистые линии.

См. раздел «Подробно о линнях> главы 2.) Затем выполняется алгоритм, описанный в одном пз следующих разделов, в зависимости от режима работы (зсСВА или индексированных цветов). Другой техникой сглаживания точек или линий является технология мультивыборки, описанная в разделе «Сглаживание геометрических примитивов с помощью мультивыборкиь этой главы. Сглаживание 21Б А[РВА для получателя. Альтернативный способ: если значения альфа-компонента Едя получателя установить в 6С ОМ Е, линии в местах пересечения будут более ярками.

Сглаживание тем более заметно, если используются большие альфа-значе(гдя. Помните, что поскольку вы выполняете смешивание, вероятно, нужно ]честь порядок рисования, как было показано в разделе «Трехмерное смешиваане с использованием буфера глубиныю Одаако в большинстве случаев порядок рисования можно не учитывать, и это не окажет каких-то нежелательных эффектов.

Программа в листинге 6А инициализирует нужные режимы для сглаживания, а затем рисует две пересекающиеся диагональные линии. Когда программа запущена, с помощью клавиши г можно вращать линии для того, чтобы оценивать их выравнивание при различных углах юклона. Обратите внимание, что в этом примере мы обходимся без буфера глубнны и отключили его. Листинг 6.4. Сглаженные линии: аагдЬ.С зсэт!с (1оаС гоСАп91е = О.; Л Инициализируем сглаживание для режима Й6ВА, включая эльфа-смешивание, указания режима работы и толщины линии. Выведем значения детализации и толщины линии, зависимые от реализации чо\Е !п(с(чозо) ( 6[(1оаС ча1цез(2]; 916еСР1оасч(6С С]МЕ И[ОТН 6ЙАМОСАЙ]ТУ, ча]цез); рг!пс(("6С (1МЕ И!ОТН 6ЙАМОСАЙ1ТУ равно %3.1()п", ча1цез[ В ]); 916есР1оатч(6С С!МЕ ИТОТН ЙАМОЕ, ча]цез); рг(пСГ("6С С1МЕ И]ОТН ЙАМ6Е равно %3.

1Т %3.1Г(п", ча1цез[0], ча1цез[1]); 91Епаще(6С С1МЕ 5НООТН); 91Епаще(6С ВСЕМО); 91В1епбрцпс(6С 5ЙС АСРНА. 6С ОМЕ Н!М05 5ЙС АСРНА)! 91Н(пС(6С щМЕ 5НООТН Н]МТ, 6С ООМТ САНЕ); 91С(пен!ОСН(1.5); 91С!еагСо1ог(0.9, 0.0, 9.0, 9,0); Л Рисуем две диагональные линии в виде буквы Х '/ чоы О(яр!ау(чо!О) ( В]С(еаг(6С СОСОЙ ВОРРЕЙ В]Т); 91Со1ог3((9.9. 1.9, 9.9); В]Рцзлнатг(х О; а!Йотатет(-готдпзсе, О.О, О.О, О.ц; 91Вех(п(6с с1МЕ5); В(ЧегСехгт(-9.5, О.5); В!Честен)((9.5. -9.5); 9!Ело(); 91Рорнэтг(х О; продолжение р 22б Глава б ч Смешивание, сглаживание, туман и отклонение Листинг б.4 (продолженое) 91СЬ1огЗТ(9.9, 0.0, 1.9); 91Роьлна(г!х(); 91ко(а(ет(гоСАпб1е, 0.0, 0.9, 0.1); 919ев!п(6С С 1ИЕ5); 91ЧегСех2((9.5, 0.5); 91Чегеех2((-9.5, -0.5); 91Епе(); а1Рорнаег!х(); 91Е1цал(); ) чо(с[ геьларе(!пС и, !пС Ь) ( 91Н!еиРогС(9, О, (61!пС) и, (6!.!пС) Ь); 91Маег!хноае(6С РЙОЗЕСТ10И); 91(оао10епС!Су(); !г (и <= и) 91осггло20(-1.9, ).О, -).О (61!1 С)п/(61([оаС)и, 1.9'(6С(1оаС)П/(61(1оаС)и); е1ье 91иогСПЬ20(-1.9"(6С(1оаС)и/(6С(1оаС)Ь, 1.9*(61(1оаС)и/(61(1оаС)П, -1.9, 1.0)', 9]наес!хноее(6С ИООЕСН!ЕН); 91(оао1вепС!Су(): чо!Е Кеувоаго'(опа!Впее слег Кеу, !пС х, 7пС у) ( аи!Ссп (Хеу) ( саве 'г': саве 'й': гоСАп91е е= 29.; !! (гоСАпб1е >= 369.) гоСАп91е 9]оСРовеяеп!ар]ау(); Ьгеах; саве 27: /' Клавиша Еас */ ех!С(0); Ьгеак; вагап\с: Ьгеак; !пс ша!и(!пс агбс, сваг" агах) ( 91иС1п!С(йагбс.

агвч); 91о(1п!Со!ар1аунове(6СОТ 51МОСЕ [ 6[ ОТ К6В); 91оС1п!СН!поои5! хе(200, 200); 91оССгеаеей!пеон(агвч[ 9 ] ): 7п(с(); 91ЧСйеаларегипс(геьларе); Сглаживание 217 И1иСКеуЬоагбрипс(иеуЬоагб); И1иСО(зр1аурипс(бсзр1ау); И1итнасл(оор(): геСигп 0; ) Сглаживание в режиме индексации цвета Для устранения ступенчатости в режиме индексации цвета необходимо загрузить и использовать карту цветов.

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

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

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

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