О некоторых проблемах текстурирования изображений

О НЕКОТОРЫХ ПРОБЛЕМАХ ТЕКСТУРИРОВАНИЯ ИЗОБРАЖЕНИЙ

SOME PROBLEMS OF IMAGE TEXTURING

И.М. Лебедева I.M. Lebedeva

ГОУ ВПО МГСУ

В статье дается краткий обзор методов фильтрации текстур в свете повышения качества визуализации трехмерных моделей.

The article gives a brief overview of texture filtering methods in the light of improving the quality of visualization of three-dimensional models.

Компьютерные технологии непрерывно развиваются. Повышаются и требования к качеству компьютерной графики. Одним из направлений развития компьютерной графики является построение фотореалистичных изображений трехмерных моделей.

Чтобы объекты смотрелись правдоподобно, необходимо корректно рассчитать освещенность и придать объектам цвет и фактуру.

Если модели просто присвоить какой-нибудь цвет, она будет смотреться искусственно и плоско. Для того, чтобы сцена «ожила», необходимо описать и смоделировать рельеф поверхностей объектов сцены, их способность отражать или рассеивать свет, отражаться один в другом, или просвечивать, и многое другое.

Такое подробное описание поверхности объекта приведет, к значительному увеличению количества полигонов для описания модели и, тем самым, к замедлению процесса рендеринга. Для упрощения механизма визуализации стали применять текстуры. Это некоторое плоское изображение, которое может храниться в виде файла (растровые текстуры), или генериться по определенной формуле (процедурные текстуры). Текстуры могут имитировать любые материалы: камни, дерево, ткань; могут изображать небо, траву, даже лица людей. С помощью текстурирования можно также смоделировать оптические эффекты. При этом, положительный результат достигается при сравнительно небольших дополнительных затратах компьютерных ресурсов.

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

Рисунок текстуры состоит из множества точек - текселей. Поверхности 3-D моделей, в основном, аппроксимируются полигонами, маленькими плоскими многоугольниками. Текстура «натягивается» на поверхность полигона строго по координатам. Сложность часто заключается в том, что разрешение экрана, количество пикселей на определенной площади экрана, не соответствует количеству текселей соответствующей поверхности виртуальных моделей.

ВЕСТНИК 4/2010

При приближении объекта к наблюдателю размеры текселей текстуры увеличиваются по отношению к размерам пикселей соответствующей части экрана. Визуально текстура кажется состоящей из огромных ячеек. Поверхность выглядит крупнозернистой. При увеличении расстоянии до объекта, наоборот, тексели становятся мельче пикселей. На один пиксель экрана теперь приходится несколько текселей текстуры, а это невозможно отобразить, поэтому часть информации просто теряется, и текстура выглядит искаженно.

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

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

Рис.1. Передача цвета с использованием фильтра Point Sampling

Следующим этапом в фильтрации текстур стала билинейная фильтрация. В этом случае, цвет пикселя экрана вычисляется путем интерполяции четырех ближайших текселей. При наложении текстуры на поверхность, параллельную экрану, результат был превосходный. Однако, при увеличении угла наклона поверхности от вертикали появлялись неизбежные искажения. Это связано с тем, что четыре ближайших текселя апроксимируются в круг. При наклоне круг в реальной жизни превращается в эллипс, чего не происходит с текселями текстуры. А при приближении объекта к камере рисунок текстуры становился расплывчатым.

Для фильтров сжатия хороший результат дало применение технологии MIP Mapping. При этом, для каждой текстуры создается несколько копий, размер каждой из которых меньше предыдущей в 4 раза, и уровень детализации которых также уменьшается вместе с размером. Таким образом, на удаленные от наблюдателя по-

верхности накладываются мнп-уровнн с меньшей степенью детализации и меньшими размерами, что сводит искажения к минимуму. К тому же, не затрачиваются ресурсы на детальную прорисовку далеко отстоящих текстур. Однако, границы между мип-уровнями обозначались довольно резко, что мешало зрительному восприятию сцены.

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

Существует еще немало приемов и технологий для увеличения реалистичности текстур. Это использование карт освещенности и карт смещений, применение тумана и мультитекстурирования и многое другое.

Литература

1. Артемьев Константин Энциклопедия третьего измерения. http://www.igromania.ru/Artides/3747/Yenciklopediya_tretego_izmereniya.htm

2. Коваленко Виктор Текстура в задачах трехмерной визуализации, ИПМ РАН, Москва

1996г

3. Тисевич Илья. Рельефное текстурирование http://www.cgm.computergraphics.ru/content/view/104

The literature

4. Artemyev Konstantin Enciklopedija tretyego izmerenija. http://www.igromania.ru/Artides/3747/Yenciklopediya_tretego_izmereniya.htm

5. Kovalenko Viktor Tekstura v zadachah trehmernoy vizualizacii, IPMRAN, Moskva, 1996

6. Tisevich lyja Relyefnoe teksturirovanie http://www.cgm.computergraphics.ru/content/view/104

Ключевые слова: текстура, фильтр, рендеринг, визуализация, тексель, искажения, билинейная фильтрация, полигон.

Keywords: structure, filter, rendering, visualization, texel, distortions, bilinear filtration, polygon.

e-mail автор: grafika@,mgsu.ru.

Рецензент: кандидат технических наук, доцент, ГИП ООО «МАККОМ-СТРОИ», Крутиков

Юрий Александрович.