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

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

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

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

Поскольку используется единнчная матрица, явно установленное положение источника света (1.0, 1.0, 1.0) со' храняется и при умножении на модельно-видовую матрицу. А раз дальше пи положение источника света, ни модельно-видовая матрица не изменяются, ' направление распространения света остается прежним — (1.0, 1.0, 1.0).

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

Затем надо выполнить желаемое модельно-видовое преобрзование (на стеке модельно-видовых матриц) и сбросить позицию источника, скажем, в процедуре отображения б ! 5 р1ау () . В листинге 5.5 показан примерный КОД ПРОЦЕДУРЫ б ! 5р1ау (). Листинг В.Б. независимо движущийся источник света ссас!с 6сбоиые ар!и; м!Н Щ ср1ау(иочб) ( 6((1оаС 1!ВПС роз[С!оп[[ = ( О.О. 0.0, 1.5, 1.0 ): 61С1еаг(6С СОСОН ВВЕРЕН В1Т [ 6С ОЕРТМ ВНРРЕН В1Т); 61РиаПМаСг!х(); Н1и(ооХАС(0.0, 0.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); Н[Риаьна(г!х(); Н1во(аСеб(ар!и, 1.0.

В.О, В.О): Н[С!Вкеси(6( С[6МТО, 6С Р05[Т[ОМ, 1!НПС рос!С!оп); В1РарМа(г!х(); Н1и(5о1[бтогиа(В.275, О.В5. В, 15); к[горна(г!х(); Н[Р[иаь(); ) Гаобзльная переменная зрсл, вероятнее всего, инициируется с устройства ввода. Процедура б! 5р1ау () вызывает перерисовку сцены с источником света, поверн)тым вокруг неподвижного тора на арсл'. Заметьте, что две пары команд, с[РиьниаС г! х () и 61рориаС г ! х (), изолируют видовые и модельные преобразонання. Так как в программе из листинга 5.5 точка обзора остается неизменной, тенрдая матрица помесцается в стек, а затем командой В(иьооКАС() задается тре- буемое видовос преобразование. Далее получившаяся матрица снопа заносится в стек перед преобразованием поворота командой 61Ро с а себ О. После этого задаесся положение источника света в новой повернутой системе координат таким айраном, что источник света оказывается повернутым относительно своего пераоначального положения.

(Помните, что позиция источника света сохраняется в в[новых координатах, получаемых после преобразования модельно-видовой матрацей.) Когда матрица выгружается из стека, рисуется тор. 178 Глава 5 ° Освещение Листинг Б.б. Перемещение источника света с помощью модельных преобразований: гпоче]]ойс.с зтаС]с 1пг зр1п = 0; чо1б !и!т.(чо!б) ( 91С1еагСосог(8.8, 0.0, 0.0, 0.8) ! 915лабенобе](61 5ИООТН): 91Епаь]е(6С С16ЙТ1М6); 91Епаь]е(6С С16НТВ); 91Епаь]е(61 ОЕРТН ТЕ5Т); ] /' Здесь происходит сброс после модельного преобразования /' Источник света получает новые мировые координаты.

/* Куб обозначет положение источника света. */ чо1б б15р1ду(чо1б) ( (91КОСЭСЕб) 6111оаС роя)Стоп(] = ( 0.0, 0.9, 1.5, 1.0 ); 91С1еаг(61 СОСОК ВОРРЕК 81Т ] 6( ОЕРТН ВОРРЕК 81Т); 91Ризлиатгтх(); 9\Тгапз1атет(8.8, 8,0, -5.8): 91Ровлиатг1х О; 9]Кота!об((6(бооб]е) зР(п, 1.0, 9.9, 9.9)1 91СтВНС!ч(6С С16НТВ, 61 Р051Т!ОМ, Роз!С(оп); В!Тгапз1аСеб(0.9, 9.0, 1.5); 9101заь]е(61 С16НТХМ6); 91Со1огЗГ(0.8, 1.0, 1.0); 91чСИ!геСоье(0.1); 91Епаь]е(61 С16НТ!М6); 91РоРМаег1х(); 91оС5о1!отогнав(8.275, 0.85, В. 15); 91РорМаСг1х(); 91Р1озп (); чснб гезнаре(!пС и, 1пС П) 91Н1еирогС(0, О, (6(сисе1) ы, (6Сзтсе!) П); 91МаСг!хнобе(6С РКО)ЕСТ10М); 911оаб1беп(1Су(); 91НРегзресстче(48.8, (6111оас) ы/(6с!1оас) и, 1.0, 28.8); 91НатгтхМобе(6С МООЕСЧ1ЕИ): В листинге 5.6 приведена программа, поворачивающая источник света вокруг не- подвижного объекта.

При нажатии левой кнопки мыши угол поворота источника света увеличивается на 3(Г. Положение источника света на сцене обозначено ма- леньким неосвещенным каркасом куба. Создание источников света 179 91(оаб[беп(1(у (); ') чеи аоизе(1пт Ьи(1оп, 1пс атате, !п1 х, 1пг у) 5н1(сь (Ьи(1оп) ( сазе 61ОТ ЕЕРТ ВОТТОН: 1т (ата1е == 6(ОТ ООИН) ( зр(п = (ар1п + 38) % 360; 91и(Роатяеб!5Р1аУ()'1 Ьгеай; бетаи11: Ьгеах; (п1 аа1п(зпг агзс, сьаг" агзч) 51и11п11(аагзс, агзч); 91и(1п110!ар1аунобе(6(ОТ 51Н6(Е [ 6(ОТ 968 [ 6ЕОТ ОЕРТН); 91и(1п1(Ичпбои51хе(580, 509); 91и(1п1(И1пбонРоа111оп(108, 188); 91и(сгеатеи)обои(агач [8] ) '! !п11(); 51и(0!ар1ауЕипс (б)ар1ау); 91и(аезьарегипс(ге!паре); 91и(йоиаегипс(ааиае); 91и(йа!п(оор(): ге(игп 8; ремещение источника света вместе с точкой обзора Чтобы создать источник света, который перемещается вместе с точкой обзора, о установить его позицию до видового преобразования.

Тогда видовое преразование будет одинаково влиять и на источник света, и на точку обзора. Помте, что положение источника света сохраняется в видовых координатах — это я нз небольшого числа случаев, когда видовые координаты весьма важны. листинге 5.7 положение источника света задается подпрограммой 1п! 1(), косохраняет его в видовых координатах (О, О, 0).

Другими словами, свет покается из оптической системы фотокамеры. нг Б.7. Источник света, перемещающийся вместе с точкой обзора поа(!19пе роз!1!оп[] = ( 0.8, е.О. 0.8, 1.9 ]; 51у!енрог((9, 9, (6(! п() и, (61!от) П); 91на1г)хмобе(61 РКО)ест10й); 91(оаб1бепс(су(); 51игег!реет!че(48.8, (6111оат) и/(6Е(1оа() и, 1.0, 190.8); 91йа(г1хнобе(61 НООЕЬЧ1ЕИ); Еиоаб1беп(11у (); ЕИ19ПГРЧ(6( 116НТ8, 6( Р051Т10Н. 119ЬЕ РОЗ!1!ОП); 180 Глава 5 ° Освещение Теперь, если точка обзора переместится, источник света последует за ней, с сохранением дистанции (О, О, 0) относительно глаза. Расширим программу в листинге 5.7 глобальными переменными ех, еу, ег, управляющими положением точки обзора, и ирх, иру, ирг, указывающими вектор ориентации. Процедура б! 5р1ау(), вызываемая из цикла обработки сообщений для перерисовки сцены, может выглядеть следующим образом: 5!а!!с бьбобше ех: еу, ех, чрх, вру, ирх; чо!б б!зр1ау(чо!б) ( 8101еаг(01 С010Й ВВЕРЕН 81Т ! 01 0ЕРТН ВВЕРЕН 81Т); 81РчаММагп х(); 81бьооХА((ех, еУ, ег.

0.0, 8.0, 0.0, бРх, бРУ, ива); 81и!5о1!бтогоз(8.275, 0.85. 8, 15); 81Рорна(г!х(); 81Р)изь(); Когда перерисовывается освещенный тор, и источник света, и точка обзора перемещаются в одно и то же место. Благодаря изменению данных, передаваемых функции В\и(ооКА1(), и перемещению позиции наблюдения, объект никогда не будет темным, поскольку он всегда освещается с позиции наблюдателя.

Даже если не изменять координаты позиции источника света явно, он все равно будет перемещаться, поскольку изменяется видовая система координат. Этот метод может быть весьма полезен при имитации фонаря на каске шахтера, Другим примером может быть свеча или лампа, которую несут в руке. Позиция источника света, задаваемая вызовом функции я11!ВП((ч(01 110МТ1, 00 Р051Т10М, роз ! 1! оп), по смыслу будет соответствовать указанию расстояний х, у и г источника от наблюдателя. Затем при изменении положения наблгодателя источник света будет оставаться на том же относительном расстоянии.

Упражнение Измените программу в листинге 5.6 следующим образом: ° заставьте источник света перемещаться, а не вращаться вокруг обьекта. Подсказка: в процедуре б! зр1ау() вместо первого вызова функции 81Рогагеб() используйте я1тгап51агеб (), и выберите подходящее значение вместо зр!л; ° измените ослабление так, чтобы интенсивность света уменьшалась при удалении от объекта.

Подсказка: для установки нужного ослабления добавьте вызов функпии 811!ялг«(). Пособие от Нэйта Робинса по освещению Если у вас есть набор обучающих программ Нэйта Робинса, запустите пособие по позиционированию источников света. (О том, где взять эти программы, написано в разделе «Набор обучающих программ по Ореп61 от Нэйта Робинсам) С помощью сред тва обучения можно поэкспериментировать с положением источники света и оценить влияние модельно-видовой матрицы. Выбор модели освещения 181 В Орепо(.

понятие модели освещения слагается из четырех компонентов: ° интенсивности общего фонового освещения; ° положения точки обзора — локального по отношению к сцене или бесконечно удаленного; ь расчета освещенности для лицевых и обратных граней объектов; ь того, должен или нет отраженный цвет быть отделен от фонового и рассеянного и наложен на объект после операций текстурирования. Зтот раздел объясняет способы задания модели освещения.

Здесь также обсужднчся, как включать освещение, — то есть как сказать ОрепС1., что она должна выполнять расчет освещенности. ](лл задания всех параметров модели освещения используется команда 111!ВЬ(Иобе1*(). (1)ункция В1(тВПсиобе1ь() имеет два аргумента; имя пара((в]ра модели освещения и значение для этого параметра. чой В1С]ВЬ(нобе1(]()(С].епшп рпате, ТУРЕ рахат); чоЫ В1(тбпснобе1(]])ч(С1епшп рпате, ТУРЕ "рагат); Устанавливает свойство модели освещения, идентифицируемое аргументом рлагле (табл. 5.2).

Аргумент рагат — это собственно значение свойства; а если используется векторная версия команды — указатель на набор значений. Не- векторная версия команды используется только для установки одиночных па- раметров и неприменима для 6( С!6НТ МОВЕ( АИВ1ЕНТ. таблица 5.2. значения по умолчанию для аргумента рпате функции Вн)йщмобе)*О Описание Значение по умолчанию Огиволическое имя (0.2, 0.2, 0,2, 1.0) 0.0 или 6( ЕА(5Е $( 116НТ МООЕС АМВ1ЕНТ 9 РВНТ МОВЕ( СОСА( Н1ЕЦГЕН й. (]6НТ МООЕс ТНГО 510Е 0.0 или 6( ЕА(5Е бщее фоновое освещение з(м обсуждалось ранее, каждый источник света может добавлять к сцене фоновое освещение. Кроме того, может присутствовать другой фоновый свет, не принадлекй никакому конкретному источнику.

Чтобы задать тсСВА-интенсивтгость та- В)гообшего рассеянного света, используется константа 6( (16НТ МОВЕ( АМВ1ЕНТ: ноас 1вобе! альт епс(] =(8. 2,0. 2,0. 2,1.0); 1]мвятиобе1тч(61 (16НТ НООЕ( АНВ1ЕНТ, 1вобе1 авЬтепт); .выбор модели освещения 116НТ МОВЕ( СО(ОЙ СОНТНОС 6( 5!НОСЕ СО(ОН Фоновая НОВА-интенсивность всей сцены Способ вычисления углов зеркального отражения (точка обзора локальная или в бесконечности) Выбор иежду односторонним и двухсторонним освещением Вычисляется ли отраженный цвет отдельно от фонового и рассеянного 182 Глава 5 ° Освещение В этом примере значения для 1вобе1 авп(елт совпадают со значениями по умолчанию для 61 116МТ МООЕЕ АМВ1ЕМТ. Поскольку эти числа задают небольшое количество белого фонового освещения, объекты сцены видны всегда, в отсутствие каких-либо дополнительных источников света.

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

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

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