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

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

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

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

И говоря более определенно, когда команда 61116М С" () вызывается для указания позиции или ориентации источника света, это положение или направление преобразуется текущей модельно-видовой матрицей и сохраняется в видовых координатах. Это означает, что можно управлять положением и направлением источников света, изменяя содержимое модельно-видовой матрицы. (Проекционная матрица не влияет на эти параметры.) В данном разделе показано, как добиться трех перечисленных ниже эффектов, перенеся задание источников света в программе в другое место (относительно модельных и видовых преобразований): ° положение источника света не меняется; ° источник света движется вокруг неподвижного объекта; ° источник света движется вместе с точкой обзора.

Неподвижный источник света В простейшем случае, как в листинге 5.1, положение источника света не изменяется. В таком варианте оно задается после всех используемых видовых и/нли ' 1 модельных преобразований. Программа из листинга 5.4, включающая в себя подпрограммы 1п>С () и геэнаре(), показывает, как может выглядеть соответствую- ] щий код. Листинг Б.4.

Неподвижный источник света 9)Ч>еирогС(9. 9. (6(в1се1) и, (6(вссес) П); а)Магг(хиосе(0Г Рао>ЕСт]он>; 911оап1пепС>Су(); 1 (и <= П> 910/СПо(-1.5, 1.5, -1.5'П/и, 1.5*П/и, -10.0, 10.6): е1ве 610/СПо(-1,5'и/Ь, 1.5"и/П, -1.5, 1,5, -16,0, 19.6); 91Магг1хМапе(сг МООЕЕЧ]ЕН); 91(оап19епС1 Су ( >; /' далее в процедуре 1п(С() '/ 6111оаС 119ПС ров111оп(] = ( 1.9, 1.6, 1,0, 1.0 ); 91(19ПС(у(61 116Нтэ, 61 605]т>09, ров>С(оп); Видно, что сначала устанавливаются окно просмотра и проекционная матрица. Затем в модельно-видовую матрицу загружается единичная матрица, и только Создание источников света 177 восле этого задается положение источника света.

Поскольку используется единнчная матрица, явно установленное положение источника света (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., что она должна выполнять расчет освещенности.

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

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

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

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