Научная статья на тему 'Математическая модель геометрических преобразований для спецпроцессоров растровой графики'

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

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

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

Рассмотрена математическая модель центропроективных геометрических преобразований объемной сцены. Показана целесообразность ее использования при построении спецпроцессоров растровой графики реального масштаба времени.

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

The mathematical model of geometrical transformations for raster graphics special processors

General equations for pixel-by-pixel calculation of central projection to the surface of scene object an screen elemental (pixel) being scanned in present moment in raster sweep are obtained. The principle of the model is reverse ray-tracing method. The model enables us to process analytically-setted spatial figures without its pre-approximation and to mark a photorealistic texture on the surface of object. Practicalimportant examples are considered.

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

УДК 681.323

МАТЕМАТИЧЕСКАЯ МОДЕЛЬ ГЕОМЕТРИЧЕСКИХ ПРЕОБРАЗОВАНИЙ ДЛЯ СПЕЦПРОЦЕССОРОВ РАСТРОВОЙ ГРАФИКИ

ГУСЯТИН в.м.

Рассмотрена математическая модель центропроективных геометрических преобразований объемной сцены. Показана целесообразность ее использования при построении спецпроцессоров растровой графики реального масштаба времени.

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

При аппаратной реализации вычислений формул центропроективного преобразования важно представить их в форме, позволяющей учесть специфику задачи построения СВ. Данный момент представляется принципиально важным, так как применение общих формул в их каноническом виде [2] без учета специфики задачи приводит к сильно завышенным требованиям на вычислительные ресурсы и не позволяет создать компактную структуру спецпроцессора.

Перейдем к описанию параметризации центропроективного преобразования. На рис. представлены основные геометрические элементы рассматривае-

Рис. Геометрические элементы

мой задачи. Введены правая “земная” система координат X,Y,Z (g-система) и связанная с наблюдателем система координат u,v,w (v-система), начало которой

размещено в центре тяжести перемещающегося аппарата (самолета).

Точка наблюдения h (центр проекции) задана относительно начала координат v-системы радиусвектором h(Uh,Vh,Wh). Обозначение проекционного

луча представим в виде X V = Vp .

Экран (плоскость проекции) расположен перпендикулярно к оси U, так что его центр Оэ в v-системе в общем случае имеет координаты (U,+Uh),V^W^ В плоскости экрана введена система координат Yэ,Zэ с началом в центре экрана. Введен вектор наблюдения

V, идущий от точки наблюдения h до центра текущего пиксела экрана. Проекцию точки экрана, определяемую этим вектором, на отображаемой поверхности f(x,y,z)=0 или f(r) = 0 ищем на проекционном луче х V , проведенном из центра проекции

h в направлении вектора V до пересечения с отображаемой поверхностью в точке P. Определяем параметр X так, чтобы выполнялось векторное уравнение

rp = rh + XV , (1)

где X — скаляр. Тогда имеем следующее выражение:

f(rp) = f[ (Xh + XVx),(Yh + XVx),(Zh + XVz)] = 0.(2)

В общем случае проекционный луч х V пересекает поверхность в нескольких местах. Но на экране будет видна ближайшая непрозрачная точка

X = argminjх>о [f(r) = 0]. (3)

Условие X>0 естественно выделяет нужное направление проекционного луча к экрану. В этом

уравнении компоненты векторов rh и V должны быть заданы в g-системе. Рассмотрим практически важные примеры решений уравнения (3).

Пример 1. Пусть поверхность f(x,y,z)=0 является сферой и плоскость XZ g-системы касается поверхности сферы (Земли). Уравнение сферы в векторной форме имеет вид [2]:

I r - r1l=R, (4)

где f — радиус-вектор (в g-системе) к любой точке P поверхности сферы радиуса R; f1 = rp n = (d+R) n — радиус-вектор (в g-системе) к центру сферы; n — единичный вектор; d - расстояние до поверхности сферы в направлении радиус-вектора f1. Перепишем (4) в виде:

г + Rp - г1 =0, (5)

где Rp — вектор, соединяющий точку P с центром сферы. Умножим левую и правую части (5) на n: r ' n + Rp ■ n - r1 ' n = 0. Тогда имеем:

f ■ n +R'Cos a - d - R=0; J ■ n - (d+dc) = 0, (6)

где dc=R-(1-cos a); a — угол между двумя векторами

Rp и n . Для данного примера d=0 и тогда

г ' n - dc=0, (7)

где dc=2R-cos2b; b — угол между векторами J и Д . Из (1), (3) и (7) найдем решение для X:

X = -

n•rh - dc

n • V

(8)

86

РИ, 1997, № 1

или в более подробной записи будем иметь

. nxXh + nyYh + HzZh - dc

A =-----------------------. (9)

nxVx + nyVy + nzVz

Пример 2. Поверхность f(x,y,z) при синтезе изображения может быть задана как кусочно-плоская. Найдем решение для A в случае пересечения вектора

