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

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

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

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

Так как здесь функция комбинирования — бс 1МТЕЙРОСАТЕ, есть три аргумента, и они комбннируются между собой по следующей формуле: (А280 х Агя2) ь (Агя[ х (1 — Агя2)). Вот что они из себя представляют; ° АгяО, 61 ТЕХТОЙЕ, изображение текстуры, связанное с текущим прикреплен. ным объектом текстуры (тех]Чаше[0]); ° Атхт1, 6С РЙЕЧ1005, результат обработки предыдущего модуля текстуры, но поскольку здесь — это модуль О, 6С РЙЕЧ1005 — это текстурируемый фрагмент; ° АгИ2, 6С СОМ5ТАМТ, константный цвет; в нашем случае — (0.0, 0.0, 0.0, 0.2).

Результат интерполяции вы получаете как взвешенное смешивание изображения текстуры и фрагмента. Поскольку для режима операнда 6С ОРЕКАМО2 К6В указано значение 6С 5КС АСРНА, для взвешивания служит значение альфа- компонента константного цвета САщ2). Если вы запустите программу-пример с онЬ1 пе г, с, вы увидите 20% текстуры, сме- шанной с 80% плавно тонированного многоугольника. В программе сонЬ1пег. с также варьируется значение альфа-компонента для константного цвета, поэтому вы сможете оценить результаты различного взвешивания.

Исследование функции интерполяции показывает, зачем здесь используются несколько значений по умолчанию. Третий аргумент для интерполяции выступает н роли веса для двух других источников. Поскольку интерполяция — всего лишь функция комбинирования трех аргументов, чтобы задать для А~И2 значение по унолчани1о, используется константа 6С СОМ5ТАКТ. На первый взгляд может пока- иться необычно, что значение по умолчанию для 6С ОРЕКАМО2 КО — это 6С 5КС АСРНА. Но вес — обычно одинаковый для всех трех компонентов, так что использование одного значения не лишено смысла, и подстановка альфа-значения константы удобна.

Значения по умолчанию для некоторых режимов источников и операндов представлены в табл. 9.10. 1еблнца 9.10. Значения по умолчанню лля некоторых режимов источников и операндов аргумент рваче команды В1ТехЕлч Значение инициализации для аргумента рагат Применение вторичного цвета после текстурирования =ь Еогда текстура применяется к типичному фрагменту, с цветами ее текселов ком- Еинируется только первичный цвет. Первичный цвет может быть результатом 1нчнсления освещения и быть задан командой Втсо1ог* (). н- Весле текстурирования, но перед обсчетом тумана, иногда к фрагменту также е)вменяется вторичный цвет.

