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

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

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

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

Если значение рпате равно 6С ОРЕРАМРЕ РОВ, значение рахат должно быть одним из 6С 5РС СОСОК, 6С ОМЕ М1М05 5РС СОСОК, 61 5РС АСРНА или 6С ОМЕ И1М05 5РС АСРНА; о Аналогично, 6Е ОРЕРАМОЕ АСРНА сравнивается с соответствующим 61 500ЙСЕЕ АСРНА и определяет альфа-значения для текущей функции 6С СОМВТМЕ АСРНА. Здесь аргумент рахат ограничен выбором между 6С 5РС АЕРНА и 61. ОМЕ И1М05 5ЙС АСРНА. Когда для функции 61 СОИВ1МЕ РОВ используется режим 6С 5РС АСРНА, значения альфа-компонента источника интерпретируются как КСВ-значения. В лисшиге 9.15 заданы три компонента (К, Сп В) для Агя2: 10.4, 0.4, ОА).

Листинг 9.1Б. Использование значений альфа-компонента Епя операций Й6В-комбинирования 1(ас(с Ос(1оас сопессо1ог(4) = (6.1, 8.2, 0.3, 0.4); 11техЕпч(ч(6с ТЕХТОЙЕ ЕМЧ, Ос ТЕХТОЙЕ ЕМЧ СОсОЙ, сопессо1ог); 11техЕпч((6Е ТЕХТОРЕ ЕМЧ, Ос 500ЙСЕ2 Й6В, Ос Сой5ТАМТ); 11техЕпч((6с ТЕХТОЙЕ ЕМЧ, 6С ОРЕЙАМО2 ЙОВ, 6( 5ЙС АСРНА); 378 Глава 9 ° Наложение текстур В листинге 9.15, если имесошийся операнд заменить на 6С 5ЙС СОСОЙ, КСВ-значения будут такими: (0.1, 0.2, 0.3). Для режимов бс ОМЕ Н1М05' значения образуют дополнения (то есть 1 — цвет или 1 — «альфая), используемые при вычислениях. Если же этот операнд заменить на бс ОМЕ Н1М05 5йС СОСОЙ, КОВ-компоненты станут следующими: (0.9; 0.8; 0.7). Для случая бс ОМЕ Н1М05 5ЙС АЕРНА результат — (0.6, 0.6, 0.6). ° Факультативно выберите факторы масштабирования значений КСВ- или альфа-компонента. По умолчанию это 81техЕпчт(6( ТЕХТЧЙЕ ЕМЧ, 6С ЙОВ 5САСЕ, 1.0); В]техепчт(6( ТЕХТвйЕ ЕМЧ, 6( АСРЙА 5САСЕ, 1.0); ° В последнюю очередь нарисуйте геометрические объекты, тем самым обеспечив вершины, связываемые с координатами текстур.

Интерполирук)щие функции комбинирования Интерполирующие функции помогают иллюстрировать комбинирование текстур, поскольку они используют максимальное количество аргументов, несколько источников и режимов операндов. Листинг 9.16 является частью простой программы сою01пег.с. Листинг 9.16. Интерполирующне функции комбинирования: сошЬ]пег.с /* дпя использования константного цвета текстуры '/ зсастс бс(1оас сопзссо1ог[4] = (0.8, 0.0, 0.8, 8.8): сопьСС010Г[3] = 0.2; В(техЕпчтч(6( ТЕХтвйЕ ЕМЧ, 6С тЕХтвйЕ ЕМЧ СОСОЙ, сопзгсо[ог); 81втпбтехтыге(6( ТЕХТВЙЕ 20, Сехнаюе[8]); 81техЕпчт(6С ТЕХТВЙЕ ЕМЧ, 6( ТЕХТ0ЙЕ ЕМЧ М00Е, 6( СОНВ1МЕ); 81ТехЕпчт(6( ТЕХТ0ЙЕ ЕМЧ, 6( СОНВ1МЕ Й68, 6( !МТЕЙРОСАТЕ); 81техЕпчт(6( ТЕХТВЙЕ ЕМЧ, 6( 500ЙСЕВ йбВ, 6С ТЕХТВЙЕ); 81техбпч((6( ТЕХТВЙЕ ЕМЧ, 6( ОРЕЙАМ00 йбВ, 6( 5ЙС СО(ОЙ); 81техЕпчт(6( ТЕХТЧЙЕ ЕМЧ, 6( 500ЙСЕ1 Й68, 6( РЙЕЧ1005); 81техЕпчт(6( ТЕХТОЙЕ ЕМЧ, 6С ОРЕЙАМ01 йбВ, 6( 5ЙС СО(ОЙ); 81техепч((6( ТЕХТ0ЙЕ ЕМЧ, 6( 500ЙСЕ2 йбВ, 6( СОМ5ТАМТ); 81техЕпчт(6( ТЕХТВЙЕ ЕМЧ, 6( ОРЕЙАМ02 Й68, 6С 5ЙС АСРНА); /* здесь рисуются геометрические объекты '/ В листинге 9.16 имеется только один активный модуль текстуры.

Так как здесь функция комбинирования — бс 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), так лампы могут светить на поверхности, не перпендикулярные направлению лучей. Другие преобразования перспективы происходят из-за того, что наблюдатель осматривает сцену с (наличных (но в перспективе) точек.

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

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

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

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