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

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

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

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

При бесконечном удалении можно считать, что лучи света от него при падении на объект параллельны друг другу, Примером направленного источника света в реальном мире является солнце. Источники второго типа называют позиционнььни, так как положение такого источ. ника качественно влияет на сцену, и в особенности направление, откуда приходят световые лучи. Настольная лампа — пример позиционного источника света.

Различия между направленным и позиционным источниками света показаны на цветном рисунке 13. Источник света, используемый в листинге 5.1, является направленным: 61(1оат 1)янт роз)1)оп() = ( 1.0, 1.0, 1.0. 8.8 ); 81Ь(анстт(61 Ь16НТО, 61 Р05!Т10Н, 1звь! Роэ!т!оп); Видно, что для параметра 6Е Р051Т10Н определяется вектор из четырех значений (х, у, г, гв). Если последнее значение, гв, равно нулю, имеет место направленный источник света, а координаты (х, у, г) описывают его ориентацию, Эта ориентация преобразуется молельно-видовой матрицей. По умолчанию значение параметра 6Е Р051Т10Н равно (О, О, 1, О), то есть в сцену вводится направленный источник света, причем направленный в сторону отрицательных координат а Создание источников света 173 (Кстати, ничто не запрещает нам создать направленный источник света (О; О; 0), ' ю смысл в этом напрочь отсутствует.) Если значение те не равно нулю, задается позиционный источник света, а значе.

аия (х, у, з) определяют его положение в однородной системе координат объекта (си. приложение Е). В последующем положение преобразуется модельно-видоюй матрицей и сохраняется в координатах наблюдателя. (Для получения доползктельной информации см. раздел «Управление положением и направлением исзочннков светая.) Также по умолчанию позиционный источник света излучает во ксх направлениях, но ограничить разброс лучей конусом можно, если сделать ' пот источник света «прожектором». (Для получения более подробной информаЕии по данном вопросу смотрите следующий раздел.) 'ПРИМЕЧАНИЕ Помните, что цвета лицевых многоугольников с градиентной заливкой определяются цветами мршин. Поэтому часто большие многоугольники несовместимы с локальным освещением. Так, зглк расположить источник света рядом с центром многоугольника, не исключено, что дальние вершины не получат достаточно света, то есть многоугольник будет выглядеть более темным, чен мы от него ждем.

Для решения этой проблемы нужно разбить большой многоугольник на несколько более мелких. 1(зя реальных источников света интенсивность освещения падает с увеличением (всстояния до источника. Поскольку направленный источник располагается бесЕюиечно далеко, ослабление для пего априори отключено. Однако для локального зпочника света оно может потребоваться. ОрепСЕ реализует ослабление интендшноши источника света, умножая вклад этого источника на коэффициент осззбления: 1 коэффициент ослабления = нс ) т кс,(7 ' )йе д — расстояние от источника света до вершины, Й, — 6Е СОМ5ТАМТ ()ТТЕМОАТ10М, Й~ — 6Е Е1МЕАМ АТТЕМОАТ10М, Й« — 6Е ООАОМАТТС АТТЕМОАТ10М.

По умолчанию к, равен 1, а й, и (з„равны нулю, но любой из коэффициентов может еть другое значение; 1)ыепст<6е Е16нто, 6е соизтлит Аттеивлт)ои, г.о>, 1)ыеыт16е е16нтв. 6е е1мела АттемОАт10м, 1.е); 1ыззст(6Е Е16НТО, 6Е ООАОМАТ16 АТТЕМОАТ10М, 8. 5); тите внимание, что ослаблять допускается фоновую, рассеянную и отражен- составляющие, но никак не излучение и общий фоновый свет. Также заметь- (а что раз ослабление требует дополнительных математических операций— ения для каждого вычисляемого цвета, то оно может ухудшить производиьяость приложения. рожекторы 41ке говорилось, что можно вынудить источник света действовать как прожекдор, ограничив испускаемый свет конусом.

Чтобы получить прожектор, нужно 174 Глава 5 ° Освещение задать размах этого конуса. (Помните, что, поскольку прожектор является позиционным источником света, его необходимо расположить в требуемом месте. Кроме того, Орепб). нс мешает нам создать направленный прожектор, но это действие не оправдано с точки зрения смысла.) Для задания угла между осью конуса и луча по краю конуса используется параметр 6Е 5РОТ СОТОРР. Размах конуса равен удвоенному этому значению, как показано на рис. 5.2. Рис.

5.2. Параметр 66 5РРТ СПТОРЕ Свет не выходит за границы конуса — чего мы и ждали. По умолчанию величина 6С 5РОТ СОТОГЕ равна 180.0. Это означает, что свет испускается во всех направ- . лениях (размах в вершине конуса равен 360'). За исключением этого специально- . го значения 180.0, допустимые значения лежат в диапазоне 10.0, 90.0').

Следуюгцая команда ограничивает направление распространения света от источника углом 45'. В)Е)ВЫГ16Е Щ6НТВ, 6Е 5РОТ СЗТОРР, 45.В); Кроме того, необходимо задать направление освещения, то есть ось светового конуса: 6ЕГ1оаг прот сц гесс)оп ) ] = ( -1. В, -1. О, В. 0 ); 61Е)ВПСГР 16Е Е16НТВ, 6Е 5РОТ О1ЯЕСТ10й, зоог о!гесс)оп),' Направление указывается в ксюрдинатах объектов. По умолчанию это (0.0, 0.0, — 1.0), то есть когда режим 6Е 5РОТ 01кЕСТ10Й не включен, свет распространяется вдоль отрицательной оси к Помните, что направление впоследствии преобразуется модельно-видовой матрицей так же, как и векторы нормалей, а результат сохраняется в видовых координатах. (Для получения дополнительной информации об этих преобразованиях см.

раздел «Управление положением и направлениея источников светам) Помимо размаха и ориентации, существует еще два способа управления интенсивностью распределения света в конусе. Во-первых, можно ввести в действие ' коэффициент ослабления, описанный ранее, умножаемый на интенсивность све- ) та. Кроме того, есть параметр 6Е 5РОТ ЕХРОЙЕЙТ, по умолчанию равный нулю, Создание источников света 175 управляюсций концентрацией светового пучка так, что интенсивность света больше на оси конуса и ослабляется к границам. Коэффициент ослабления равен косинусу угла между направлением света и направлением от источника света к осин(асмой вершине, возведенному в степень (показатель экспоненты). Таким ' образом, болыпий коэффициент 6С 5РОТ ЕХРОМЕМТ соответствует более сфокускрованному источнику света.

(Для получения дополнительной информации о вычислении освещенности см. Раздел «Математика освещения».) Несколько источников света Кок уже было отмечено, на сцене могут присутствовать до восьми источников сита (или больше, в зависимости от реализации ОрепСЕ). Поскольку Орепо1. с]нбуется вычислить, сколько света получает каждая вершина от каждого источвика, увеличение числа источников света весомо влияет на быстродействие. Константы, ссылающиеся на восемь источников света, — это 6Е Е16НТ9, 6Е Е16НТ1, 6[ С]6НТ2, 6Е Е]6НТЗ и т. д, Ранее нами устанавливались параметры для источника 6Е Е]6НТ9. Если требуются дополнительные источники света, необходимо сн(ать н их свойства, которые по умолчанию не совпадают со свойствами 6 ИЕНТО.

В листинге 5.3 задается белый прожектор с затуханием. Листинг Б.З. Второй источник света СИ!оас !СХПС1 аав(епс[] = ( 9.2, 9.2, 9.2, 1.0 ЕИ!оас !!9ПС1 О((гное[] = ( 1.8, 1.9, 1,8, 1.9 ); 5(ноас !19ПС1 оРеси!аг[] = ( 1.0, 1.8, 1.0, 1.0 ОСС!оас !(9ПС1 роз(ссоп[) = ( -2.0, 2.0, 1.0, 1.0 ); ЯС(!о»С орос Отгесс1оп[] = ( -1.9, -1.8, 0.0 ); 1!С(СНС(»(6Е МОНТ!. 66 АНВ]ЕМТ, !(9ПСС аеЬ(епс); 1\С!СШС»(6С С16НТ1, 6С 01ЕР05Е, !]ХНС1 01(газе); 1!С!Со!С»(6С С]6НТ1, 6С 5РЕСОСАН, 1(9ПС1 оресо!аг); 11ЫСШС»(6С С16НТ1, 6С Р051Т10Й, 1!КПС1 ро»1С(оп); 1!С!Со! С(6С С16НТ1, 6С СОМ5ТАЙТ АТТЕМОАТ!ОМ, 1.5); 1!1]сос ((6[ с!6нт1, 6с с1неАМ АттемнАт10м, О.

5); 1]С]спсс(6С С16НТ1, 6С ООАОМАТ]с АТТЕЙОАТ10Й, 8.2); 1!ССЕШГ(6С С16НТ1, 6С 5РОТ СОТОЕР, 45.0); 1!С!Ее!С»(6С С16НТ1, 6С 5РОТ 01МЕСТ10М, вроС Е(гесс(оп); 1!С!Со!С(6С С16НТ1, 6С 5РОТ ЕХРОМЕМТ, 2.0); 1!Епаще(6С С16НТ1); Есдн зтн строки добавить в листинг 5.1, сфера окажется освещена двумя источ- икканн; одним направленным и одним прожектором. )(прзжненне йонсннте листинг 5.1 следующим образом: «сделайте первый источник света цветным позиционированным, вместо белого направленного; 176 Глава 5 ° Освещение ° добавьте дополнительный цветной прожектор.

Подсказка: используйте код, аналогичный коду из предыдущего раздела; ° оцените, как эти изменения влияют на производительность, Управление положением и направлением источников света Орепо]. работает с положением и направлением источника света так же, как обращается с геометрическими примитивами. Другими словами, источник света является субъектом тех же матричных преобразований, что и примитив. И говоря более определенно, когда команда 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 восле этого задается положение источника света.

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

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

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