Приложения, использующие вторичный цвет, мо- Вт выдавать более реалистичные результаты для освещенных и текстурирован- ии объектов. но аг- К 5ООКСЕО КОВ К 5ООКСЕ1 К6В К 5ОВКСЕЕ КОВ К ОРЕКАМОО КОВ К ОРЕКАМО1 КВВ К ОРЕКАМО2 КВВ Применение вторичного цвета после текстурирования 379 6С ТЕХТОКЕ 6С РКЕЧ1005 6С СОМ5ТАКТ 6С 5КС СОСОК 6С ВКС СОСОК ВС ВКС АСРНА 380 Глава 9 ° Наложение текстур Вторичный цвет при отключенном освещении Если не включено ни освещение, ни режим суммирования цвета (командой к1Епав(е(ОС СОсОР 5ОМ)), тогда к цвету прошедшего текстурирование объекта лобавляется вторичный цвет (устанавливаемый к15есопбагуСо1ог* () ), чоЫ б15есопдагуСо1огЗ(Ь з 1 ( с( цЪ цз и1)(ТУРЕ г, ТУРЕ д, ТУРЕ ц); чоЫ й15есопбагуСо(огЗ(Ь з ( (с( цЪ цв ц()у(сопзс ТУРЕ "оа(иез); Устанавливает значения красного, зеленого и синего компонентов для текущего вторичного цвета.

Первый суффикс указывает тип данных параметров; байт, короткое целое, целое, вещественное, вещественное двойной точности, беззнаковый байт, беззнаковое короткое целое или беззнаковое целое число. Если присутствует второй суффикс, ч, тогда аргумент оа(иез является указателем на массив значений данного типа.

Команды к15ее оп с(а гуСо1о г* () принимают данные тех же типов, что и команды к1Со1ог*(), и интерпретируют их тем же образом. (См. табл. 4.1.) Вторичные цвета могут также задаваться в массивах вершин. Вторичный отраженный цвет при отключенном освещении Операции текстурирования применяются после вычисления освещения, но смешивание зеркальных светлых участков с цветами текстуры обычно уменьшает эффект от освещения.

Как говорилось ранее (в разделе «Выбор модели освещения» в главе 5), вы можете вычислить два цвета на вершину: первичный, который представляет все незеркальные составляющие, и вторичный, который есть сумма вклалов всех зеркальных составляющих. Если отраженный цвет отделен от прочих, вторичный (отраженный) цвет добавляется к фрагменту после вычислений текстурирования. ПРИМЕЧАНИЕ Если освещение включено, применяется вторичный отраженный свет, несмотря на режии Я,сОсОЯ 50м, а любой вторичный цвет, установленный командой о)бесопаапусо!ог»(), игнорируется. Стек матриц текстур Подобно тому, как координаты вашей модели преобразуются по матрице перед построением изображения, координаты текстур умножаются на матрицу 4 к 4 перед любыми наложениями текстур. По умолчанию матрица текстур инициализировала единицами, поэтому координаты текстур, назначенные вами явно или сгенерированные автоматически, остаются неизменными.

Изменяя матрицу текстур при перерисовке объекта, вы можете осуществлять «скольжение» текстуры по поверхности, поворачивать текстуру, растягивать и сжимать или комбинировать Стек матриц текстур 381 все три действия сразу. Фактически, поскольку матрица текстур простая обычная 4 х 4 матрипа, можно добиться аффекта, подобного уходу в перспективу.

Матрица текстур, о которой мы говорим, находится на вершине стека, в который можно поместить как минимум две матрицы. Все стандартные команды манипулирования матрицами, такие как к1Рцзвнатг!х(), я1Рорнагг(х(), х1МН11Матгт х () и к1Йота те* (), в той же мере применимы и к матрицам текстур. Чтобы модифицировать текущую матрицу текстур, вам надо установить )зежим матриц текстур, 6( ТЕХТ()ИЕ, как зто сделано ниже: е1Иатгтхноае(6Е ТЕХТОИЕ); /* вход в режим матриц текстур "/ Етаотатеа(...); другие манипупяции с матрицами... '/ Е!Иатг(хноае(6( ИООЕ(Н1ЕН); /' возврат в модепьно-видовой режим '/ !(оордината с! Для математиков четвертая координата текстуры, г/, подобна к/-координате (х, у, д в/) обьекта. Когда четыре координаты текстуры (з, С г, г/) умножаются на матрицу текстур, результирующий вектор (з', Г', г', т)') интерпретируется как однородные координаты текстуры.

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

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

(См. цветной рис. 28 в качестве примера; и работу «Раз( ЯЬас!отнз апд ЫВЬ((пя Енес(з Пз(пйт Тех(!!ге Марри!8» Марка Сегала (Маг1с Вейа!), Карла Коробкина (Саг! КогоЫсщ), Рольфа ван Виденфельта (1(о!1нап %"Ыеп(е!1), Джима Форана ()(щ Рогап) и Пола Хэберлн (Рац1 НаеЬег11), труды конференции 81ССВАРН 1992 [Сотритег Сгар/ттск 26:2, )п1у, 1992, с 249-252] для получения более подробной информации.) Другой пример — карта текстуры образована на основе фотографии, в которую перспектива уже заложена. Как и для прожектора, здесь конечное изображение ивисит от сочетания двух преобразований перспективы. Пссобие по текстурам от Нэйта Робинса Пособие по текстурам от Нэйта Робинса предоставляет всплывающее меню для цюсмотра 4 х 4 матриц текстур, внесения в них изменений и для наблюления за юзаиным эффектом.

382 Глава 9 ° Наложение текстур Глубина текстур Опробовав технику освещения поверхности (см, главу 5), вы быстро заметите, что источники света ОрспОЕ не приводят к отбрасыванию каких-либо теней. Цвет каждой вершины вычисляется независимо от других объектов сцены. Чтобы получить тени, вам следует выяснить н зафиксировать, какие поверхности (или части поверхности) становятся препятствием на пути прямого распространения света. Многопроходная техника использует текстуры глубины (дергЬ гехгпгез), предоставляющие решение для воспроизведения теней.

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

Вот ее концентрированное изложение: 1. Воспроизведите сцену с расположением источника света в точке наблюдения. Неважно, как вообще сцена выглядит; вас должны интересовать только значения глубины. Создайте карту теней, захватывая значения буфера глубины и сохраняя их в карте текстуры («теневой» карте). 2. Сгенерируйте координаты текстуры с координатами (з, г), привязываясь к позициям в пределах карты теней, с третьей координатой текстуры (г), как расстоянием от источника света. Затем нарисуйте сцену еще раз, сравнивая значения г с соответствующими значениями глубины с целью определения, в каких местах фрагменты находятся под светом или в тени. Следуюгцие разделы содержат более подробное объяснение, а примеры кода иллюстрируют каждый из представленных шагов.

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

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

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