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

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

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

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

Этот коэффициент, (, вычисляется по одному из трех уравнений и ограничивается диапазоном (О, 1): )=е''"" ' (6Ь ЕХР); ) =е ""'"""' (61 ЕХР2); (61 11МЕАй). епс( — ага гг В этих трех уравнениях а — расстояние в координатах глаза между точкой обзора н центром фрагмента. Им можно управлять с помощью основанных на вершинах юординат тумана, как описано в разлеле «Координаты тумана». Значения Йяыу, згагг и е~с(устанавливаются функцией а1РоВ* () .

использование коэффиццевта(" зависит от режима работы — ВСВА или индексации цвета — п описано н следующих подразделах. чо!с( к1Роя((()(С(.епшп рпате, ТУРЕ рагат); чоЫ к1РЬВ((()ч(С(.епннп рпите, ТУРЕ "рагат); Задает параметры и функции для вычисления тумана. Если значение рвите равно 6( РО6 МООЕ, рагит выбирается из трех коэффициентов туманю 6Е ЕХР (по умолчанию), 6Е ЕХР2 или 6Е Е1МЕАМ. Если рвите равно 6Е Е06 ОЕМ51ТУ, 6Е Р06 5ТАРТ или Й Е06 ЕМО, то рагигп — собственно значение (или указатель — для векторной версии команды) с(еняф, лагг или епй. (Значения по умолчанию равны 1, 0 в 1 соответственно.) В режиме КСВА для рвите действует константа 6'с Г06 СО(ОМ, тогда раннт указывает на четыре значения цветовых компонентов (ВСВА) тумана. Ссютветствунощее значение для рпате в режиме индексированных цветов равно Я. Р06 1МОЕХ, при этом аргумент рагат равен индексу цвета тумана.

228 Глава б ° Смешивание, сглаживание, туман и отклонение На рис. 6.4 представлены графики уравнений плотности тумана для различных значений параметров. тоо Процент базового цвета о о Расстояние от точки просмотра Рнс. 6.4. Уравнения плотности тумана Туман в режиме К6ВА В режиме РСВА формула для результирующего затуманенного цвета выглядит следующим образом: С=УС,+(1-)) Сл где С, представляет собой КбВА-цвет входящего фрагмента, а С; — цвет тумана, заданный с помощью 6Е Е06 СОЕО)(. Туман в режиме индексации цвета В режиме индексированного цвета цвет с учетом тумана вычисляется по формуле 1- 1г н (1 - () 1л где 1; — индекс цвета входящего фрагмента, а 1, — индекс цвета тумана, заданный с помощью 6Е Е06 1йОЕХ.

Для использования тумана в режиме индексированных цветов следует загрузить требуемый набор значений в палитру. Первый цвет в ней — цвет объекта без тумана, а последний — цвет полностью затуманенного объекта. Возможно, понадобится функция к(пеаг1ппех() для установки индекса цвета фона таким образом, чтобы он соответствовал последнему цвету в наборе. Этим способом можно заставить полностью затуманенные объекты сливаться с фоном.

Аналогично, перед рисованием объектов с помощью вызова к\1плех'() передается индекс первого цвета в палитре (незатуманенный цвет). Наконец, чтобы применить туман к различно окрашенным объектам в сцене, необходимо создать несколько цветовых наборов и вызвать 611поех* () перед каждым рисованием объекта для установки индекса текущего цвета на первый цвет соответствуюшего набора. Программа, приведенная в листинге 6.8, показывает, как создать нужные условия, а затем применить туман в режиме индексированных цветов.

Туман 229 Листинг 6.8. Туман в режиме индексирования цветов: Год)лбех.с Инициализируем карту цветов и туман. Устанавливаем цвет очистки экрана равнмм последнему цвету в цветовом наборе «/ Збеттпе НОНСОСОК5 32 Меипе КАМР5ТАКТ 16 т(аС!с чо(б !птС(чо«б) ( !пс т; 51Епав!е(6С ОЕРТН ТЕ5Т); тот (т = 0; т < МОНСОСОК5; т++) ( 6СГ1оаС звабе: злабе = (6Ст!оат) (МОНСОСОК5-т)/(6С(1оаС) НОМСОСОК5; 91ц15еССо1ог(КАНР5ТАйТ е т, злабе, злабе, злабе); ) 5!Впав!е(6С Р06); В!Ров!(ОС РО6 НООЕ, 6С С!НЕАК>; 51Ровт(6С Р06 ?НОЕХ, НОНСОСОК5); 51Ровт(6с Р06 5ТАКТ, !.0); а!Ров!(61 РО6 ЕНО, 6.9>; 51нтпС(6С Р06 Н?НТ, 6С М?СЕ5Т); 5161еаг!пбех((6С(!оаС) (НОНСОСОК5+йАНР5ТАКТ-!)); ) Из(тс чотб гепбег5рлеге(6Ст1оас х, 6С(1оаС у, 6(тсоаС с) ( В(Рцзпмасгтх(); 51Тгапз1асет(х, у, з): В\ч(нтге5рпеге(0.4, !6, 16); В!Рорнатгтх(); ) н Ен>н(1елт б(зр1ау() рисует 5 сфер на различной глубине «У та!б бтзр1ау(чотб) ( В!С1еаг(6С Сосок ВОТРЕН В!Т > 6( ОЕРТН ВОРРЕй В!Т); 511пбехт(КАМР5ТАКТ); гепбег5рнеге(-2., -0.5, -1,9); гепбегзрлеге(-!., -0.5, -?.9); гепбег5рлеге(0,, -9.5, -3.9); гепбег5рлеге(1., -9.5, -4.9); гепбег5рлеге(?,, -0.5, -5,9); В!Р!изл(): ) и!б гезваре((пт н, тпС Н) ( 51УтенрогС(9, 9, н, П); продолжение р 230 Глава 6 ° Смешивание, сглаживание, туман и отклонение Листинг 6.8 (продолжение) 91натгтхнобе(6( РМО)ЕСТ10М); 91(оаб1бепс! су(); «т (и «= Ь) 910гтпо<-2.5, 2.5, -2.5 <6(т[оаС>пг<6Стсоат>н, 2.5'(6СтсоаС)Ь/(6<т1оаС)и, -10.0, 19.0); е1зе 910«СЬЬ<-2.5*(6Стсоаг>ну<6(тсоаС)и, 2.5'<6<!спет>н><6[тсьаС>П, -2,5.

2.5, -10.0, 19.9); а[Магг(хлебе <6С МООЕСЧТЕИ); 91Соаб[бепгтСУ(>; ) чотб ХеуЬоагб(ил!талеб с аг Кеу, тпС х, «пС у) ( зиттсь (Кеу) ( сахе 27: ехтС(9) тпс аэтп(тпС атас, спаг*' агач) ( 91иС1п!С(аагас, агах); 91ЬС[п!СО!ьр1аунобе(6(ОТ 51М6(Е [ 6(ОТ 1МОЕХ [ 6СОТ ОЕРТМ); 91ЬС1п!СИ!пбои5!ге(599, 509); 91и(сгеагентпбои(агах[ 0 )); «и!с(); 91игаехпарерипс(ге!Паре); 91ЬСКеуьоагбтипс<хеуьоагб); 9)иСО!хр1аугипс(б!хр1ау),' 9[игла«пьоор(): ге!игл 0; Координаты тумана Вы уже видели, что в уравнения тумана входит координата г: «ч е-(ч«хх«х «) (6 ЕХР) > = е и те" > (6С ЕХР2); У = (6с с1мелм), епй — гтаг(' По умолчанию г вычисляется автоматически как расстояние от глаза до фрагмента, но иногда требуется контролировать ее значения вручную.

Благодаря этому можно получить уравнения тумана, отличные от предлагаемых Орепо[.. Например, чтобы создать авиасимулятор с приземным туманом, важно смоделировать сгущение тумана ближе к уровню моря. В Орепой версии 1.4 доступно явное задание значений г на основе вершин с помощью команды а1Еоа(6С Е06 СООМ01МАТЕ 50ОМСЕ, 6С Е06 СОМ01МАТЕ). В рс- Туман 231 жиме явного указания координат тумана можно определить координату тумана з каждой вершине посредством команды и1роиСоогб* (). чо(б В(роиСоогб(Я(ТУРЕ г); чоЫ В(ЕОВСоогб(И)ч(ТУРЕ "г); устанавливает текущую координату тумана в г. Если 6С ЕО6 СООРО1МАТЕ— исходная текущая координата тумана, текущая координата тумана используется текущим уравнением тумана (6С с1меАР, 6С ехР или 61 ехР2) для вычисления тумана.

Значения г должны быть положительными числами, представляющими собой расстояние в координатах глаза. Необходимо избегать отрицательных координат, так как в этом случае результатом вычислений могут стать неправильные цвета. В случае геометрических примитивов координаты тумана могут быть интерполи(юзаны для каждого фрагмента. Программа из листинга 6.9 рисует треугольник и позволяет задавать координаты т)мана для каждой вершины цифровыми клавишами. В режиме явного указания пюрдинат тумана перемещение точки обзора вперед и назад (клависци Е и ()) не изменяет координат тумана и гюэтому не сказывается на цвете вершин. При выключении этого режима (клавиша с) перемещение точки обзора будет влиять па цвета, вычисленные для тумана.

Листинг 6.9. Координаты тумана: (одсоогб.с Нзт(с 6((1оаС (1, Е 2, Г 3; Н Инициализируем туман тсзсзс чо!б 1п!с (чо(о) ( 6((1оаС Гоксо1ог(4) = (0.0, 0.25, 8.25, 1.0); (1 = 1.8(; (2 = 5.8(; (3 = 10.0(; К(Епво(е(61 ЕО6): К(рои( (6( Е06 МООЕ, 6С ЕХР); К(гок(ч (6С ЕО6 СОСОР, (оксо)ог); К(рок( (6С Е06 ОЕМ51ТЧ, 0.25); К(Н)пС (ОС Е06 Нгнт, 6С ООМт САРЕ); К(рои1(6С Г06 СООР01МАТЕ 500РСЕ. 6( Е06 СООИ01МАТЕ),' 51С1еагСо1ог(8,0, 0.25, 0.25, 1.8); /" цвет тумана */ ) !' Рроцедура 01вр1ау() рисует треуголвник в углу '/ твщ О(501ву(чо)б) ( 51С1еаг(61 СОСОР ВОЕЕЕР В1Т); К(со(огзт (1.8(, 8.25(, О.ОГ); продолжение ит 232 Глава б ° Смешивание, сглаживание, туман и отклонение Листинг 6.9 '(продолжение) 918ев(п (6! ТЙ1АМОСЕ5); 91Раасоогб! ((1); 91Чегеех3! (2.91, -2.8(, 8.9!); 91Ровсоогб! (! 2); 91Чегсех3! (-2.0(, 0.9(, -5.0!); 91РоВСоогбт (! 3 ); 91Чег1ех)т (В.вг, 2.8(, -10.8!); 91Епб(); 91и(5иарвоггегь(); чо(б Кеувоагб(опь!Впеб спаг Кеу.

!пс х, (пс у) ( ьи!1сп ((сеу) ( саае 'С: 91РЬВ((6С Р06 СООЙОХМАТЕ 500ЙСЕ, 6С РЙА6МЕМТ ОЕРТН); 9)отрос(Йеб!ар)ау(); Ьгеах: саве 'С 91РоВ!(6! Е06 СООЙ01МАТЕ 500ЙСЕ, 6! Р06 СООЙО(МАТЕ); 91исРоаскеб!ар!ау(); Ьгеаи: саае '1': (1 = (1 + 9.25; 91осроасаеб(хр)ау(), Ьгеаи: саве '2': (2 = Г2 + 0.25; 91ц(Роаскеб! ар!ау(); Ьгеаи; саве '3': (3 = (3 + 9.25; 91ы1Роаскеб! ар!ау(); Ьтеаи; саве 'В': (Г1 > 9.25) ( (1 = (1 — 0.25; 9!и!Ров(Йеб(ар!ау(); ) Ьгеаи: сахе '9': >! ((г > 9.25) ( (2 = Г2 — 0.25; 91о(Роьскеб!ар!ау() ) Ьгеах; саае '0': ((3 > 8.25) ( (3 = (3 — 8.25; 91осроьскеб!ар)ау(): Параметры точки 233 Ьгеак; са»е 'Ь': Х>иатг)хиосе (0( НОЬЕСЧ>ЕН>; 81тгап»1ате( (0.0, 8.8.

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

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

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

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