- Главная
- Информатика
- Texture_mapping (1)
Содержание
- 2. Текстурирование. Наложение текстуры или текстурирование (texture mapping) - это метод, посредством которого на поверхность объекта накладывается
- 3. Сэмплинг (point-sampling) – простейший метод текстурирования, в котором тек-селы непосредственно переносятся в пикселы изображения с учетом
- 4. Bi-linear filtering - это техника устранения искажений изображения (фильтрация), таких, как "блочность" текстур при их увеличении.
- 5. Существует класс артефактов наложения текстур известный под названием "depth aliasing" (ошибки глубины сцены или Z-aliasing), от
- 6. Иллюстрация исчезновения полигонов (а) хорошо детализированное изображение слева, (б) грубая версия с отсутствующими полигонами и деталями
- 7. Для избежания ошибок "depth aliasing" и имитации того факта, что объекты на расстоянии выглядят менее детализированными,
- 8. Степень или уровень детализации - Level of Detail или просто LOD, используются для определения, какой mip-map
- 9. В то время как mip-текстурирование решает проблему ошибок "depth-aliasing", его использование может стать причиной появления других
- 10. MIP-текстурирование. Расчет LOD и фильтрация Рис. Пиксел в координатах (p, q) и его образ в текстуре
- 11. MIP-текстурирование. Расчет LOD и фильтрация Получившиеся значения LOD и координат (s, t) вещественны. Существует три метода
- 12. Трилинейная фильтрация (tri-linear filtering) представляет собой технику, которая удаляет артефакты "mip-banding", возникающие при использовании mip-текстурирования. При
- 13. Так как билинейная и трилинейная фильтрации являются изотропными - изображение фильтруется в определенной форме - в
- 14. Сравните две картинки: на одной использовалась анизотропная фильтрация 16-текселей, с помощью которой исчезли искажения между mip-map
- 15. Для того чтобы подчеркнуть бугорки и впадины рельефа с помощью светотени, надо затемнить либо осветлить стенки
- 16. Техника выдавливания (embossing) использует карту высот для затенения и осветления определенных участков поверхности так, чтобы создавалось
- 17. Еще один способ реализации рельефного текстурирования - это техника текстурирования с использованием текстуры (карты) окружающей среды
- 18. Алиасинг – результат сэмплинга, то есть преобразования непрерывного изображения в дискретное. Алиасинг ухудшает качество изображения, вызывая
- 19. Anti-aliasing. Полный антиалиасинг Полный антиалиасинг, в отличие от краевого, направлен на полную нейтрализацию алиасинга, в том
- 21. Скачать презентацию
Слайд 2Текстурирование. Наложение текстуры или текстурирование (texture mapping) - это метод, посредством которого
Текстурирование. Наложение текстуры или текстурирование (texture mapping) - это метод, посредством которого
В общем контексте графического конвейера этот метод открывает огромные возможности, но простота идеи метода наложения текстуры весьма обманчива.
Методы текстурирования (MIP-mapping, bump-mapping), фильтрации, сглаживания
Технология текстурирования заключается в проецировании изображения (текстуры) на трехмерную поверхность. Таким образом обеспечивается дополнительная детализация 3D объекта без усложнения его геометрии.
Когда изображение используется в качестве текстуры, накладываемой на 3D примитив, проявляется множество разнообразных ошибок визуализации, называемых артефактами.
Слайд 3Сэмплинг (point-sampling) – простейший метод текстурирования, в котором тек-селы непосредственно переносятся в
Сэмплинг (point-sampling) – простейший метод текстурирования, в котором тек-селы непосредственно переносятся в
Текстурирование. Сэмплинг и его артефакты
Слайд 4 Bi-linear filtering - это техника устранения искажений изображения (фильтрация), таких, как "блочность"
Bi-linear filtering - это техника устранения искажений изображения (фильтрация), таких, как "блочность"
Во избежании этого эффекта применяют билинейную фильт-рацию, при использовании которой в качестве цвета каждого пиксела берется взвешенное среднее значение (линейная интерполяция) цвета четырех смежных текселов (верхний рис.).
Результирующий цвет пиксела определяется в результате трех операций смешивания: сначала смешиваются цвета двух пар текселов по х, а потом смешиваются два полученных цвета по у. Результат показан на нижнем рис.
Артефакты и билинейная фильтрация
Слайд 5 Существует класс артефактов наложения текстур известный под названием "depth aliasing" (ошибки
Существует класс артефактов наложения текстур известный под названием "depth aliasing" (ошибки
Ошибки "depth aliasing" возникают из-за того, что объекты более отдаленные от наблюдателя, выглядят более маленькими на экране. Если объект двигается и удаляется, то наложенное текстурное изображение становится все более и более сжатым. В конечном счете появляются ошибки визуализации. Эти ошибки визуализации особенно нежелательны в анимации, где такие артефакты становятся причиной мерцания и эффекта медленного движения в той части изображения, которая должна быть неподвижной. Как только вертикальная сторона квадрата (высота) сокращается до двух пикселей (см. напротив голубой стрелки), появляются артефакты "depth-aliasing" - несколько квадратов сливаются в один.
Одним из способов устранения depth aliasing, имеющим и самостоятельное значение, является перспективная коррекция. Перспективная коррекция – ресурсоемкая процедура (одна операция деления на каждый пиксел), поэтому 3D-ускорители реализуют ее аппаратно. Но разные ускорители достигают разного качества перспективной коррекции.
Артефакты depth aliasing
и перспективная коррекция
Алгоритм
Слайд 6
Иллюстрация исчезновения полигонов
(а) хорошо детализированное изображение слева,
(б) грубая версия с
Иллюстрация исчезновения полигонов
(а) хорошо детализированное изображение слева,
(б) грубая версия с
Артефакты. Влияние анимации
Слайд 7 Для избежания ошибок "depth aliasing" и имитации того факта, что объекты
Для избежания ошибок "depth aliasing" и имитации того факта, что объекты
Depth aliasing и MIP-mapping
Слайд 8 Степень или уровень детализации - Level of Detail или просто LOD,
Степень или уровень детализации - Level of Detail или просто LOD,
Per-polygon mip-mapping (mip-текстурирование по каждому полигону). LOD вычисляется лишь раз для всего треугольника, следствием использования этого значения для всех пикселов треугольника становится эффект растрескивания (на рис. слева), когда некоторые треугольники, из которых состоит анимированный объект, вдруг внезапно становятся чрезмерно размытыми или с неровностями.
Рer-pixel mip-mapping (попиксельное mip-текстурирование). Значение LOD вычисляется для каждого пиксела. В результате предотвращается появление ошибок визуализации и излишней размытости (на рис. справа).
MIP-mapping и уровни детализации (LOD)
Слайд 9 В то время как mip-текстурирование решает проблему ошибок "depth-aliasing", его использование может
В то время как mip-текстурирование решает проблему ошибок "depth-aliasing", его использование может
MIP-текстурирование
и mip-banding (полосатость)
Слайд 10MIP-текстурирование.
Расчет LOD и фильтрация
Рис. Пиксел в координатах (p, q) и его
MIP-текстурирование.
Расчет LOD и фильтрация
Рис. Пиксел в координатах (p, q) и его
Изменение t вдоль образа горизонтальной стороны пиксела аналогично приблизительно равно ∂t/∂p. Заменив p на q получим соотношения для вертикальной стороны пиксела (∂s/∂q, ∂t/∂q). Производные обычно приближаются конечными разностями значений на сторонах пикселов.
В результате – варианты оценки размера пиксела (для комбинирования):
• – слегка размытое изображение;
• – изображение резкое, контрастное и
При наложении текстуры методом mipmapping’а первая задача – определить подходящий уровень детализации LOD, чтобы размер образа экранного пиксела на текстуре и размер тексела текстуры были максимально близки.
Рассмотрим пиксел как квадрат со стороной=1. Его образ в координатах (s, t) произвольный четырех-угольник. Изменение s вдоль образа горизонтальной стороны пиксела определяется величиной ∂s/∂p рассчитанной в центре пиксела.
Слайд 11MIP-текстурирование.
Расчет LOD и фильтрация
Получившиеся значения LOD и координат (s, t) вещественны.
MIP-текстурирование.
Расчет LOD и фильтрация
Получившиеся значения LOD и координат (s, t) вещественны.
1. Nearest (см. рис.): округляем LOD до ближайшего уровня, а (s, t) до ближайшего тексела
2.Linear: уровни детализации [LOD] и [LOD+1], на каждом берем цвет точки (s, t) округляя до ближайшего тексела, цвет пиксела определяем линейной интерполяцией цветов [LOD] и [LOD+1] по вещественному значению уровня LOD.
3.Trilinear: аналогичен Linear, но значения цвета на обоих уровнях, рассчитываются по методу Bilinear.
Метод Trilinear позволяет полностью исключить артефакты межуровнего перехода при MIP-mapping-е. Необходимый объем вычислений пока не позволяет реализовать его в реальном времени на слабых ускорителях:
Слайд 12 Трилинейная фильтрация (tri-linear filtering) представляет собой технику, которая удаляет артефакты "mip-banding",
Трилинейная фильтрация (tri-linear filtering) представляет собой технику, которая удаляет артефакты "mip-banding",
MIP-banding и трилинейная фильтрация
Слайд 13 Так как билинейная и трилинейная фильтрации являются изотропными - изображение фильтруется в
Так как билинейная и трилинейная фильтрации являются изотропными - изображение фильтруется в
Качество текстуры при анизотропной ? фильтрации даже на дальних дистанциях остается схожей с оригинальным; при изотропной фильтрации же видна тенденция в "сглаживанию" изображения, в результате теряется качество. Анизотропная фильтрация, как и трилинейная, уменьшает неровность текстур. Но при использовании анизотропной фильтрации качество получается лучшим,.
Анизотропная фильтрация (Anisotropic filtering)
Слайд 14Сравните две картинки: на одной использовалась анизотропная фильтрация 16-текселей, с помощью которой
Сравните две картинки: на одной использовалась анизотропная фильтрация 16-текселей, с помощью которой
Анизотропная фильтрация. Пример
Слайд 15Для того чтобы подчеркнуть бугорки и впадины рельефа с помощью светотени, надо
Для того чтобы подчеркнуть бугорки и впадины рельефа с помощью светотени, надо
Наложение рельефа (bump-mapping)
Для реализации рельефного текстурирования в настоящий момент существует два подхода. Первый -- реализация эффекта выдавливания (embossed effect) в процессе bump mapping, и второй – использование карт окружающей среды (environment-map bump mapping).
Слайд 16Техника выдавливания (embossing) использует карту высот для затенения и осветления определенных участков
Техника выдавливания (embossing) использует карту высот для затенения и осветления определенных участков
Способ преобразования информации о высоте неровностей на карте высот в информацию о величине подстройки вектора нормали
1.Для каждого пиксела по высотам карты (bump map) рассчитывается вектор, указывающий направление уклона поверхности, т.е. вектор градиента:
x_gradient = pixel(x-1, y) - pixel(x+1, y), y_gradient = pixel(x, y-1) - pixel(x, y+1),
где х и y -- координаты соответствующего пиксела
2.Вектор нормали к поверхности корректируется для каждого пиксела на величину градиента
New_Normal = Normal + (U * x_gradient) + (V * y_gradient)
Получив новый вектор нормали, мы можете просчитать яркость данного пикселя.
Полигон с изначальным вектором нормали, обозначенным n. Также показаны два вектора, которые будут использованы для изменения положения (направления) нормали к пикселю под ним. Оба вектора должны располагаться параллельно осям координат применяемой карты высот.
Красные векторы указывают на уменьшение высоты.
Техника выдавливания (embossing)
Слайд 17Еще один способ реализации рельефного текстурирования - это техника текстурирования с использованием
Еще один способ реализации рельефного текстурирования - это техника текстурирования с использованием
В данном случае bump mapping будет использовать две текстуры (не считая базовой текстуры объекта).
Первая текстура - текстура с информацией об уклонах (ее еще можно назвать картой изменений высот; при выдавливании применялась просто карта высот). Эта текстура вырабатывается на основе карты высот путем анализа прилежащих друг к другу текселов. Акселератор использует эту информацию для изменения координат тексела в соответствии с информацией, поставляемой второй текстурой.
Вторая текстура -- это карта окружающей среды, которая накладывается на исходный полигон, но уже с ST координатами, измененными процедурой отражения среды. Если изготовить environment map в виде яркостной карты, расположив источники света градиентно и по кругу (что-то похожее на эффект, проявляющийся при использовании инструмента "баллончик с краской" из графических программ), то мы получим результат похожий на выдавливание, но теперь мы не ограничены в количестве применяемых источников света, плюс наше освещение не обязательно должно быть монохромным.
Environment-Map Bump Mapping
Слайд 18Алиасинг – результат сэмплинга, то есть преобразования непрерывного изображения в дискретное. Алиасинг
Алиасинг – результат сэмплинга, то есть преобразования непрерывного изображения в дискретное. Алиасинг
Сглаживание (anti-aliasing). Краевой антиалиасинг
Краевой антиалиасинг (КАА) – механизм борьбы с лестничным эффектом. КАА сглаживает края полигонов и диагональные линии. Для реализации краевого антиалиасинга чаще всего используют технику усред-нения по площади (area averaging).
Цвет пиксела определяется на основании того, насколько каждый полигон перекрывает данный пиксел (см. рис). ?
Слайд 19Anti-aliasing. Полный антиалиасинг
Полный антиалиасинг, в отличие от краевого, направлен на полную
Anti-aliasing. Полный антиалиасинг
Полный антиалиасинг, в отличие от краевого, направлен на полную
Субпиксельный антиалиасинг базируется на технике суперсэмплинга. Суперсэмплинг означает, что вся сцена рендерится в каком-то большом виртуальном разрешении, а затем сжимается до фактического разрешения. В общем случае виртуальное и фактическое разрешения могут быть некратными. Техника суперсэмплинга эффективно реализуется благодаря тому, что ускорители используют tile-based архитектуру. Ускорителю традиционной архитектуры потребовался бы большой объем памяти (для виртуального разрешения 1600x1200 – более 8 MB). Ускоритель tile-based архитектуры работает не с целым фреймбуфером, а с отдельными фрагментами (tile - плитка или фрагмент изображения, тайл может быть и размером 32 на 32 пикселя). И все данные о субпикселах он хранит только для фрагмента, который рендерится в данный момент.