Статья опубликована в рамках: VI Международной научно-практической конференции «Физико-математические науки и информационные технологии: проблемы и тенденции развития» (Россия, г. Новосибирск, 25 сентября 2012 г.)
Наука: Информационные технологии
Секция: Инженерная геометрия и компьютерная графика
Скачать книгу(-и): Сборник статей конференции
- Условия публикаций
- Все статьи конференции
дипломов
ГЕНЕРАЦИЯ ТЕКСТУР НА ОСНОВЕ ОБОБЩЕННОЙ МоДЕЛИ ОБРАБОТКИ ИЗОБРАЖЕНИЙ НА ГРАФИЧЕСКИХ ПОТОКОВЫХ ПРОЦЕССОРАХ
Сморкалов Андрей Юрьевич
аспирант, ПГТУ, г. Йошкар-Ола
Е-mail: asmorkalov@mail.ru
Введение
Текстура представляет собой растровое изображение, используемое в 3D-графике для наложения на 3D-модели. Генерация текстур позволяет сократить объем данных, необходимых для воспроизведения изображения, в сотни и даже тысячи раз. Существенным недостатком этого подхода является значительное время, требуемое на генерацию растрового изображения.
Графические потоковые процессоры (далее ГПП) обладают большим потенциалом для решения задачи генерации текстур, обладая в сотни раз большим быстродействием, чем центральный процессор, на котором эти задачи решались ранее. Поэтому, учитывая разнообразие методов генерации, актуальной является реализация генерации текстур на основе обобщенной модели обработки изображений на графических потоковых процессорах.
Генерация текстур и её виды
В общем случае различают генерацию статических и динамических текстур. Под статической текстурой понимают изображение, не меняющееся с течением времени. Генерация статических текстур на ГПП также исследована для частных случаев, например, в [4], однако общая модель генерации статических текстур не представлена.
При генерации статических текстур возможны три подхода. Первый предполагает генерацию текстуры на основе некоторого начального изображения и одного или нескольких примененных к нему фильтров. Второй предполагает растеризацию векторных фигур для генерации текстуры. Третий, комбинированный метод, сочетает в себе первый и второй подходы.
Под динамической текстурой понимают изображение, меняющееся с течением времени. Генерация динамических текстур на графических потоковых процессорах была реализована для различных частных случаев (однако общей модели также не представлено), наиболее известные из которых процедурные материалы [2] и постэффекты [3]. В случае использования процедурных материалов вместо полной генерации текстуры при отображения каждого кадра 3D-сцены рассчитывается только цвет пикселей текстуры, необходимых для отображения 3D-объекта. В определенных случаях смысл повторяемая с определенной периодичностью генерация статической текстуры на ГПП для наложения на 3D-объект вместо использования процедурных материалов.
Таким образом, вычислительные возможности ГПП позволяют осуществлять генерацию текстур в десятки раз быстрее, однако общей модели генерации для текстур на потоковых процессорах не представлено. В статье предлагается реализация генерации текстур на основе обобщенной модели обработки изображений на ГПП, позволяющая:
· организовать генерацию статических и динамических текстур, в том числе реализацию процедурных материалов и постэффектов.
· сравнить оптимальность подходов к генерации динамических текстур.
· реализовать вышеописанные подходы к генерации статических текстур.
Математическая модель
Будем рассматривать изображение в цветовой модели RGBA:
U(x, y) = {fR(x, y), fG(x, y), fB(x, y), fA(x, y)}, (1)
где fR(x, y), fG(x, y), fB(x, y), fA(x, y) — это дискретные функции, заданные табличным методом. Значения этих функций лежат в диапазоне [0, 1].
Результатом преобразования Gизображения А на основе изображения Bбудем называть R=G(A, B, x, y) (2), где А — это исходное изображение, B— растеризуемая фигура, G— преобразующая функция. Более подробно данная математическая модель обработки изображений описана в [1].
Такая модель позволяет определить цвет каждой точки сгенерированной текстуры в отдельности, т. к. результирующее изображение — функция от координат точки. Модель подходит и для задачи генерации полного изображения текстуры, и для генерации необходимых для отображения 3D-объекта точек текстуры (процедурные материалы). Обобщенность модели позволяет сравнить эффективность 2 подходов к генерации динамических текстур.
Время генерации полной текстуры на ГПП определяется по формуле
TРТ=TПР+Т1 * W* H(3), где
ТРТ — время генерации полного изображения,
TПР— время подготовки к преобразованию,
Т1 — время расчета цвета одного пикселя, т.е. расчета (2),
W, H— высота и ширина рассчитываемого изображения.
Время расчета цвета пикселей при использовании метода процедурных материалов определяется как
TПМ=T1* KВП * КК (4), где
TПМ— время на генерацию цвета точек процедурного материала,
KВП— число точек, нужных для отображения 3D-объекта с процедурным материалом,
КК — максимальное число кадров, в течение которых содержимое динамической текстуры может не меняться.
Отношение TРТ/TПМдает возможность оценить эффективность использования того или иного подхода. Стоит заметить, что по мере увеличения (W*H) отношение TРТ/TПМстремится к (W*H)/(KВП*КК).
На основе описанной математической модели была построена программная модель генерации текстур.
Программная модель
Программная модель обработки изображений на ГПП на основе математической модели, анализа архитектуры потоковых процессоров и возможностей OpenGL подробно описана в [1]. В основе модели лежат четыре основных объекта: Texture, Drawing Target, Filter и Filter Sequence.
Texture — это изображение в форме (1), хранимое в памяти графического потокового процессора (соответствует генерируемой текстуре). Drawing Target — это объект, который определяет изображение-результат и цветовую маску (применение его настроек соответствует времени TПРв математической модели). При использовании метода процедурных материалов Drawing Target не используется, а объект-результат Textureстановится логическим, т.е. не представленным на аппаратном уровне.
Filter — задает преобразование изображения (2) и в общем случае представляет собой функцию с набором предопределенных и пользовательских параметров, возвращающую цвет точки для заданных координат. Filter Sequence - задает последовательность нескольких фильтров с их параметрами, в общем случае позволяя организовать конвейер обработки. Filter/FilterSequenceявляются преобразованиями, генерирующими текстуру.
Для применения комбинированного метода генерации статических текстур программная модель была расширена объектом LayeredPicture(см. рис. 1).
Рисунок 1. Объект LayeredPicture. Пунктирными линиями обозначены опциональные подобъекты.
Объект LayeredPictureсостоит из подобъектов FSтипа FilterSequence, ToolPaletteс набором связанных с ним подобъектов типа Texture(T1 — текстура-результат и TO— временная текстура), DepthBufferи DrawingTarget(DT2), а также предопределенного объекта FА типа Filter(фильтр альфа-смешивания, соответствующий выражению (6)). В FSна рис. 2. выделены подобъекты DTтипа DrawingTargetи T2 типа Texture. T2 хранит в себе результирующее изображение FS.
Опционально в LayeredPictureвходит подобъект TRтипа Textureи DTRтипа DrawingTarget. В случае генерации статической текстуры, TRхранит в себе результирующее изображение. В случае использования метода «процедурных материалов», подобъекты TRи DTRфизически отсутствуют, оставаясь логическими.
Таким образом, предложенная обобщенная программная модель обработки изображений позволяет осуществлять генерацию статических и динамических текстур, в том числе реализовать процедурные материалы, постэффекты и все три вышеописанных подхода к генерации статических текстур.
Результаты
Обобщенная модель обработки изображений позволяет напрямую сравнить метод процедурных материалов и метод периодической регенерации текстуры как статической. Сравнение на примере генерации текстуры динамического неба (рис. 1) проводилось с использованием ГПП NVidiaGF8800GT(табл. 1). T— время, между двумя последовательными обновлениями динамической текстуры. Очевидно, что результаты соответствует приведенной математической модели.
Таблица 1.
Сравнение методов генерации динамической текстуры
T, мс |
50 |
200 |
500 |
1000 |
2500 |
5000 |
TПМ/ TРТ |
0.16 |
0.71 |
1.63 |
3.12 |
7.31 |
14.53 |
Генерация статических текстур методом применения серии фильтров была апробирована на примере генерации уникальных текстур кожи аватаров. Преимущество подхода на ГПП иллюстрирует табл. 2. Сравнение проводилось с использованием ГПП NVidiaGF8800GT(соответствует TГПП) и ЦП IntelCore2 Quad2.4 ГГц (1 ядро, соответствует TЦП).
Таблица 3.
Сравнение времени генерации текстуры кожи аватара
Размер |
128х128 |
256х256 |
512х512 |
1024х1024 |
2048х2048 |
TГПП, мкс |
94 |
151 |
280 |
1041 |
2001 |
TЦП, мкс |
495 |
1654 |
6032 |
20853 |
79504 |
6. Заключение
Обобщенная математическая и программная модель обработки изображений на ГПП и описанные подходы к генерации статических и динамических текстур были успешно апробированы в образовательном виртуальном мире vAcademia [5]. Был представлен способ сравнения и определения эффективности способов генерации динамических текстур.
Список литературы:
- Сморкалов А.Ю. Реализация образовательных инструментов в виртуальных 3D-средах с использованием потоковых процессоров. // Образовательные технологии и общество. — 2011. — № 3. — С. 409—425.
- Ares Lagae, Peter Vangorp, Toon Lenaerts, Philip Dutre. Procedural isotropic stochastic textures by example // Computers & Graphics. — 2010. — № 4. — pp. 312—321.
- Gilberto Rosado. Motion Blur as a Post-Processing Effect // GPU Gems 3. —Addison-Wesley Professional, 2007. — pp. 575—610.
- Xiaogang Jin, Chen Shaochun, Xiaoyang Mao. Computer-Generated Marbling Textures: A GPU-based Design System // IEEE Computer Graphics and Applications, IEEE Computer Society. — 2007. — № 2. — pp. 78—84.
- http://www.vacademia.com(дата обращения: 4.06.2011).
дипломов
Оставить комментарий