Научная статья на тему 'Итерационный алгоритм синтеза изображения в растровой графике реального масштаба времени'

Итерационный алгоритм синтеза изображения в растровой графике реального масштаба времени Текст научной статьи по специальности «Математика»

CC BY
178
30
i Надоели баннеры? Вы всегда можете отключить рекламу.

Аннотация научной статьи по математике, автор научной работы — Гусятин Владимир Михайлович

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

i Надоели баннеры? Вы всегда можете отключить рекламу.
iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.
i Надоели баннеры? Вы всегда можете отключить рекламу.

Image synthesis iteration algorythm in real time raster graphics

Iteration-based algorythm of finding the point of intersection between projection beam and analytically defined (in implicit form) graphics primitive surface is considered. Iteration equations are obtained. Necessary and sufficient conditions for intersection point existance are defined. The algorythm may be realized in inverse ray-tracing method in pipelined computing environment structure.

Текст научной работы на тему «Итерационный алгоритм синтеза изображения в растровой графике реального масштаба времени»

КОМПЬЮТЕРНАЯ ИНЖЕНЕРИЯ И ТЕХНИЧЕСКАЯ ДИАГНОСТИКА

УДК 681.323

ИТЕРАЦИОННЫЙ АЛГОРИТМ СИНТЕЗА ИЗОБРАЖЕНИЯ В РАСТРОВОЙ ГРАФИКЕ РЕАЛЬНОГО МАСШТАБА ВРЕМЕНИ

ГУСЯТИН в.м.

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

Синтез изображений высокой реалистичности в реальном масштабе времени (РМВ) является задачей, требующей для своего решения больших вычислительных мощностей. Поэтому поиск и разработка алгоритмов, снижающих подобные требования к вычислителям, являются актуальными.

При решении задачи синтеза методом обратного трассирования в растровой графике [1,2] необходимо найти точку пересечения проекционного луча (ПЛ) с поверхностями графического примитива (ГП), моделирующего какой-либо элемент сцены. Существующие алгоритмы разработаны для случая, когда имеется возможность аналитического решения исходной системы [1]. Параллельно-конвейерная структура аппаратной части, реализующей такие алгоритмы, содержит большое количество разнообразных операционных устройств для выполнения времяем-ких операций умножения, деления, извлечения корня и т.п., а также большое число тактов конвейера при задержках на один такт в пределах единиц наносекунд [3]. Такие сложные структуры предъявляют высокие требования к величине погрешности входных переменных для получения необходимой точности решения на выходе.

Построим итерационный алгоритм на основе математической модели, изложенной в [2].

На рисунке представлены геометрические элементы решаемой задачи. Введена правая система координат (с/к) XYZ, в которой задано положение центра проекции h(Xh,Yh,Zh). Положение ГП опре-

делено в (с/к) X'Y'Z', центр которой задан относительно (с/к) XYZ координатами Xo, Y0, Z0. Для определенности на рисунке показан однополостной гиперболоид. Показан также проекционный луч hP, где P есть точка пересечения проекционного луча с любой из базовых плоскостей. К базовым отнесем плоскости XY, XZ, YZ, в которых лежат оси (с/к) XYZ, а также любые другие плоскости, параллельные указанным. Базовые плоскости обычно ограничивают объем геометрически моделируемой сцены.

Геометрические элементы задачи В соответствии с [2] координаты точки пересечения P(X,Y,Z) проекционного луча с базовыми плоскостями могут быть найдены из векторного уравнения

?р = ?h + v p . (1)

Далее распишем (1) через компоненты векторов этого уравнения на оси X,Y,Z:

X=Xh+Xp, Y=Yh+Yp, Z=Zh+Zp, (2)

где Xp, Yp, Zp — проекции на оси (с/к) XYZ вектора

Vp , соответствующего на рисунке проекционному лучу hP.

Используя (2), запишем координаты произвольной точки на линии hP в параметрической форме: x=Xh+Xp-t, y=Yh+Yp-t, z= Zh+Zp-t, (3)

