УДК 681.323
В.М. ГУСЯТИН, канд. техн. наук, ХНУРЭ,
Я.В. ЧАГОВЕЦ, канд. техн. наук, ХНУРЭ,
Д.Г. КОЖУШКО, ХНУРЭ
УСТРАНЕНИЕ АЛИАСИНГА ПРИ НАНЕСЕНИИ ТЕКСТУРЫ НА 3Я-ОБЪЕКТЫ В МЕТОДЕ ОБРАТНОГО ТРАССИРОВАНИЯ
Пропонується метод нанесення векторних та растрових текстур з одночасним усуненням аліасінгу при синтезі зображення методом зворотного трасування. Враховується форма проекції пікселя на площину текстури. Суть методу полягає в знаходженні інтегральної суми кольорів, що попали в середину області сумування. Область сумування є апроксимацією реальної форми проекції пікселя на площину текстури. Розглянуті питання підвищення ефективності знаходження інтегрального кольору проекції пікселя.
The method of vector and raster textures mapping is offered with the simultaneous removal of aliasing at the synthesis of image of the ray tracing a method. It is suggested to take into account the form of projection of pixel on the texture plane. Essence of method consists in finding of integral sum of colors which got in the middle of area of sad. An area of sad is approximation of the real form of pixel projection pixel on the texture plane. The questions of increase of efficiency of finding of integral color of projection of pixel are considered.
Постановка проблемы. В процессе синтеза 3^-сцен возникает необходимость оперировать с большими объемами текстур. Кроме того, при отображении текстур возникает проблема устранения алиасинга. Предлагается разработать методы нанесения векторных и растровых текстур с одновременным устранением алиасинга при синтезе изображений методом обратного трассирования.
Анализ литературы. В работах [1 - 4] используется метод, основанный на использовании MIP-карт, применение которых позволяет вводить уровни детализации текстуры с целью устранения алиасинга. Недостатком данного подхода является размытие деталей рисунка текстуры при визуализации. В работе [5] предлагается учитывать форму проекции пикселя на плоскость текстуры. Недостатком описаного алгоритма являются значительные вычислительные затраты, кроме того, алгоритм не учитывает все возможные формы проекции пикселя. В статьях [6, 7] предлагается подход к отображению текстур с высоким разрешением при визуализации больших пространств. Недостатком данного подхода является невозможность нанесения текстуры на аналитически заданную поверхность. В статье [8] предлагается формат представления растровой текстуры, который позволяет значительно сократить вычислительные затраты при нахождении интегрального цвета прямоугольной аппроксимации проекции пикселя. К недостаткам можно отнести: возможность применения только для растровых текстур,
значительное увеличение объема данных текстуры, грубая аппроксимация проекции пикселя. В статье [9] предлагается подход к устранению алиасинга процедурно-заданных текстур. Недостатком данного похода является
ограниченность его применения узким классом нефотореалистических изображений текстур. В статье [10] авторов предлагаются древовидные форматы упаковки векторных текстур, которые, с одной стороны, позволяют уменьшить объемы памяти, а с другой стороны, позволяют отображать текстуры без предварительной распаковки в реальном масштабе времени. Данные форматы текстур ориентированы на метод устранения алиасинга, рассмотренный в данной статье.
Цель статьи. Разработка метода нанесения текстур с одновременным устранением алиасинга. Данная статья является продолжением [10]. Предлагается учитывать форму пикселя путем суммирования цветов текстур, попавших в так называемую область суммирования. Область суммирования -область на текстуре, являющаяся аппроксимацией реальной формы проекции пикселя на эту текстуру.
Описание метода нанесения текстур. Сцена задана базовой системой координат (с/к) ХЇ2. Задан наблюдатель (центр проекции точка И), с которым связана система координат иУЖ . Сцена состоит из объектов (рис. 1, а) в с/к ХІУІ7І (і = 1, N, N - количество объектов в сцене).
Рис. 1. Геометрические элементы задачи
В свою очередь, i -й объект состоит из примитивов, заданных в с/к XijYijZij (у = 1, Ki, Х - количество примитивов в i -м объекте), на каждый
из которых нанесена текстура (рис. 1, а).
Текстура задана на плоскости. Введем функцию, которая устанавливает соответствие между каждой точкой поверхности примитива и точкой на плоскости текстуры:
Рт = Р(Ру) , (1)
где Ру =\Ху, У., Zij | - трехмерные координаты точки пересечения
проекционного луча с у -м примитивом } -го объекта в с/к Х.^^у •
Например, точки А',В',С,П (рис. 1, б).
Рт = {Хт , 2Т } - двухмерные координаты точки на плоскости текстуры в с/к XTZT. Например, точки а, Ь, с, ё (рис. 1, б).
Функция Е задается:
Р(Ру ) = ^(РКР. )) , ^
где Р1 : Р. ^ Рт - функция нанесения текстуры, перевода трехмерных координат точки, заданной в с/к примитива, в двухмерные на плоскости текстуры в с/кХт2т ;
Р2 : Рт ^ Рт - функция аффинного преобразования в с/кXTZT .
Преобразование Р1 используется для отображения точки в трехмерном пространстве на двухмерную плоскость. Примерами функций отображения являются: цилиндрическая, сферическая, линейная. В общем случае с/к Хт2т не совпадает с Хт2т. Аффинное преобразование Р2 учитывает
масштаб, линейное и угловое смещение текстуры на плоскости.
При синтезе изображения трехмерной сцены методом обратного трассирования из центра проекций И будем трассировать лучи, проходящие через каждую вершину пикселей экрана. Для экрана с разрешением т на п пикселей необходимо провести (т +1) х (п +1) лучей.
Таким образом, для каждого пикселя рассматривается четверка лучей, проходящих через его вершины. Рассмотрим случай, когда все четыре пересечения проекционного луча принадлежат одному примитиву (рис. 1, а).
В общем случае истинная проекция пикселя на поверхность примитива представляет собой пространственную фигуру (рис. 1, а). Нахождение проекции такой пространственной фигуры на плоскость текстуры представляет собой нетривиальную задачу.
Предлагается находить лишь проекции вершин пикселя на плоскость текстуры. Для этого необходимо выполнить такие этапы:
1. Найти точки пересечения проекционных лучей, проходящих через вершины пикселя, с поверхностью примитива, заданного в с/к X ^.2. •
Полученные точки обозначить А, В, С, О (рис. 1, а).
2. Найти проекцию точек А, В, С, О на плоскость текстуры в с/к Хт2т -функция Р1. Полученные точки обозначить а', Ь', с', ё'.
3. Перевести двухмерные координаты точек (а',Ь',с', ё') в с/кХт2т путем выполнения аффинного преобразования - функция Р2 . Полученные точки обозначить а, Ь, с, ё (рис. 1, б).
Полученный в результате выполнения действий 1 - 3 четырехугольник а Ьсё предлагается рассматривать в качестве аппроксимации истинной проекции пикселя на плоскость текстуры.
Разбиение аппроксимированной проекции пикселя на фрагменты. В
общем случае аппроксимированная проекция пикселя (в дальнейшем по тексту просто проекция пикселя (ПП)) представляет собой произвольный четырехугольник аЬсё . Нахождение его интегрального цвета требует значительных вычислительных затрат, обусловленных нахождением пересечения классификационных квадратов (КК) [10] подготовленных текстур с проекцией пикселя. С целью упрощения вычисления интегрального цвета предлагается аппроксимировать четырехугольник аЬсё набором прямоугольников, стороны которых параллельны осям системы координат текстуры. Данные прямоугольники будем называть фрагментами.
Для составления алгоритма разбиения проекции пикселя на фрагменты предлагается руководствоваться следующими принципами:
1. Совокупность фрагментов полностью покрывает проекцию пикселя.
2. Не допускается перекрытие фрагментов.
3. Количество фрагментов и их размеры выбираются исходя из требуемой точности нахождения интегрального цвета проекции пикселя.
Точность аппроксимации оценивается отношением суммарной площади фрагментов к площади аЬсё . С учетом п. 1 данное отношение всегда больше либо равно единице. Минимизация этого отношения позволяет получить более точную аппроксимацию.
Ниже предлагаются основные этапы алгоритма разбиения проекции пикселя на фрагменты.
1. Выбрать значение относительной погрешности аппроксимации 1111 5 (см. ниже по тексту).
2. Вычислить уровень к дерева, на котором выполняется разбиение пикселя на фрагменты (см. ниже по тексту).
3. Найти точки р. и р/ пересечения сторон четырехугольника аЬсё с линиями регулярной решетки КК, параллельными осям ОХт и 02 т
соответственно. При этом у = 1, п; I = 1, т, где п, т - количество точек пересечения с линиями, параллельными осям ОХ Т и 02т соответственно.
4. Из полученных точек пересечения и вершин (а, Ь, с, ё) сформировать два списка: Ьх = {а, Ь, с, ё, р1, р2 ,...,рП }, Ьг = {а, Ь, с, ё, р^, Р2 ,---,Р2т } •
Например для (рис. 2, а): Ьх = {а,Ь,с,ё,рХ,рХ,...,Рх },
Ьг = {а,Ь,с, ё,р[,р|,...,р[4} •
5. Отсортировать точки списков Ьх и Ьг в порядке возрастания значения координаты ХТ и 2Т соответственно.
6. Из полученных списков Ьх и Ьг выделить группы точек, принадлежащих КК с одинаковыми номерами по оси Хт и 2Г соответственно.
7. Для каждой группы точек списков Ьх и Ьг найти наименьший
описанный вокруг них прямоугольник, стороны которого параллельны осям Хт и 2Т системы координат текстуры соответственно рис. 2, б и рис. 2, в.
Полученные прямоугольники примем в качестве фрагментов. Полученные наборы фрагментов обозначим Ох и Ог соответственно.
8. Проанализировать сумму площадей набора фрагментов Ох и сумму площадей набора фрагментов Ог. Группу с меньшей площадью будем использовать в дальнейшем для нахождения интегрального цвета проекции пикселя.
Нахождение интегрального цвета проекции пикселя. Следует отметить, что плоскость текстуры в общем случае состоит из повторяющихся единичных текстур (рис. 2, г). Под единичной текстурой будем понимать текстуру в формате [10], ограниченную единичным квадратом.
Фрагмент может покрывать несколько единичных текстур (рис. 2, г). Область пересечения единичной текстуры с фрагментом назовем дочерним фрагментом (ДФ). На (рис. 2, г) один из ДФ выделен жирной линией.
С целью исключения операций масштабирования в процессе нахождения интегрального цвета ДФ переведем координаты вершин ДФ на плоскости
текстуры из с/к ХТ2Т в нормированные двумерные координаты точек на
единичной текстуре в с/к ХМ2М, Рм е [0,1)2 (рис. 2, г).
Взвешенный цвет ДФ вычисляется по формуле:
цвет /'-го ДФ у-го фрагмента; £дф ^ - площадь /'-го ДФ у-го фрагмента.
Нахождение С*дфц ДФ осуществляется путем суммирования с проходом
по дереву подготовленных текстур в формате, описанном в [10]. Алгоритмы нахождения взвешенного цвета ДФ с проходом по дереву будут описаны в следующей статье этого цикла.
Взвешенный цвет фрагмента является суммой взвешенных цветов его ДФ. Для нахождения интегрального цвета проекции пикселя необходимо сумму взвешенных цветов фрагментов разделить на сумму их площадей.
где Ы}- - количество ДФ у-го фрагмента; £ф}- - площадь у-го фрагмента; С -интегральный цвет аппроксимации проекции пикселя.
Вычисление уровня к разбиения на фрагменты. Глубина дерева текстур в формате [10] определяется необходимым уровнем запоминания
(3)
где С*фу - взвешенный цвет /-го ДФ у-го фрагмента; Сдфу - интегральный
С = ±
(4)
детализации с учетом углового разрешения системы визуализации. С целью сокращения объема вычислений, необходимого для нахождения интегрального цвета ПП, при сохранении заданной погрешности аппроксимации проекции пикселя целесообразно ограничиться некоторым уровнем детализации, соответствующим данному уровню погрешности. Для этого нужно соответствующим образом выбрать уровень к разбиения на фрагменты. Рассмотрим задачу выбора уровня к.
Для нахождения уровня к необходимо иметь такие данные: периметр ПП
в с/к Х 2 , площадь ПП, максимально допустимую относительную
погрешность 5 аппроксимации проекции пикселя. Точное значение относительной погрешности аппроксимации ПП с помощью фрагментов получается из соотношения:
5 = £фр ^ПП , (5)
£ ПП
где ^фр = ^ - суммарная площадь фрагментов; £ПП - площадь ПП.
у
Определим количество N классификационных квадратов уровня к, через которые проходит периметр ПП
N и pkt, (6)
где I(к) - длина стороны классификационного квадрата уровня к; РПП -периметр ПП.
Абсолютную погрешность Д£ аппроксимации ПП примем равной половине суммарной площади классификационных квадратов, через которые проходит граница ПП:
N ■ (7 ^))2
Д£ и----(---— . (7)
2
Тогда приближенное значение относительной погрешности (5) оценим из соотношения:
5 = ^= (I(к))2 ■ Рпп I(к) ■ Рпп (8)
£пп I(к) ■ 2 ■ 2 ■ £пп
Так как согласно [10] / ^ = 2 k и
-■ £
к =
- 1СМ2 -1
р ГГГГ
(9)
В нашем случае по заданной 5 вычисляется номер уровня к разбиения на фрагменты.
Выводы. Предложен подход к нанесению текстуры на поверхность 3D-объектa произвольной формы с одновременным устранением алиасинга методом обратного трассирования. Данный подход позволяет получить аппроксимацию проекции пикселя в системе координат текстуры и привести ее к форме, удобной для вычисления интегрального цвета с использованием текстур, формат которых описан в [10]. Достоинства данного подхода к нанесению текстур: устранение алиасинга, малые вычислительные затраты, требуемая точность вычисления аппроксимации проекции пикселя, отсутствие размытия деталей рисунка текстуры. Дальнейшие исследования связаны с разработкой алгоритмов вычисления интегрального цвета ДФ с проходом по дереву текстур в формате [10] и уменьшения их вычислительной сложности.
Список литературы: 1. Foley J.D., van Dam A., Feiner S.K., Hughes J.F. Computer Graphics (principles and practice) by Addison-Wesley Publishing Company, Inc., 199б. - 1175 p. 2. Williams L., Pyramidal Parametrics, S1GGRAPH S3, 19S3. - P. 1-11. 3. Heckbert, P.S., Filtering by Repeated Integration, SIGGRAPH 8б, 198б. - P. 315-321. 4. Samet H., Webber R.E. Hierarchical Data Structures and Algorithms for Computer Graphics, Part I: Fundamentals, CG&A, May 19SS. - P. 48-б8. 5. StefanHorbelt, Philippe Th'evenaz, Michael Unser, Texture Mapping by Successive Refinement Proceedings of the 2000 IEEE International Conference on Image Processing (ICIP'00), Vancouver BC, Canada, September 10-13, 2000. - Vol. II. - P. 307-310. б. Borgeat L., Godin G., Blais F., Massicotte P., Lahanier C. Gold: interactive display of huge colored and textured models // ACM Trans. Graph. 24.
- № 3 (2005). - P. 8б9-877. 7. Hwa L M., Duchaineau M.A., Joy K.I. Adaptive 4-8 texture hierarchies / In Proc. Visualization. - 2004. - P. 219 - 22б. S. Crow, F.C. Summed-Area Tables for Texture Mapping, SIGGRAPH 84, 1984. - P. 207-212. 9. John C. Hart, Nate Carr, Masaki Kameya, Stephen A. Tibbitts, Terrance J. Coleman. Antialiased parameterized solid texturing simplified for consumer-level hardware implementation, 1999 SIGGRAPH / Eurographics Workshop on Graphics Hardware, Aug., 1999. - P. 45-53. 10. Гусятин В.М., Чаговец Я.В., Кожушко Д.Г. Упаковка векторных текстур в задачах синтеза изображений для систем визуализации. Вісник НТУ "ХПІ". Серія "Інформатика і моделювання". - 2005. - N° 5б. - С. 9-1б.
Поступила в редакцию 10.10.2007