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

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

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

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

Если трехмерная текстура в памяти больше определяемого объема, вам нужно указать высоту отдельного неполного изображения с помощью параметра '1НАОЕ НЕ16НТ. Также, если подобьем не начинается с первого слоя, следует установить параметр '5К1Р 1НАОЕ5. *1НАОЕ НЕ16НТ вЂ” это параметр, определяющий высоту (количество рядов) отдельного слоя изображения трехмерной текстуры. Если его значение нулевое (отрицательные числа недействительны), то количество рядов в каждом двухмерном прямоугольнике и есть значение Ье(уЬС которое передается в процедуру к1Тех1юайе30() или В1Тех5оЫааВе30().

(Это, может быть, лишние слова, так как значение *1НА6Е НЕ16НТ равно нулю по умолчанию.) Иначе высота отдельного слоя равна значению *1НАОЕ НЕ16НТ. Описание текстуры 331 На рис. 9.4 показано, как параметр *1НАЕЕ НЕ16НТ определяет высоту изображения (когда ЬещЬг определяет только высоту неполного изображения). Здесь изображена трехмерная текстура только с двумя слоями. '1мА6е не16нт Рис.

9.4. Режим сохранения пикселов *1МА6Е НЕ16НТ Рис. 9.5. Режим сохранения пикселов *ЕК1Р 1МА6ЕБ 332 Глава 9 ° Наложение текстур Параметр *5К1Р 1МА6Е5 определяет, сколько слоев пропускается до начала данных подобъема. Если этот параметр инициирован положительным целым числом (назовем его и), указатель на данные изображения текстуры продвигается сквозь несколько слоев (,и * — размер одного слоя текселов). Результирующий подобъем берет начало в слое и н имеет глубину в несколько слоев — их количество задается аргументом 6(ертл, передаваемым в функцию 61Тех1ваоеЗОО или 61тех5ОЬ1ваКеЗО().

Если значение параметра *5К1Р 1МА6Е5 равно нулю (по умолчанию), доступ к данным текстуры выполняется с первого слоя, описанного в массиве текстуры. На рис. 9.5 показано, как благодаря параметру '5К1Р 1МА6Е5 можно пропустить несколько слоев, чтобы попасть туда, где в действительности начинается парциальный объем. В этом примере "5К1Р 1МАОЕ5 - 3, то есть подобьем берет начало в слое с номером 3. Сжатые изображения текстур Карты текстур могут быть сохранены внутри Орепо1 в формате со сжатием с целью возможного уменьшения объема памяти, занимаемого текстурой. Изображение текстуры может быть сжато после его загрузки нли сразу загружено в формате со сжатием.

Сжатие изображения текстуры во время его загрузки Чтобы получить сжатое изображение текстуры по ходу его загрузки, укажите одно из именованных значений 6Е СОМРКЕ55ЕО * для аргумента (п(егпа((опиак Изо- бражение будет автоматически сжато после того, как текселы пройдут обработку какими-либо активными операциями при сохранении пикселов (см.

раздел «Ре- жимы хранения пикселов» главы 8) или при передаче пикселов (см. раздел «Опе- рации при передаче пикселов» главы 8). После загрузки изображения вы можетс выяснить, сжато ли оно, и в какой формат, с помощью следуюшего кода: 6СЬоо1«ап соаргеяяее; 6(епча СехгигеЕогааС; 6(я!се! !вазе5!Хе; 616«СТехьече)рагаа«С«гсч(6( ТЕХТОКЕ го, 6с техтОКЕ ссмРКЕ55ЕО, асоаргеяяее): !Г (совргеяяео == 6( ТКОЕ) ( К16еСТехьече1РагааеСег!ч(6( ТЕХТОКЕ 2О, 61 ТЕХТОКЕ 1МТЕКМАС ЕОКМАТ, атехтигегогваС); 616«СТ«хьече)Р»гаветег!ч(6С ТЕХТОКЕ 2О, 6С ТЕХТОКЕ СОМРКЕ55ЕО 1МА6Е 512Е, $!вахе5!се); Загрузка ранее сжатых изображений текстур Ореном не предписывает какой-либо определенный внутренний формат сжатия для текстур; каждая реализация позволяет уточнить расширения Орепо), отвечающие за реализацию определенного формата сжатия.

Если структура загружается в уже сжатом виде, важно знать, в каком формате она сохранена, и провв рить, допустим ли этот формат в вашей реализации ОрепОЕ. Описание текстуры 333 данслом ~возь бьем ается 5пЬ~ию), :сиве стить зрцизчало ~сце- раже- орма- е одно . Изо~ботку л «Ре«Оцеюжете сжатия „, отве- кружа- прове- Чтобы загрузить текстуру, ранее сохраненную в формате со сжатием, используй- се команды яТСовргеззес)Тех1ваяе*0(). чоЫ ктсовргеззес)Тех1ваяе10(61.епшп гагяет, 61лпС Ме1, С1.епшп !пмгпа1!оплат, 61з!ге! тЫгЬ, С1лпс Ьогг(ег, 61.яге! !таде5(ге, 61чо!б 'гехе!з).

чоЫ яТСовргеззебтех1ва0е20(61.епцш Гагяес, 61лпС 1те! 6!.епшп !псетпа1!оплат, 61.яхе! тЫгЬ, 61.яге! Ье!яЬг, С1лпс Ьоп!ег, С1.яаес !таяв5(ге, 61лоЫ «гехе1з); чоЫ ясСовргеззеотех1ваке)0(ССепшп гагдей С1лйп Ые1, 61.епцш !ъгепи11оппаг, ССз!ге! тЫгЬ, 61з!хе! Ье!фгг, ССз!гс! г)ергЬ, 61лпс Ьоп1ег, С(.з!хе! !гпаяе5!ле, 6).чоЫ «гехе!з); Получают одномерную, двухмерную или трехмерную текстуру из предварительно сжатого изображения текстуры. Используйте аргумент 1еое1, если требуются текстуры с несколькими разрешениями; если вас интересует только одно разрешение, значение уровня легализации (1епе1) должно быть нулем. (См.

раздел «М1Р-отображение: детализация на множестве уровнейк.) Аргумент !пгегпаl!оппаг задает формат сжатия изображения текстуры. Этот формат должен быть поддержан в реализации, загружающей текстуру, иначе генерируется ошибка 6С 1МЧАС10 ЕМЧМ. За справкой о том, какие форматы в каких реализациях поддерживаются, обращайтесь к приложению Б. Ширина (т!ЙЬ), высота (Ье(яЬг) и глубина («1ергЬ) — измерения изображения одномерной, двухмерной и трехмерной текстур. Как и для несжатых текстур, аргумент Ьогс(ег указывает толщину границы — 0 (нет границы) или !.

Значения измерений должны быть равны 2 + 26, где т — неотрицательное целое число, а 6 — значение аргумента Ьог«(ег, Сжатые текстуры могут быть использованы, равно как несжатые, для замены уже загруженной текстуры или ее части. Это делается командами 1(Совргеззес)Тех5ьЫваяе*0(). чоЫ ~!Совргеззеотех5с01ва~е10(СЕепшп Гагдес, С)лпС 1епе!, 61лпС хоДзес, С1.яге! тЫ(Ь, 61.епшп /о~тай 61.яхе! !таде5!ге, 61чоЫ *гехе!з); чоЫ ясСовргеьзеотех5ио)взке20(61.евши гагдег, 6(лис 1епе1, 61лпс хоДзег, 61.шс уоДег, 61.з!хе! вЫ16, С).з!ге! Ье!дЬЬ 61.яхе! !таяе5!ге, 61чоЫ "сехеЬ) чоЫ дсСовргеззецтех5иоТваце50(6).епцш !агнес, СБ!пС 1еое1, С(йпС хоДЪе( 61лпс уо((зег, С1лпс го! )зег, 61.яхе! ши1(Ь, С1.яге! Ье(я66 61лгае! г!ергЬ, С).з!ге! !таяе5!ге, 61.чоЫ "гехе!з) Получают одномерную, двухмерную или трехмерную текстуру из предварительно сжатого изображения текстуры.

Аргументы хо!!зед уоДзес и гоДзег указывают смещение в пикселах в пределах существующего массива текстуры для ее соответствующего измерения, по которому будет помещено новое изображение. Аргументы тЫгЬ, Ье!дЬг и «!ергЬ определяют ширину, высоту и глубину текстуры с соответствующим числом измерений, используемой для обновления изображения текстуры. Аргумент !таде5ие задает количество байтов, хранимых в массиве текселов (Гехе(з). 334 глава 9 ° наложение текстур Использование границ текстуры Если вам нужно получить карту текстуры по размерам большую, чем это позволяет реализация Орепоц вы можете формировать такие структуры посредствам плиточного размещения (Гйпй) нескольких различных текстур. Например, если вас интересует квадратная текстура в два раза больше максимального размера, нарисуйте рядом четыре меньших квадрата (два на два) и загрузите в них текстуры перед рисованием.

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

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

Проще всего и разумнее достичь этого копированием значений смежных тексслов двух карт с помощью команды й1Тех5п01пайе20(). Цвет границ также принимает участие в этом, если текстура применяется так, что лишь частично покрывает собой примитив. (См. разлел «Повторяемые и обрезанные текстуры».) 1 ПР-отображение: детализация на множестве уровней Визуализуемые объекты текстур, подобно другим объектам сцены, располагаются на различных расстояниях от точки наблюдения. В динамических сценах, где текстурированный объект перемещается и удаляется от точки наблюдения, карта текстуры должна уменьшаться в размере вместе с изменением размеров спроецированного изображения. Чтобы обеспечить это, Орепбь накладывает фильтр на карту текстуры, подгоняя ее до размеров, нужных для отображения на объект, без внесения нарушающих визуальное равновесие дефектов, таких как блики, вспышки и иные световые флуктуации.

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

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

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

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