КОМПЬЮТЕРНАЯ ИНЖЕНЕРИЯ И ТЕХНИЧЕСКАЯ ДИАГНОСТИКА
УДК 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 Рецензент: д-р техн. наук Алипов Н.В.
Гусятин Владимир Михайлович, канд. техн. наук, доцент кафедры электронных вычислительных машин ХТУРЭ. Научные интересы: теория и практика построения спецпроцессоров растровых графических систем реального времени. Адрес: Украина, 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