где t — параметр; te{0...1|.

В дальнейшем поверхности, с которыми пересекается ПЛ в пределах одного ГП, считаем предварительно выделенными из всего множества поверхностей до начала работы итерационного алгоритма. Запишем уравнения поверхностей в общем виде: F(X,Y,Z)=0, F1(X,Y,Z)=0, F2(X,Y,Z)=0, (4)

Fx(X,Y,Z)=0, F2(X,Y,Z)=0 ... Fn(X,Y,Z)=0. (5)

Система (4) описывает ГП в виде поверхности вращения 2-го порядка F(X,Y,Z)=0, ограниченной вдоль оси вращения плоскостями Fi и F2. Система (5) описывает ГП (либо выпуклый многогранник, ограниченный плоскостями F1 ... Fn, либо, в простейшем случае, одну плоскость).

Решение систем уравнений (3), (4) или (3), (5) для нахождения точек пересечения P1 и P2 будем искать итерационным методом. Для этого параметр t запишем в виде

Й+1=Л+|к'8ь (6)

где к — номер шага итераций; кє{0, 1, 2 ... n|; |к — коэффициент, задающий направление движения на

РИ, 1998, № 3

81

k-м шаге итераций, Ike{1, -1}; 5k—величина k-го шага итераций

Sk=2-k . (7)

С учетом (6) система (3) примет вид:

Xk=Xh+Xp-tk, Yk=Yh+Yp-tk, zk= Zh+Zp-tk . (8)

Для упрощения записи введем обозначения: Fi(xk,yk,Zk)=Fi(k); Fi(xh,yh,Zh)=Fi(h), где i - номер поверхности.

Здесь следует подчеркнуть, что Fi(h) не изменяется в течение обработки одного кадра динамического изображения. Перед началом итерационного процесса для каждого пиксела изображения в соответствии с [2] вычисляются параметры ПЛ.

Один шаг итерационного процесса состоит из следующих вычислений:

1. Для выбранной поверхности Fi вычисляется Fi(h) и оцениваются отношения

Fi(h) < 0; Fi(h) > 0 . (9)

2. Определяется |k по результатам предыдущего шага (см. далее).

3. Вычисляется tk в соответствии с (6).

4. Для выбранной плоской поверхности вычисляется Fi(k) и оцениваются отношения

Fi(k) < 0; Fi(k) > 0. (10)

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

Fk=F(tk) и Fk =Fk(tk±2-n). Выбор знака “±” не имеет принципиального значения. Для определенности в дальнейшем выберем знак “—”.

5. Определяется параметр AFk :

AFk=Fk-Fk (11)

и оцениваются отношения

AFk < 0; AFk > 0 . (12)

Начальные условия для нулевого шага: k=0, t0=1, I0=°.

В пунктах 1-5 приведен возможный полный набор выполняемых операций на каждом шаге. Однако в зависимости от типа поверхности и результата вычислений на k-м шаге количество операций может изменяться в сторону уменьшения.

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

Пример 1. Пусть F(X'Y'Z')=0 — плоскость, заданная в с/к X'Y'Z'. Рассмотрим два случая.

Случай 1. Плоскость F(X'Y'Z')=0 пересекается ПЛ. Тогда нахождение точки пересечения хорошо сопоставляется с задачей поиска точки на отрезке hP длиной t0=1 в относительных единицах. Наиболее рациональным по аппаратным затратам и числу шагов для достижения заданной точности является метод дихотомии. В нашей задаче ищется экстремум-минимум модуля величины F(xk,yk,zk)=Fi(k) за определенное число шагов. Значение этой величины Fk на k-м шаге удобно выбрать в качестве параметра-индикатора (ПИ), позволяющего оценить ситуацию в итерационном процессе и определить правильное направление следующего шага итерации. Оценку ПИ следует проводить с учетом параметра Fh, указывающего на положение центра проекции h по отно-

шению к плоскости. Параметр Fk в процессе итерации может принимать значения Fk>0, Fk<0, Fk=0. Тогда в общем случае условия определения | k имеют вид

I к

1,F к > є

0,|F к I <N

— !,F К < —Є ;

I К

1,F к <-є

0,|F к I <N

- 1,F к >є

Fh > 0 Fh < 0

где є — допустимая абсолютная погрешность отклонения от нуля величины Fk на последнем шаге итераций.

В случае, когда |k=0, при использовании универсального вычислителя итерационный процесс можно завершить, так как координаты текущей точки xk, yk, zk, вычисленные на этом шаге, соответствуют координатам точки пересечения с заданной плоскостью. Однако учитывая, что максимальная производительность достигается при параллельной конвейерной структуре вычислителя, случай |k=0 нарушает однородность структуры и ритм работы конвейера.

С учетом изложенного запишем условия определения |k следующим образом:

■ 1,Fk > 0 , 1,Fk < 0

Ik =- 1,Fk <0 . Ik=l- 1,Fk >0 (13)

Fh > 0 Fh <0

В этом случае на последнем шаге итераций kmax=n будут получены координаты точки пересечения ПЛ с плоскостью F(X'Y'Z'), не ограниченной в пространстве. На практике ГП — плоскость, всегда ограничена в пространстве каким-либо образом. Поэтому для завершения итерационного процесса следует добавлять еще один шаг, на котором проверяется соответствие полученных координат Xn, Yn, Zn отношениям

X < Xn < X , Y <Yn < Y , Z < Zn < Z , (14)

где X , X , Y , y , Z , Z — допустимые соответственно нижние и верхние значения вычисленных координат плоскости, ограниченной в пространстве.

Случай 2. Плоскость F(X'Y'Z')=0 не пересекается ПЛ. Тогда одновременно на нулевом шаге выполняются отношения

Fh > 0, F0 > 0, либо Fh < 0, F0 < 0 . (15)

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

Пример 2. Пусть F(X'Y'Z')=0 — поверхность вращения 2-го порядка, центральная относительно с/к X'Y'Z'. Рассмотрим два случая.

Случай 1. Поверхность F(X'Y'Z')=0 не пересекается ПЛ. Необходимым условием существования этого случая является выполнение (15), а также следующих неравенств на каждом шаге итерации в соответствии с (15):

Fh > 0, Fk > 0, либо Fh < 0, Fk < 0 . (16)

Достаточным условием существования рассматриваемого случая является выполнение неравенства (16) в точке на ПЛ, наиболее близкой к поверхности F(X'Y'Z')=0. Для нахождения этой точки будем исследовать параметр-индикатор AFk. Таким образом, в рассматриваемом случае одновременно вычисляем две величины Fk и Fk , используя на каждом

82

РИ, 1998, № 3

шаге для этого метод дихотомии. Запишем условия определения |k.:

1 1, AFk > 0 1 k '-1,AFk < 0 • е 1 1, AFk < 0 1 k '-1,AFk > 0

Ч Л о Ч V о

(17)

Если по завершении итерационного процесса, т.е. kmax=n, ни на одном из к шагов не нарушились пары неравенств (16), то ПЛ не пересекает поверхность.

Случай 2. Поверхность F(X'Y'Z')=0 пересекается ПЛ. Итерационный процесс в этом случае строится следующим образом. Если на нулевом и последующих шагах пары неравенств (16) не нарушаются, то для нахождения |к. используются условия (17). Как только неравенства (16) на каком-либо шаге нарушились, то, начиная со следующего шага, в качестве ПИ

выбираются две величины F1(tk) и F2(tk), позволяющие одновременно с достижением kmax=n вычислить две точки пересечения ПЛ с поверхностью: соответственно, ближнюю к h и дальнюю от h. Запишем условия определения |k.. Для первой точки Р1:

е | 1,F1k > 0 Є k L 1,F1k < 0 ; е 1 1,F1k < 0 Єk L 1,F1k >0. (18)

Fh > 0 Для второй точки Р2: 4 A О

е | 1,F 2k < 0 Є k !- 1,F 2k > 0 ; е | 1,F2k < 0 Є k '- 1,F 2k > 0. (19)

4 V 0 4 A О

Из (18) и (19) следует, что для случая Fh<0 координаты точек Pi и Р2 совпадают. В рассматриваемом итерационном процессе на последнем шаге итераций kmax=n будут получены координаты точек пересечения Р1 и Р2 ПЛ с поверхностью. На практике длина поверхности вращения часто ограничивается плоскостями F1 и F2.

Пример 3. Поверхность F(X'Y'Z')=0, длина которой ограничена вдоль оси вращения плоскостями F1(X'Y'Z')=0 и F2(X'Y'Z')=0. Нахождение точек пересечения Р1 и Р2 ПЛ с ГП в рассматриваемом примере выполняется следующим образом. Для плоскостей F1 и F2 точки пересечения находим в соответствии с примером 1, а для поверхности вращения— в соответствии с примером 2. Итерационные процес-

сы могут выполняться одновременно. По завершении kmax=n шагов необходимо выполнить еще один шаг, на котором устанавливаются истинные точки пересечения. На этом шаге выполняется проверка неравенств. Для координат точек пересечения ПЛ с плоскостями F1 и F2 проверяется выполнение неравенств

F(X'i, Yi , Z'i) < 0, F(X'2, Y'2, Z'2) < 0 , (20) где X' 1, Y'1, Z '1 и X' 2, Y' 2, Z ' 2 — координаты точек пересечения ПЛ с плоскостями соответственно F1 и F2, подставленные в уравнение, описывающее поверхность вращения. Для координат точек пересечения ПЛ с поверхностью вращения F(X'Y' Z' )=0 проверяется выполнение какой-либо пары неравенств.

Для первой точки:

F1(X' 1, Y' 1, Z' 1) < 0, F2(X' 1, Y' 1, Z' 1) > 0, либо F1(X'1, Y'1 , Z'1) > 0, F2(X'1, Y'1 , Z'1) < 0 , (21) где X'1, Y'1, Z'1—координаты первой точки, подставленные в уравнения плоскостей F1 и F2.

Для второй точки:

F1(X'2, Y'2, Z'2) < 0, F2(X'2, Y'2, Z'2) > 0 , либо F1(X'2, Y'2, Z'2) > 0, F2(X'2, Y'2, Z'2) < 0 , (22) где X'2, Y'2, Z'2 — координаты второй точки, подставленные в уравнения плоскостей F1 и F2.

Совместный логический анализ неравенств (20), (21), (22) позволяет установить, на каких поверхностях оказались истинные точки пересечения.

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

Литература. 1. Иванов В.П., Батраков А.С. Трехмерная компьютерная графика. М.: Радио и связь, 1995. 224 с. 2. Гусятин В.М. Математическая модель геометрических преобразований для спецпроцессоров растровой графики // Радиоэлектроника и информатика. 1997. №1. С. 8687. 3. Башков Е.А., Зори С.А. Устройство синтеза реалистических изображений устилающей поверхности Земли для систем визуализации тренажеров. Донецк: Сб. трудов ДонГТУ. 1996. С. 148-152.

Поступила в редколлегию 14.09.98 Рецензент: д-р техн. наук Алипов Н.В.

iНе можете найти то, что вам нужно? Попробуйте сервис подбора литературы.

Гусятин Владимир Михайлович, канд. техн. наук, доцент кафедры электронных вычислительных машин ХТУРЭ. Научные интересы: теория и практика построения спецпроцессоров растровых графических систем реального времени. Адрес: Украина, 310726, Харьков, пр. Ленина, 14, тел. 40-93-54, 66-61-22.

УДК 681.326

БЕЗОПАСНОСТЬ В INTERNET. ВОЗМОЖНОСТИ НОВОГО ПРОТОКОЛА IPv6

ФРАДКОВ С.А._______________

Описываются новые возможноси Internet-протокола 1Ру6, способствующие усилению безопасного обмена конфиденциальной информацией во всемирной Сети.

В августе 1990 г. на конференции IETF (Internet Engineering Task Force) в Ванкувере впервые обсуждалась проблема неспособности Internet справляться с экспоненциальным ростом числа подключенного к

сети оборудования. Изначально, в 1973 г., Internet должен был соединять около сотни компьютеров. Однако с каждым годом все более многочисленные категории пользователей начали подключаться к созданной сети. Вначале это были научные центры и университеты, потом, в 1992 г., Internet был открыт для коммерческой деятельности, расцвет которой мы можем сейчас наблюдать. Так как размер адреса Internet составляет 32 бита, то количество возможных адресов в нем теоретически равно 232=4294967296. Но так как адреса выделяются не последовательно, а в пределах подсетей класса А (16777214 адресов), В (65534 адреса) и С (254 адреса), и так как количество подключенного оборудования удваивается ежегодно , то специалисты предсказывали полный крах всей сети в 1994 г. Опасения оказались преждевременными, но начиная с 1993 г. были предприняты срочные

РИ, 1998, № 3

83

i Надоели баннеры? Вы всегда можете отключить рекламу.