УДК 681.323
В.М. ГУСЯТИН, канд. техн. наук,
Н.Е. СЕМИКИН
КЛАССИФИКАЦИОННОЕ ОПИСАНИЕ ВЕКТОРНО ЗАДАННЫХ АНАЛИТИЧЕСКИХ ПОВЕРХНОСТЕЙ ПРИ ФОРМИРОВАНИИ ИЗОБРАЖЕНИЙ МЕТОДОМ ОБРАТНОГО ТРАССИРОВАНИЯ В СИСТЕМАХ ВИЗУАЛИЗАЦИИ
Предлагается классификационное описание векторно заданных аналитических поверхностей. Построение описания базируется на формировании древовидной структуры доменов. Такое описание векторно заданных поверхностей ускоряет и упрощает вычисление точек пересечения проекционного луча с поверхностью, а также позволяет снизить затраты памяти.
Ключевые слова: классификационное описание, метод обратного трассирования, проекционный луч, домен.
Постановка проблемы. Основным требованием, предъявляемым к современным системам визуализации (СВ) реального времени, является высокая реалистичность генерируемого изображения. Метод обратного трассирования [1, 2] работает с аналитически заданными поверхностями, что позволяет значительно повысить качество синтезируемой картинки по сравнению с методом прямого трассирования [3, 4]. Применение векторного метода описания поверхностей позволяет задавать широкий диапазон примитивов для создания сцен. Однако непосредственное применение итерационного алгоритма для вычисления точек пересечения проекционного луча (ПЛ) с векторно-заданной фигурой затруднительно в силу того, что в общем случае поверхность может иметь множество точек пересечения с ПЛ. Поэтому актуальным является поиск такого описания поверхности, при котором упрощается определение точек пересечения.
Анализ литературы. Одним из подходов к решению данной проблемы является классификационное описание. Классификационное описание представляет собой разделение пространства, занимаемого фигурой, на подпространства (домены). Известно классификационное описание поверхностей второго порядка, представленных в неявной форме, и плоскостей [5]. Однако оно не решает задачу упрощения нахождения точек пересечения ПЛ с поверхностью, а служит только для уменьшения времени синтеза изображения. Таким образом, возникает необходимость построения такого классификационного описания векторно-заданной фигуры, чтобы в каждом домене было ограниченно количество возможных точек пересечения с ПЛ.
Цель статьи. Изложить метод построения классификационного описания векторно заданных аналитических поверхностей, которое позволит ограничить в каждом домене количество точек пересечения ПЛ с фигурой до предварительно заданного и повысить скорость генерации изображения.
Классификационное описание. В предлагаемом методе используется ортогональная классификация, когда оболочка поверхности и домены, на которые она разбивается, представляет собой куб или прямоугольный параллелепипед. Предлагается использовать не регулярную, как в [5], а древовидную классификационную решетку. Это позволит снизить объем памяти, используемый под классификационное описание, и вычислений при расчете точки пересечения ПЛ с поверхностью. Корнем дерева доменов Т является внешняя оболочка поверхности [3]. Определим атрибуты домена как совокупность параметров:
где Fmm={xvmиъ Уть ^тт} - вершина, задающая геометрическое положение домена, у которой координаты х, у, г минимальны для данного домена;
А V = {Ах, Ду, Дг} - стороны параллелепипеда, задающего домен;
Ьшг/ - список поверхностей, указывающий принадлежность поверхности данному домену;
Ьск - список дочерних доменов, на которые разбит данный.
При разбиении домена будем делить его на 8 равных частей тремя перпендикулярными плоскостями, параллельными граням домена.
Пусть поверхность задана векторно на множестве параметров {и; V} следующим образом [6]:
Задача построения классификационного описания состоит из следующих этапов:
1. Выбор шага дискретизации параметров поверхности.
2. Формирование дерева классификационных доменов.
3. Исключение пропущенных доменов.
Этап 1. При выборе шага дискретизации параметров будем учитывать угловую погрешность СВ у [7] и минимальное расстояние Ьтт, с которого будет визуализирована поверхность. Шаг дискретизации параметров будем выбирать, основываясь на частных производных поверхности первого порядка. Если известны частные производные первого порядка поверхности, то можно вычислить шаг дискретизации параметров поверхности, линеаризуя функции координат х = fx(u,v), у = /у(и^), г = /г(и^).
Зададимся целью выбрать такой шаг дискретизации, при котором
приращение поверхности | № | с расстояния Ьтт не превысят у. Учитывая, что у ~ 2-10 и меньше, можно записать:
Д _ {ушп, АУ, , ЬсЬ },
(1)
(2)
|А_|< Ьтп • У. (3)
Представим А_, как сумму приращений по каждому из параметров:
АК = АК + АКи . (4)
Используем разложение функции в ряд Тейлора [8], для производных
первой степени:
А_ = _ 'у • ¿V;
(5)
А_и =_'и ■ ¿и.
Для нахождения полного приращения функции по двум параметрам воспользуемся теоремой косинусов [8]:
|АК| 2= | АК | 2 +1 АК | 2 -Ъ\АКи^\АКУУсо^а, (6)
где а - угол между векторами _'и и _\ .
Для простоты примем ¿р = ¿V = ¿и. Подставим (5) в (6) и применим формулу скалярного произведения векторов [8]:
|АК|2 = йр2 •(К |2 +|Fru |2 —2К К) . (7)
Подставляя (3) в (7), получаем, что ¿р должно удовлетворять условию на интервалах задания параметров:
¿р < Хтт ^7 . (8)
л/_' + _' — 2 • _ • _
V +1 и 2 1 и 1 V
Этап 2. На этом этапе формируется дерево классификационных доменов. Формирование дерева классификационных доменов включает в себя перебор параметров {и; V} с рассчитанным с помощью (8) шагом:
ик = и тт + ¿Р •к; и е[итт; итах ]; к = 0,1, 2,...; (д)
^ = Vmin + ¿Р • I; V е ^тт; Vmax ]; 1 = 0,l, 2, ....
Формирование дерева доменов разбивается на следующие задачи:
Задача 1. Определение множества доменов, которым принадлежит
рассматриваемая поверхность К . Задача решается так:
1) при прохождении по параметрам (9) рассчитываются координаты точек поверхности, соответствующие этим значениям параметров:
XI.
Кк1 =
Ш
Уш
а
= / (иш, V1); (10)
2) определяется, какому домену-листу дерева принадлежит Кы на основе выражений:
Определение, какому домену-листу принадлежит , начинается с вершины дерева Т и затем рекурсивно, применяя (11), производится анализ принадлежности точки Еы дочерним доменам. В списки доменов, для
которых выполнилось выражение (11), заносится рассматриваемая фигура Р .
Задача 2. Разбиение доменов. Необходимо для ограничения количества точек пересечения ПЛ с поверхностью. Критерием для разбиения доменов предлагается выбрать количество экстремумов поверхности в домене. Рассмотрим случай, когда в домене имеется не более одного экстремума, так как в этом случае в домене будет не более трёх точек пересечения ПЛ с поверхностью (рис. 1). Для такого случая итерационный алгоритм поиска точек пересечения ПЛ с поверхностью строится наиболее просто. Анализ количества экстремумов поверхности (любым из способов, приведенных, например, в [9]) в домене следует проводить на множестве точек поверхности, полученных при проходе по параметрам (10).
Рис. 1. Показано максимальное количество точек пересечения поверхности с ПЛ при одном экстремуме функции поверхности в домене; а) плоский случай, б) трехмерная поверхность.
Таким образом, приняв за критерий разбиения домена количество экстремумов поверхности в домене, запишем функции-предикаты, которые описывают условие разбиения домена, основываясь на количестве экстремумов поверхности вдоль каждой координаты:
а)
б)
где Мх, Му, Иг - количество экстремумов поверхности в домене
соответственно по X, у, I.
Теперь условие разбиения домена можно записать в следующем виде:
° = Рх V Ру V р2 .
Этап 3. Исключение пропущенных доменов. При прохождении по отсчетам параметров в задаче 1 этапа 2 возможны ситуации, когда в силу дискретизации, будет пропущен переход поверхности в соседний домен (рис. 2).
di 3^ di+i
г*
рл
Рис. 2. Возможный случай пропуска отсчетами домена
Это может привести к появлению пропусков на поверхности при визуализации, поскольку в этом случае в список LSurf домена d+i не будет помещена рассматриваемая поверхность. Для исправления этой ситуации предлагается применить мажорантный подход и включить в классификационное описание домены-листья, которые имеют общие грани с доменами, содержащими поверхности (соседние домены). Для этого:
1. Составляется список LF листьев дерева доменов, содержащих данную поверхность F.
2. Для каждого элемента списка LF листа формируется список соседних доменов LFneib (i = 1, 2, ...), которые не содержат данную поверхность
(F z Lsurf).
3. Заносим в список Lsurf элементы списка LFneib.
Предложенный мажорантный подход увеличивает объем вычислений при визуализации поверхности, однако за счет избыточности вычислений устраняется возможность пропуска доменов, содержащих поверхность.
Выводы. Предложено классификационное описание сложных векторно заданных аналитических поверхностей. Предложенный подход позволяет ограничить количество точек пересечения в каждом домене фигуры с ПЛ. Данное описание рекомендуется применять при визуализации поверхностей методом обратного трассирования.
Список литературы: 1. Иванов В.Б., Батраков А.С. Трехмерная компьютерная графика. - М.: Радио и связь, 1995. - 224 с. 2. Гусятин ВМ. Итерационный алгоритм синтеза изображения в растровой графике реального масштаба времени // Радиоэлектроника и информатика, 1998. - № 3.
- С. 81-83. 3. Foley J.D., van Dam A., Feiner S.K., Hughes J.F. Computer Graphics (principles and practice) by Addison-Wesley Publishing Company, Inc., 1996. - 1175 p. 4. Никулин Е.А. Компьютерная геометрия и алгоритмы машинной графики. - Санкт-Петербург: БХВ-Петербург, 2003. - 550 с. 5. Гусятин В.М., Филимончук М.А. Классификационное описание динамических объектов в задачах синтеза изображения для системы визуализации // Радиоэлектроника и информатика. - 2002. - № 2. - С. 75-78. 6. Гусятин В.М., Семикин Н.Е. Векторный метод описания аналитических поверхностей при синтезе изображений методом обратного трассирования в системах визуализации // Прогресивні інформаційні технології в науці та освіті. Збірник наукових праць. - Вінниця: Вінницький соціально-економічний інститут Університету "Україна", 2007. -С. 72-75. 7. Гусятин В.М. Оценка точности геометрических преобразований в спецпроцессоре растровой графики // Радиоэлектроника и информатика. - 1998. - № 2. - С. 118-120. 8. Бронштейн И.Н., Семендяев К.А. Справочник по математике для инженеров и учащихся вузов.
- М.: Наука, 1981. - 720 с. 9. Пантелеев А.В., Летова Т.А. Методы оптимизации в примерах и задачах. - М.: Высшая школа, 2008. - 544 с.
УДК 681.323
Класифікаційний опис векторно заданих аналітичних поверхонь при формуванні зображень методом зворотного трасування в системах візуалізації / Гусятін В.М., Семікін М.Є. // Вісник НТУ "ХПІ". Тематичний випуск "Інформатика і моделювання". - Харків: НТУ "ХПІ", 2008. - № 24. - С. 25 - 30.
Пропонується класифікаційний опис векторно заданих аналітичних поверхонь. Побудова опису базується на формуванні деревовидної структури доменів. Такий опис векторно заданих поверхонь прискорює та спрощує обчислення точок перетину проекційного променя з поверхнею, а також дозволяє знизити витрати пам’яті. Іл.: 2. Бібліогр.: 9 назв.
Ключові слова: класифікаційний опис, метод зворотного трасування, проекційний промінь, домен.
UDC 681.323
The classification description of vector-described analytic surfaces during ray-tracing image generation in visualizing systems / Gusyatin V.M., Semikin N.E. // Herald of the National State University "KhPI". Subject issue: Information science and modeling. - Kharkov: NSU "KhPI", 2008. -№. 24. - P. 25 - 30.
The classification description of vector-described analytic surfaces is offered. The offered method based on tree-like domain structure. The classification of vector-based analytic surfaces decreases number of cross-points with surface in domain and visualization time. Figs: 2. Refs: 9 titles.
Key words: classification description, ray-tracing, projecting ray, domain.
Поступила в редакцию 24.04.2008