rp с плоскостью, являющейся элементом поверхности f(x,y,z), и задаваемой векторным уравнением г ■ n - d = 0, (10)

где Г — радиус-вектор в g-системе к точке на

поверхности плоскости; n — единичный вектор нормали к плоскости; d — параметр плоскости (кратчайшее расстояние от начала координат g-системы до плоскости).

Подставляя (10) в (3) с учетом (1) имеем:

П • rh - d П • V

(11)

или

nxXh + nyYh + nzZh - d

nxVx + nyVy + nzVz

(12)

Пример 3. Рассмотрим наиболее простой случай, когда f(X,Y,Z)=y, т.е. плоскость параллельна плоскости XZ g-системы. Тогда в соотношении (12) имеем nx=nz=0; ny=1; d=dy и, следовательно,

A = - (Yh - dy)/Vy . (13)

В случае, если f(x,y,z) есть плоскость XZ g-системы, имеем dy=0 и

A = - Yh/ Vy . (14)

Из решений (8), (11), (13) следует, что в общем виде выражение для A можно обобщить:

l = F / G, (15)

где функция F связывает параметры точки наблюдения и параметры поверхности, а функция G — скалярное произведение вектора наблюдения V с единичным вектором n.

Распишем векторное уравнение (1) с учетом всех векторных составляющих:

rh = r0 + h + A V. (16)

Для нахождения координат точки пересечения проекционного луча с отображаемой поверхностью в g-системе необходимо предварительно выполнить преобразование компонент всех векторов, входящих в (15), (16) из v-системы в g-систему. К таким

векторам относятся векторы h и v , так как их компоненты заданы в v-системе. Взаимное расположение v-системы относительно g-системы задается радиус-вектором f 0 и ориентацией системы, которую в общем случае можно задать поразному. Воспользуемся принятым в авиации способом задания ориентации v-системы с помощью угла крена g, угла тангажа u и угла рыскания (курса) y [2]. Для выполнения преобразований необходимо построить матрицу поворотов A по принятым углам вращения y, u, g. Результирующая матрица поворотов A получается путем перемножения элементарных матриц. Поскольку умножение матриц в общем случае не удовлетворяет свойству коммутативности, то зададим следующий порядок перемножения матриц:

Ayy — поворот на угол y вокруг оси Y;

Azu — поворот на угол u вокруг оси Z;

Axg — поворот на угол g вокруг оси X.

Для вычисления результирующей матрицы имеем: Ay,u,g=AyAuAg. (17)

В общем случае матрица A имеет вид:

(18)

где элементы матрицы представляют собой направляющие косинусы [2].

Введем обозначения строк в матрице A соответственно Ax, Ay, Az. Тогда, учитывая ортогональность

систем, для произвольного вектора R (u,v,w), заданного в v-системе, получим компоненты этого вектора в g-системе из матричных соотношений:

Rx = (Ax)-(Ru, Rv, Rw)T,

Ry = (Ay)-(Ru, Rv, Rw)T, (19)

Rz = (Az)-(Ru, Rv, Rw)T, где индекс T — операция транспонирования.

Используя соотношения (15), (16), (19), найдем значения координат точки P(X,Y,Z) (рис.):

X = r0x + hx + ^

Y = r0y + hy + l-Vy , (20)

Z = r0z + hz + l-Vz,

где компоненты векторов h и V в матричной записи имеют вид:

h(X,Y,Z) = (Ax,y,z)(hu , hv, hw)T, (21)

V(X,Y,Z) = (Ax,y,z)(Vu, Vv, Vw)T.

Анализ соотношений (20) и (21) позволяет оценить для каждого пиксела необходимый объем вычислений, который существенно превышает вычислительные возможности компьютеров.

Окончательно отметим, что для реализации растровой графики методом обратного трассирования в реальном масштабе времени (примерно <50нс/пик-сел) необходимо для каждого пиксела в темпе его прорисовки выполнить вычисление соотношений (15), (20), (21), что требует разработки специальной вычислительной техники, спецпроцессоров растровой графики [3].

Приведенная математическая модель использована при построении спецпроцессора цифровой системы визуализации, которая установлена и работает в Киеве в Украинском государственном учебно-сертификационном центре гражданской авиации на комплексном тренажере КТС Ту-154М, а также в Харьковском институте летчиков на тренажере летчика ТЛ-39.

Литература:1. Ф. Мартинес. Синтез изображений. Радио и связь. М.: 1990. 2. Г. Корн , Т. Корн. Справочник по математике. М.: 1973. 3. Патент №2020557МКИ5 G06F 7/548 Устройство для вычисления быстрых геометрических преобразований / Гусятин В.М., Горбачев В.А., Либероль Б.Д. Опубликовано 30.09.94, // Открытия. Изобретения. Промышленные образцы. Товарные знаки, Бюл. №18, 1994.

Поступила в редколлегию 12.10.87

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

РИ, 1997, № 1

87

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