Синтез виртуальной среды

с применением аналитических и скалярных функций возмущения и трехмерных массивов вокселей

Резюме

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

1. ВВЕДЕНИЕ

Компьютерная графика реального времени, ориентированная на визуализацию трехмерных сцен, достигла на сегодняшний день существенных успехов. Она находит широкое применение от сложных систем визуализации для тренажерных комплексов (авиационных, космических, морских, автомобильных и т.п.) до графических акселераторов, используемых в компьютерных играх. В основе этих систем лежит полигональное задание объектов трехмерных сцен с последующим преобразованием и сканированием в плоскости изображений. И хотя достигнут достаточно высокий реализм отображаемых сцен в реальном времени, существует ряд задач, например, отображение больших районов местности, где требуется хранить и отображать сцены, содержащие существенно большее число полигонов, чем реализовано в современных системах. Так, задача отображения горных районов местности требует для исходного описания сотни тысяч полигонов. С другой стороны, если для точного моделирования форм корпусов автомобилей, самолетов, подводных лодок и т.д. требуются тысячи сплайн-поверхностей (криволинейных участков, заданных полиномиальными функциями), то можно вычислить, сколько потребуется плоских многоугольников (полигонов) для того, чтобы с большой точностью аппроксимировать кузов того же автомобиля, в этом случае счет уже пойдет на десятки, а то и сотни тысяч многоугольников. Ни одна из существующих архитектур не позволяет линейно масштабировать производительность систем [1]. Когда вычислительная нагрузка достигает предела производительности одного графического конвейера, в большинстве случаев из-за ограниченной пропускной способности памяти, тогда для получения желаемого ускорения необходимо ставить параллельно несколько конвейеров и подбирать подходящий метод распределения данных. Частичным решением данной проблемы является так называемая тайловая технология (Tile Technology) [2] или, реализованная в системе визуализации "Ариус" виртуальная методика визуализации [3], [4], которые, по сути дела, мало чем отличаются друг от друга. Однако ограничения, создаваемые промежуточной виртуальной памятью — буфером тайлов (Tile Buffer) и дополнительная транспортная задержка вычислительного тракта не позволяют использовать данную технологию для тех приложений, где эти ограничения существенны (научная визуализация и авиасимуляторы военного назначения). С другой стороны, доводы в пользу того, что треугольник является самой простейшей фигурой в природе, с помощью которой можно отобразить все, не совсем верны, если смотреть на области применения графических ситем несколько шире. Так, в тренажерных системах военного назначения изображение проецируется на купол (Dome) [5], и искажения, вносимые как самим криволинейным экраном, так и перемещениями наблюдателя и проектора, необходимо корректировать (DDC — Dynamic Distortion Correction). Следует отметить, что в этом случае, когда угол обзора (FOV — field of view) больше, чем 180 градусов, Z-буфер не может решить задачу определения видимости многоугольников по глубине z, которые пересекают плоскость z=0. R-буфер решает эту проблему, вычисляя истинный диапозон (range) точек двух объектов, одна из которых видима наблюдателю. Недалек тот день, когда изображение будет проецироваться непосредственно прямо на сетчатку глаза человека с помощью персонального проектора, и это устройство может заменить дисплей компьютера. С эгоцентрической точки зрения наблюдателя окружающее его пространство является сферическим [6]. В этом случае отображение также будет нелинейным (NLIM — non-linear image mapping), как и в первом примере. Треугольник уже не будет той простой фигурой, к которой все привыкли, а будет менять свою форму (искривляться) и не будет плоским. Можно обойти эту проблему и подделять треугольник на более мелкие и плоские, но, с одной стороны, для сильных искажений трудно или почти невозможно сделать триангуляцию, с другой, — где предел решений методом грубой силы (brute force)? То есть, на наш взгляд, технологии, основанные на полигональном задании объектов, достигли своего насыщения, и идти дальше в этом направлении некуда. Приведем перечень основных проблем полигональной технологии:

  1. На границе силуэта проявляется многоугольная структура объекта, т. е. граница имеет форму ломаной. Следовательно, полностью скрыть "граненость" тела не удается, а в силу психологических свойств зрения, такой эффект оказывает неблагоприятное воздействие на процесс восприятия синтезированной сцены. Обычно этот дефект частично устраняется более точной аппроксимацией поверхности, что требует увеличения количества многоугольников.
  2. Большое количество "мелкого мусора" — вырожденных граней, которые удалить на раннем этапе довольно трудно, необходима нетривиальная оценка малого углового размера грани. С другой стороны, при приближении наблюдателя к объекту при смене уровня детальности, необходимо добавлять новые грани, чтобы силуэт объекта не выглядел граненым.
  3. Проблемы высокой глубинной сложности при большом количестве полигонов, особенно для горного ландшафта местности.
  4. Сложность визуализации аморфных объектов (объемные облака, дым и т.д.).
  5. Проблемы приоритетов, определения и смены уровней детальности, клиппирования многоугольников пирамидой видимости и т.д.
  6. Поскольку при увеличении количества многоугольников в сцене, последние имеют устойчивую тенденцию "мельчать", то распараллеливание вычислений на уровне конкатенации практически невозможно, поскольку размер их становится соизмерим с размером пиксела, а распараллеливание со слиянием имеет большие проблемы. В результате необходимо иметь геометрические процессоры чуть ли не на каждый пиксел. Сложное распараллеливание и синхронизация процессоров, несмотря на простоту обработки многоугольников (без учета сферической перспективы).
  7. При сканировании двумерного пространства нельзя получить полноценного трехмерного изображения. Полигональная трехмерная графика со сканированием полигонов в плоскости изображения не является трехмерной в полном смысле этого слова. Информация, которая предоставляется пользователю в такой технологии — неполная. Главное — это отсутствие информации о глубине объекта, имеется ввиду не отсутствие Z-координаты точки поверхности, а отсутствие информации о луче, проходящем сквозь объект. Из-за недостатка такого рода информации разработчики традиционных полигональных технологий попадают в "ловушки", ими самими же расставленные. И решать возникающие проблемы им приходится многочисленными техническими приемами.
  8. Сложность анимации поверхностей и морфинга объектов. Морфинг негомеоморфных объектов (например, тора и сферы) и морфинг с ограничениями невозможен без разрыва поверхности и последующего "склеивания" последней. Что доступно технологиям с функциональным описанием примитивов. Так, например, при морфинге blob-моделей, последние могут распадаться на многочисленные мелкие части, а потом собираться вновь, формируя объект другой формы.

Для системы, отображающей многоугольники, повышение качества изображения эквивалентно повышению производительности системы, измеряемой в количестве обрабатываемых многоугольников за время одного кадра, потому что реалистичность изображения непосредственно зависит от сложности сцены и точности приближения. Но, видимо, в силу указанных недостатков традиционного подхода, в настоящее время наблюдается не заметный внешне кризис: невозможно существенно повысить производительность и качество изображения, не прибегая к методам грубой силы, используя лишь выработанные идеи. Поэтому качественного скачка следует ожидать в другом подходе к проблеме, а именно — в использовании новых методов, в комбинации с лучшими свойствами известных методик. Хотя, казалось, факты говорят об обратном, если принять во внимание выставочный работающий образец системы GScube c 16 процессорами EE (Emotional Engine) от компании Sony Computer Entertainment, Inc. (SCEI) и Host-процессором Origin 3000 от SGI (Silicon Graphics) c абсолютно фантастическими характеристиками, как полигональной, так и пиксельной производительности — 1.2 миллиарда треугольников в секунду. Эта система выставлялась недавно на SIGGRAPH 2000.

В ряде работ [7-12] показаны функциональные способы описания визуализируемых объектов, позволяющие существенно, в сравнении с полигональным заданием, сократить объем баз данных для определенного класса объектов. Однако отображение в реальном времени объектов, заданных таким способом, требует большого количества вычислений.

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

2. СПОСОБЫ ЗАДАНИЯ СВОБОДНЫХ ФОРМ ОБЪЕКТОВ

Характерной особенностью предлагаемых способов задания свободных форм, во-первых, является то, что основными примитивами выбраны поверхности второго порядка — квадрики. Примитив-квадрик является основой для построения всех остальных объектов. Квадрик определяется с помощью вещественной непрерывной описывающей функции трех переменных (x1, x2, x3) в виде F(X)0. Рассматриваются квадрики как замкнутые подмножества Евклидова пространства En, определяемые описывающей функцией F(X)0, где F — непрерывная вещественная функция и X= (x1,x2,x3) — задаваемая координатными переменными точка в En. Здесь F(X) > 0 задает точки внутри квадрика, F(X) = 0 — точки на границе и F(X) < 0 — точки, лежащие снаружи и не принадлежащие квадрику. На базе квадриков строится первый класс свободных форм с использованием вещественных функций возмущения. Класс свободных форм такого типа выгодно применять при синтезе искусственных (рукотворных) объектов. Во-вторых, предлагается второй класс свободных форм с использованием скалярных функций возмущения относительно базовой плоскости или квадрика, например, для генерации рельефа местности или скульптурных моделей. В-третьих, предлагается использовать трехмерные массивы вокселей там, где не выгодно применять вышеперечисленные классы примитивов, это объекты особой сложности. И в-четвертых, применять треугольники там, где это выгодно (плоские грани стен домов, кристаллов и т.д.).

Итак, входные данные, в основном, представлены объектами, имеющими неполигональное представление: аналитическое или в виде скалярных массивов. По сравнению с представлением отображаемых объектов в большинстве современных систем визуализации в виде набора многоугольников, такое представление данных значительно сокращает описание сцены в базе данных. С другой стороны, система позволяет создавать качественные изображения объектов, заданных аналитически. В то время, как растрирование многоугольников происходит в плоскости экрана, в нашем случае происходит сканирование при растрировании в объёме. Это важное отличие позволяет отображать объекты с внутренней структурой при учёте плотности или полупрозрачности. Отметим, что совсем недавно RTViz (Real Time Visualization) - Mitsubishi Electric и 3Dlabs анонсировали новую систему, в которой наряду с воксельным массивом данных будут и треугольники. К текущему моменту существует пока единственная система реального времени, позволяющая отображать объёмные данные, представленные одним трёхмерным массивом значений [13-27]. В нашей системе, как уже было сказано выше, можно отображать скалярные массивы, аналитически заданные объекты и их произвольную комбинацию, что значительно расширяет область применения системы. Для получения конечного изображения сцены в системе используется специальный алгоритм растрирования, осуществляющий сканирование при многоуровневом подделении пространства с маскированием, что приводит к значительному сокращению вычислений по сравнению с тем, если бы напрямую использовался алгоритм объёмного сканирования [28].

2.1 Функции возмущения в неявном виде

Предлагается описывать сложные геометрические объекты, задавая функцию отклонения (второго порядка) от базового квадрика в виде:

На базе квадриков строятся свободные формы. Свободная форма есть композиция базового квадрика и возмущения ), где функция возмущения R(x,y,z) находится следующим образом:

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


Рис. 1

Сцена на рисунке 1, описанная 6 свободными формами с аналитическими функциями возмущения (всего 42 функции), требует в 500 раз меньше информации по сравнению с заданием ее полигонами.

Таким образом, задача конструирования объекта сводится к задаче деформации поверхности квадрика нужным образом, а не к аппроксимации его примитивами (полигонами или патчами, представленными B-сплайновыми поверхностями). Кроме того, при решении описывающей функции в виде неравенства F(X)0, можно визуализировать не только поверхность, но и внутреннюю структуру объекта (Рис. 2).


Рис. 2

На рисунке 2 показана полупрозрачная поверхность, описанная четырьмя функциями второго порядка, заполненная трехмерной текстурой.


Рис. 3

На рисунке 3 показан результат моделирования аморфного объекта (трехмерного облака с непрозрачным объектом внутри облака) с применением данного вида свободных форм.

Итак, основными примитивами в системе являются функции второго порядка — квадрики. Трёхмерная функция второго порядка определяется десятью коэффициентами. Такое же количество данных необходимо для описания пространственного расположения одной треугольной грани. Более компактное представление модели позволяет резко снизить расходы памяти при хранении базы данных, а следовательно, и разгрузить транспортные магистрали между вычислительными компонентами системы и блоками памяти. С другой стороны, появляется возможность конструировать гладкие объекты без дефектов, присущих полигональным моделям.

Но для построения более сложной сцены простых поверхностей второго порядка будет уже не достаточно. Поэтому на базе квадриков можно строить более сложные гладкие поверхности. Это достигается за счёт деформации базового квадрика. В общем случае при таком возмущении объём квадрика может искажаться как в сторону уменьшения, так и в сторону увеличения своего значения. В итоге, квадрик с возмущением представляет из себя поверхность второго порядка с локальными значениями высокого порядка (в основном, четвёртого и выше). 2.1.1 Теоретико-множественные операции

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

2.2 Функции возмущения в скалярном виде

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

Поскольку во время растеризации необходимо оценивать максимум функции на трехмерном или одномерном интервале, то для эффективности вычислений предварительно составляются карты уровней детальности. Исходные данные составляют уровень n, если размерность сетки равна 2n x 2n. Данные для уровня n-1 получаются выбором максимума из четырех смежных значений уровня n, остальные три далее не учитываются, т.е. получаем размерность сетки 2n-1 x 2n-1. Уровень 0 состоит из единственного значения — максимума по всей карте высот. Таким образом, можно рассматривать карту высот как текстуру формы.

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


Рис. 4

На рисунке 4 показан результат моделирования рельефа местности без предварительной триангуляции с билинейной интерполяцией значений высот с разрешением карты высот 200x200.


Рис. 5

На рисунке 5 показан результат моделирования объекта со скалярной функцией возмущения относительно нескольких базовых плоскостей с бикубической интерполяцией значений высот. 2.2.1 Геометрическая модель объектов

Определим основные понятия и термины, которые будут использоваться в дальнейшем. Более подробно общая теория поверхностей описана в [29].

Открытое односвязное множество точек на плоскости будем называть плоской областью. Пусть D — плоская область, и ее замыкание. Введем на плоскости координатную систему (u,v). Пусть x, y, z — прямоугольные декартовы координаты точек в трехмерном Евклидовом пространстве Е3. Зададим на множестве три непрерывные функции:

И предположим что функции обладают следующими свойствами:

Свойство А.

Если (u1,v1) и (u2,v2) — различные точки множества , то точки М1 (x1,y1,z1) и М2 (x2,y2,z2) пространства Е3, координаты которых вычислены по формулам

,
тоже различны.

Определение: множество S точек M(x, y ,z), координаты x , y, z которых определяются соотношениями:


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

Далее поверхностью свободной формы F будем называть простую поверхность, являющуюся графиком функции, определенной в 3-мерном пространстве z=f(x, y).

Задание поверхности свободной формы на основе скалярного поля представляет собой совокупность некой базовой поверхности P, находящейся в той же системе координат, что и F, и связанной с базовой поверхностью Р карты высот.

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

Карта высот представляет собой двумерный прямоугольник, который далее будет именоваться областью возмущения Dp, базовой поверхности P, внутри которого задана функция возмущения h(u,v), которая, в свою очередь, определяет само возмущение. Область определения функции h(u, v) D h(u, v) = {U, V}, где U и V — размеры прямоугольника.

То, что карта высот связана с базовой поверхностью, означает, что существует преобразование G из системы координат, в которой находятся F и P, в систему координат карты высот; как правило, таким преобразованием является параллельная проекция.

Значение функции h(G(dF)) характеризует отклонение точки dF, лежащей на поверхности F, от точки dP, являющейся проекцией этой точки на поверхность P. Другими словами, значение функции h(G(dF)) равно модулю вектора

Следовательно, область поверхности свободной формы можно определить как множество точек в определяемых векторным уравнением.

В случае, если v находится за пределами области возмущения, вектор , а вектором F является вектор на базовой поверхности.

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

В таком случае можно сказать, что в области возмущения Dp будет задано скалярное поле.

Функция h имеет следующий вид:

Итак, задание поверхности свободной формы F на основе скалярного поля есть:

  • Базовая поверхность.
  • Преобразование из С.К. (системы координат) базовой поверхности в С.К. карты высот.
  • Функция возмущения.
  • Таблица чисел, характеризующих отклонения поверхности F от базовой в контрольных точках.

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

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

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

Предложенный метод создания поверхностей обладает существенным ограничением на класс моделируемых объектов. Требование от F — того, чтобы она была поверхностью нулевого уровня некой функции, означает то, что каждой точке на базовой плоскости можно поставить в соответствие одну и только одну точку на поверхности F. Таким образом, смоделировать одной картой высот, например, поверхность вращения, нельзя, так как в этом случае одной точке на плоскости будут соответствовать две точки на поверхности. Для моделирования поверхностей, не являющихся поверхностями нулевого уровня функции, необходимо разбиение плоскостями исходной поверхности F на составляющие ее подповерхности Построение вышеописанным способом карт высот по отдельности для каждой из этих разбивающих плоскостей и моделирование с помощью операций CSG исходной поверхности из набора моделей подповерхностей. При этом расположение каждой из разбивающих плоскостей происходит по двум критериям.

Первый заключается в возможности построения карты высот применительно к данной разбивающей плоскости, части объекта, расположенной в той части полупространства, которая находится в направлении вектора нормали разбивающей плоскости.

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

2.3 Текстура и трехмерные массивы вокселей

Дадим определение текстуры в "объёмном" смысле. Кроме того, однозначно определим основные понятия:

Текстура — это детализация поверхности (Рис. 6, 7) или объёма отображаемого объекта (Рис. 2). Здесь существенно то, что не оговаривается конкретное строение текстуры, то есть, текстура в общем случае не обязательно представляет собой двумерный массив текселей (texels).

     
Рис. 6                                                           Рис. 7

Отображаемый объект — это вся трёхмерная сцена или её элемент, несущий информацию о своей форме [30]. Например, сцена, представленная двумя эллипсоидами, с одной стороны, может рассматриваться как изображение двух независимых объектов, с другой стороны, эти эллипсоиды можно рассматривать как объект-объединение двух эллипсоидов, и эти две точки зрения не будут противоречить друг другу, а будут являться альтернативными. Тогда, в терминах объектов, текстура — это элемент сцены, изменяющий свойства другого объекта и сам не отображающийся при растрировании. Например, раскрашенный шар будет представлен двумя объектами: формой в виде эллипсоида и объектом — текстурой, содержащим ссылку на массив цветов, каким-то определённым образом накладываемым на эллипсоид, используя линейную, цилиндрическую, сферическую или какую-нибудь другую параметризацию.

Свойство отображаемого объекта — это любой параметр, назначенный этому объекту, который используется при вычислении результирующего цвета пиксела на экране. Например, это могут быть цвет объекта, весовые коэффициенты диффузной и отражающей составляющих модели освещения Фонга, полупрозрачность и т.д. Текстура, таким образом, может влиять на любой параметр отображаемого объекта.

Кроме объектов, заданных аналитически, — квадриков — существует возможность отображать объекты, представляющие собой скалярные массивы данных [31]. Это значительно расширяет возможности и области применения системы в следующих случаях:

  • Визуализация трёхмерных массивов, полученных в результате сканирования реальных объектов в реальном пространстве (томография и т.д.).
  • Визуализация научных данных, полученных в результате расчётов или измерений.
  • Визуализация метеорологических данных (распределение температуры, влажности, и т.д.).
  • Визуализация двумерной сетки высот без предварительной триангуляции.

Визуализация скалярных массивов хотя и требует значительных затрат памяти (порядка N2 или N3 для двумерных и трехмерных массивов), но, по сравнению с эквивалентным их представлением в виде множества треугольников, массивы всё же более компактны и удобны в использовании и манипулировании.

Пусть имеется объект, представляющий собой какой-то скалярный массив в каком-то формате, известном только самому объекту. Определим этот объект как объект-массив. В итоге, в системе основные примитивы будут представлены двумя классами объектов. Один класс — это аналитически описанные примитивы (квадрики), другой — массивы скалярных данных. И тот, и другой классы имеют более компактное описание по сравнению с треугольниками.

Объект-массив может быть реализован несколькими способами. Он может заключать в себе одномерный, двумерный или трёхмерный массив (Рис. 8), а также может являться сеткой высот.


Рис. 8

По данному в этой работе определению, текстура — это объект (не отображаемый), изменяющий свойства другого объекта. Особенностью текстуры является то, что текстурой может быть любой объект. Для этого было предложено незначительное изменение схемы обработки данных и построения дерева сцены, не затрагивая самого алгоритма растрирования [32]. На самом последнем уровне рекурсии подделения, находится ближайший видимый воксел и запрашивается у отображаемого объекта (сцены) параметры этого элемента пространства для их использования в вычислении цвета пиксела. Добавлением в структуре данных при учёте текстуры является то, что каждый объект может содержать ссылку на другой объект, являющийся текстурой для первого. Если этой ссылки нет, то объект на запрос о значении своих свойств выдаёт значение, определённое для этого объекта по умолчанию. Иначе, параметры объекта в текущем вокселе подвергаются изменениям со стороны объекта-текстуры, на которую ссылается наш объект.

Важным при наложении текстуры на объект является преобразование координат из текстурного пространства (U, V, W) в пространство объекта (X, Y, Z). В нашем случае параметризация нужна только для объектов-массивов. Чтобы иметь возможность накладывать текстуру на поверхность и объём отображаемого объекта, объекты-массивы дополнены свойством преобразования координат из модельного пространства M в текстурное пространство T. При запросе у объекта-массива значения какого-то свойства, он преобразует координаты текущего воксела из M в T: (X,Y,Z)(U,V,W) и использует эти координаты как адрес в массиве. Если, например, массив двумерный, то одна координата не используется. Реализованы три вида преобразования объектных координат в текстурные:

3. ПРОЕКТИВНОЕ ПРЕОБРАЗОВАНИЕ

Применение проективного преобразования обобщает алгоритм растеризации на пирамидальные объемы, что позволяет синтезировать изображения с перспективой. В трехмерном пространстве точке с декартовыми координатами (x, y, z) соответствует бесконечное множество однородных координат (x', y', z', a) таких, что x=x'/a, y=y'/a, z=z'/a, т.е. однородные координаты определяются с точностью до общего ненулевого множителя. Представляет интерес матрица преобразования, действующая на однородные координаты следующим образом:

где © — матрица преобразования, (M) — однородные координаты точки пространства M, (P) - соответствующие по отображению координаты в P. В рамках проективной геометрии доказывается теорема о том, что проективное отображение пространства M на пространство P однозначно определяется заданием пяти пар соответствующих по отображению точек, при условии, что из пяти точек, задаваемых в пространстве M, никакие четыре не лежат в одной плоскости [33]. Выбираем пять пар таких опорных точек (Mi)и (Pi) (верхний индекс соответствует номеру пары) и составляем систему уравнений:

где — неизвестные множители; .

Решая эти уравнения, находим коэффициенты матрицы проективного преобразования ©, которая в дальнейшем используется для трансформации геометрических примитивов. Данное проективное преобразование позволяет синтезировать виртуальную сцену в криволинейном техмерном пространстве со сферической перспективой, если данное преобразование применить к nxm подпирамид пирамиды видимости (FOV — field of view), при этом для каждой подпирамиды будет своя матрица проективного преобразования.

4. СПОСОБ РАСТЕРИЗАЦИИ

В данной работе использовался алгоритм многоуровневого отслеживания лучей [32], осуществляющий эффективный поиск элементов объема — вокселей, участвующих в формировании изображения. Этот алгоритм является развитием алгоритма растрирования, реализованного в системе визуализации "Альбатрос" [34], [35]. На первом шаге рекурсии исходная пирамида видимости разбивается на четыре меньшие подпирамиды в экранной плоскости. На этапе деления пространства по четверичному дереву, где совершается сжатие в два раза и перенос на ±1 по двум координатам, рекурсивное преобразование коэффициентов квадрика выглядит так:

где коэффициенты без штриха берутся с предыдущего шага рекурсии; переменные i, j = ±1 определяются в зависимости от направления погружения в рекурсию (i — по оси x, j — по оси y). Полученные коэффициенты используются в тесте на пересечение. Для каждой новой подпирамиды выполняется тест на пересечение с объектом. Если в уравнении квадрика Q(x, y, z) = 0 значения переменных x, y, z меняются в пределах отрезка [-1, 1], то

Теперь заметим, что если , то, возможно, существует точка такая, что Если же , то заведомо таких точек не существует, а знак коэффициента A44 различает расположение подпирамиды внутри или снаружи по отношению к поверхности квадрика Q=0 (если , тогда подпирамида внутри квадрика). На основании результатов этого теста осуществляется деление подпирамид, которые лежат внутри квадрика целиком или, возможно, частично, а заведомо внешние подпирамиды исключаются из обработки. Тест на пересечение подпирамид со свободными формами несколько отличается. Для базового квадрика тест на пересечение выглядит следующим образом:

Если , тогда подпирамида находится снаружи;

Здесь R — есть максимум функции возмущения на текущем интервале, а буквы Aij — коэффициенты квадратичной функции. Для функции возмущения проводится тест:

Если , тогда подпирамида находится снаружи области определения возмущения;

где Aij — коэффициенты квадратичной функции возмущения, и дополнительно вычисляется значение R, которое служит добавкой к базовой функции.

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

В случае скалярных функций возмущения значением возмущающей функции R является число, вычисленное по проекции данного воксела на карту высот. Процесс растеризации такой поверхности выглядит следующим образом. Четверичное подделение поверхности происходит таким же образом, как оно описано в [30][31][32]. Выделение формы поверхности происходит на этапе подделения воксела по z-координате. На последнем уровне четверичного дерева находим координаты одномерного бруска — воксела V0, который задается парой векторов P0=(x0,y0,z0) и P1 =(x1,y1,z1), V0 = {P0,P1}. Далее, координаты воксела V0 с помощью преобразования G преобразовываются в систему координат карты высот:

Для этого вводится матрица Т-преобразования в систему координат карты высот, которая, будучи умноженной на матрицу геометрических преобразований М, дает результирующую матрицу преобразования G. G=T*М;

Тогда преобразованные координаты воксела (u, v, h, a) в системе координат карты высот вычисляются из (x,y,z) координат воксела в модельном пространстве умножением вектора точки в модельном пространстве на матрицу G.

Далее осуществляется подделение воксела по Z-координате, или бинарное подделение воксела. На этом этапе для текущего уровня рекурсии вектор конца воксела, являющегося ближайшим по отношению к наблюдателю, полагается равным вектору ближайшего конца воксела предыдущего уровня подделения. Вектор дальнего конца воксела вычисляется как полусумма векторов ближнего и дальнего концов воксела предыдущего уровня подделения.

Pni = Pni-1, Pfi = (Pni-1 + Pfi-1)/2.

Vi = {Pni, Pfi}, где Vi -воксел i-го уровня рекурсии, а Pni и Pfi — координаты ближнего по отношению к наблюдателю и дальнего концов воксела на i-м уровне рекурсии. Таким образом, геометрические преобразования (имеется ввиду операция умножения на матрицу геометрических преобразований, являющаяся очень трудоемкой) в случае задания поверхности как карты высот, для воксела делаются всего лишь один раз, на первом уровне бинарного подделения, а далее идет просто процесс деления воксела на две части и выбор ближайшей пересеченной.

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

Уровни детальности

Поскольку на этапе растеризации возмущение должно оценивать максимум своей функции на одномерном или трехмерном интервале, то для уменьшения количества вычислений вводятся уровни детальности. На каждом этапе бинарного подделения воксела по его размерам вычисляется уровень детальности — 'level'. Если 'level' не последний уровень детальности — то полученная высота 'h' сравнивается со значением высоты данного уровня 'Hmax' , и если 'h>Hmax', то подделение воксела прекращается.

  1. Определяем габариты прямоугольника, являющегося проекцией воксела на карту высот, как максимум расстояния от точки {u0,v0} до точки {u1,v1}-Lp.
  2. 2. Из неравенства определяем уровень детальности 'level'

При визуализации поверхностей проверяется тест на принадлежность им лишь пересеченных вокселей (единичных элементов объема), внешние и внутренние вокселы отбраковываются. Для того, чтобы повысить реалистичность изображения и расширить класс отображаемых объектов (полупрозрачные структуры с внутренним распределением плотности, 3D текстуры), необходимо отображать внутреннюю полупрозрачную структуру объекта. Для этого в формировании изображения должны участвовать не только вокселы, которые лежат на поверхности, а так же и те, которые находятся внутри объекта. Следовательно, при делении объема внутренние части объекта не отбрасываются, для них проводится дальнейшая рекурсия алгоритма. При сканировании сцены по Z-координате, что соответствует сканированию объема в глубину, сканирование не прерывается при встрече с поверхностью, а работает далее, пока полностью не просканируется объем или не накопится определенное значение прозрачности, большее некоторого порогового значения. Для уменьшения времени вычислений алгоритм адаптирован к быстрому прохождению однородных областей объектов, для которых совсем необязательно полностью сканировать объем, доходя до последнего уровня рекурсии, а следует "проскакивать" пустые или однородные участки по Z-координате, и сразу же вычислить цвет и общую прозрачность (Рис. 3). Так как прохождение лучом пустого пространства не вносит вклад в конечное изображение, то скачок через пустое пространство способен обеспечить существенное ускорение обработки и не влияет на качество изображения.

5. ВЫЧИСЛЕНИЕ ЦВЕТА

Цвет пиксела вычисляется на самом последнем уровне рекурсии подделения трехмерного пространства, когда определяются координаты очередного видимого элемента пространства. В этот момент у отображаемого объекта запрашиваются все параметры, необходимые для вычисления цвета пиксела и значение нормали. Для вычисления цвета используется модель Фонга, которая в общем случае описывается следующим способом:

где A — рассеяный цвет окружающей среды (ambient color), S — цвет излучения отображаемого объекта (self illumination), K — номер источника освещения, Ddiff — вес диффузионной составляющей компоненты цвета, C - цвет объекта, n — нормаль к поверхности отображаемого объекта, lk — направление на к-ый источник света, Dspec — вес отражающей составляющей компоненты цвета, LK — цвет к-того источника света, rk — вектор отражения от к-того источника света, v — направление на наблюдателя.

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

5.1 Метод быстрого отображения полупрозрачных объектов образованных поверхностями свободных форм

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

Реализован следующий метод моделирования неоднородности при визуализации атмосферных эффектов — это использование текстуры для вычисления функции цвета и плотности. В этом случае цвет на поверхности объекта берется из текстурной карты, а функция прозрачности вычисляется по этому цвету, например, пропорционально цвету, или обратнопропорционально.

Отличием алгоритма отслеживания лучей (ray casting) от трассировки лучей (ray tracing) является то, что в первом из них в целях увеличения скорости вычислений не отслеживаются вторичные лучи. При моделировании прохождения света через полупрозрачные среды с этой же целью пренебрегаем преломлением и затуханием вторичных лучей. В данной модели остается только отражение и затухание света на пути следования от объекта к глазу наблюдателя. 5.1.1 Алгоритм накопления цвета в пикселе

Формулу, по которой вычисляется цвет пиксела можно выразить следующим образом [28]:

Где — конечный цвет пиксела, а может быть r, g или b (т.е. красный, зеленый или синий, соответственно). — интенсивность в n-ом вокселе, вычисленная по модели освещения Фонга, - непрозрачность n-го воксела.

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

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

В общем случае, если заменить сумму интегралом, интенсивность вычисляется [36]:

D — расстояние по Z-координате, на котором происходит вычисление интенсивности.

x(s) — точка на отрезке вдоль луча наблюдения.

Color, opacity — цвет и значение непрозрачности в данной точке.

Эта формула более подходящая по сравнению с формулой (1), т.к. в ней учитывается протяженность отрезка по z-координате.

Однако тогда пришлось бы вычислять интеграл на каждом отрезке или приближать его каким либо выражением. Поэтому нам приходится использовать допущение, например, что на протяжении отрезка значение прозрачности постоянно. В этом случае (1) для N элементов можно заменить:

— непрозрачность в точке.

P — суммарная непрозрачность для N элементов.

Если рассматривать N не как количество элементарных отрезков на луче, а как его длину, то окончательно:

— длина отрезка.

Как уже отмечалось, вследствие искажения геометрических примитивов длина воксела становится зависимой от Z-координаты (См. п.3 Проективное преобразование). Эту зависимость можно выразить следующим образом:

т.е. провести дробно-линейное преобразование для координат начала и конца отрезка.

— элементы матрицы перспективного преобразования, — начало и конец отрезка в системе координат объекта.

Окончательно эту часть алгоритма можно выразить следующим образом:

AccumulatedColor — окончательный цвет в пикселе,

Color — цвет, вычисленный в точке, например, по модели освещения Фонга.

Transparency — величина, эквивалентная произведению из формулы (1), обозначающая общую прозрачность от начала сканирования луча до данной точки.

P — непрозрачность в точке, вычисленная по формуле (3.1), в которой длина отрезка берется из формулы (4).

Также следует обратить внимание на то, что в проверке не встречается условие — (последний уровень рекурсии), это как раз соответствует тому, что отрезки на луче сканирования могут быть различной длины.

6. ЗАКЛЮЧЕНИЕ

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

  • Эффективность метода растрирования с маскированием, сочетающего простоту вычисления с быстрым поиском и отбраковкой областей, не занятых объектами сцены.
  • Уменьшение количества поверхностей для описания криволинейных объектов. Задание объектов поверхностями свободных форм сокращает в 500 и более раз описание баз данных по сравнению с заданием их полигонами. На рисунке 1 показан результат моделирования объекта сцены с помощью свободных форм, на описание которого потребовалось 4 Kбайт информации, что в 500 раз меньше полигонального описания, которое составило бы 2 Mбайт информации.
  • Снижение нагрузки на геометрический процессор и уменьшение потока данных от него в видеопроцессор.
  • Существенное упрощение построения рельефа местности, обусловленное тем, что не требуется предварительная триангуляция поверхностей и клиппирование пирамидой видимости. В алгоритме отображения рельефа и смены уровней детальности используется тот же механизм, что и для обычной текстуры, для фильтрации изображения при динамике используется интерполяция высот по аналогии с текстурой цвета. Время вычислений при генерации рельефа местности практически не зависит от разрешения карты высот, а зависит только от разрешения экрана (квадратичная зависимость) и от разрешения по глубине Z (логарифмическая зависимость). Если реализовать в hardware конвейер на число разрядов координаты Z, логарифмическая зависимость устраняется.
  • Простое решение задачи динамической коррекции дисторсии за счет предложенного метода проективного преобразования.
  • Возможность обработки воксельных массивов, ограниченных поверхностями свободных форм и поверхностей, окруженных массивами вокселей.
  • Простота анимации, деформации и морфинга объектов.

Таким образом, можно сделать следующий вывод:

  1. Для систем визуализации высокореалистичных изображений необходимо перейти от сканирования двумерного пространства к трехмерному.
  2. Необходимо на основе конструктивной геометрии сплошных тел формировать объекты из примитивов свободных форм и/или на основе граничного представления при косвенном задании объектов, ограниченных участками поверхности, заданными полиномиальными функциями наряду с полигональным заданием.

Перечисленные особенности предлагаемого подхода создают предпосылки к созданию нового класса компьютерных систем визуализации широкого применения. Предварительные оценки показали, что для реализации систем желательна разработка, по крайней мере, трех заказных СБИС с интеграцией порядка 15-20 миллионов транзисторов. Данный chip-set, предположительно, может состоять из четырех микросхем (если иметь геометрический процессор, в данном подходе он не сильно актуален) или из трех микросхем в отсутствии последнего, в максимальной конфигурации. Минимальная конфигурация — это одна микросхема пиксельного процессора. Перечислим по порядку все микросхемы:

  • Геометрический процессор (Geometry Set-up Engine).
  • Канал обработки скалярных функций (Scalar_Pipeline).
  • Канал обработки аналитических функций (Implicit_Pipeline).
  • Пиксельный процессор (Pixel Processor).

На вход Geometry Set-up Engine поступают данные с шины Host_bus или AGP_bus, пропускная способность которых должна быть не менее 1.2 Gbyte/sec. Функции данной микросхемы — геометрические преобразования примитивов. С выхода данной микросхемы данные поступают по шине Par_bus, на вход канала обработки скалярных функций (Scalar_Pipeline), канала обработки аналитических функций (Implicit_Pipeline) и на вход Пиксельного Процессора (Pixel Processor), если примитивы — треугольники. С выхода микросхем канала обработки скалярных функций (Scalar_Pipeline) и канала обработки аналитических функций (Implicit_Pipeline) на вход пиксельного процессора (Pixel Processor) поступают данные (пикселы), скорость передачи которых должна быть не менее 3.2 Gbyte/sec.

Наряду с данными чипами плата акселератора должна иметь микросхемы памяти для хранения данных карт высот (Hight_data Memory) и памяти кадра (Frame Buffer), координаты Z (Z-buffer) и текстурной памяти (Texture_Memory). Возможен вариант размещения памяти кадра и координаты Z в самом чипе пиксельного процессора (Pixel Processor). С выхода пиксельного процессора (Pixel Processor) видеосигнал в форматах VGA, TV или DVI поступает на отображающее устройство (Display Device). Система будет характеризоваться высоким параллелизмом, однородностью и векторизованностью вычислений. Предлагаемый алгоритм растрирования в сочетании с возможностью визуализации произвольных поверхностей свободных форм и неоднородных объемных областей создают широкий спектр возможных областей применения от разного вида тренажеров до компьютерных игр.

Благодарности

Мне хотелось бы поблагодарить моих бывших студентов Овечкина Валерия, Щербакова Руслана, Есина Александра и Жигача Александра, а также моих коллег по работе Пичуеву Юлию и Чижика Сергея за предоставленные материалы, которые помогли в написании данной статьи.

СПИСОК ЛИТЕРАТУРЫ

  • [1]. W. Straber, A. Schilling, G. Knittel, "High Performance Graphics Architectures", // Graphicon'95 Proceedings, S. Klimenko et al. (Eds). St-Petersburg 1995
  • [2]. Tile Based Rendering, White Paper (down load 108 Kb pdf), discusses the techniques used when KYRO performs transform and lighting, hidden surface removal and texturing and shading using a tile based approach.
  • [3]. Великохатный Р.И., С.И. Вяткин, О.Ю. Гимаутдинов и др. "Ариус" — семейство 3D графических систем реального времени для РС платформ // Труды 7-ой Междунар. конф."Графикон-97". Москва, 1997.
  • [4]. С.И. Вяткин., Б.С. Долговесов, Н.Р. Каипов, С.Е. Чижик. "Архитектурные особенности системы визуализации реального времени на основе DSP" // Автометрия. — 1999.-N1.
  • [5]. Lizabeth K. Coe "Project to improve performance of the NASA/AMES ACAB Visual Pipeline". Presented at the IMAGE V Conference, Phoenix, Arizona, 19-22 June 1990.
  • [6]. Ковалев А.М. "О центральных проекциях трехмерного пространства"// Автометрия 1996. N6. С. 4.
  • [7]. Pasko A., Adzhiev V., Sourin, A., et al. Function representation in geometric modeling: concepts, implementation and applications //The Visual Computer, 11,6, 1995, P 429.
  • [8]. V. Savchenko, A. Pasko, T. Kunii, et al. "Function representation of solids reconstructed from scattered surface points and contours", Computer Graphics Forum, 14,4, 1995, P 181.
  • [9]. A.A. Pasko, V.V. Savchenko. "Blending operations for the functionally based constructive geometry", Set-theoretic Solid Modelling: Techniques and Applications, CSG 94 Conference Proceedings, Information Geometers, Winchester, UK, 1994, P 151.
  • [10]. A. Sourin, A. Pasko, V. Savchenko. "Using real functions with application to hair modelling", Computer & Graphics, 20, 1, 1996, P 11.
  • [11]. V.V. Savchenko, A.A. Pasko, T.L. Kunii, et al. "Feature based sculpting of functionally defined 3D geometric objects", Multimedia Modeling. Towards Information Superhighway, T.S. Chua, H.K. Pung and T.L. Kunii (Eds.), World Scientific, Singapore, 1995, P341.
  • [12]. Savchenko V.V., Pasko A.A. Vyatkin S.I. et al. New approach in geometric modeling: distributed and hardware implementation perspectives.// International Conference on Computers and Devices for Communication CODEC-98. Calcutta, India, 1998. P. 285.
  • [13]. The Dawn of Volume Graphics, (dawn_vg.pdf, 1.5M), Presented in Computer Graphics World (CGW) February 1999 by Jenny Donelan
  • [14]. VolumePro™ Takes New Approach to 3D, (micro.pdf, 1M), Presented in MICROPROCESSOR REPORT November 1998 byPeter N. Glaskowsky
  • [15]. Mitsubishi VolumePro: Volume Visualization Hardware for the PCs, (rtg_volumepro.pdf, 1.1M), Presented in Real Time Graphics October/November 1998 by Roy Latham
  • [16]. Visualizing Volumes: Techniques for Rendering Volumetric Data are Finally Breaking Through the Surface, (cgw.pdf, 322k), Presented in Computer Graphics World (CGW) July 1997 by D.P. Mahoney
  • [17]. Brochure — Real-time Volume Rendering: The View of the Future, (brochure.pdf, 1.1M)
  • [18]. Venturing out Mitsubishi Tests the Entrepreneurial Water, Presented in Technology Review November/December 1999
  • [19]. VolumePro 1000 Expands 3D Vision, Printed in Microprocessor Report October 25, 1999, (micropross_102599.pdf, 151k)
  • [20]. Volume-rendering PCI Board Casts Rays in Real-time, Presented in EE Times July 5, 1999, (eetimes_070599.pdf, 422k)
  • [21]. Mitsubishi Soups up Graphics Board to Bring 3-D Volume Rendering to PCs, (di_scan.pdf, 90k), Presented in Diagnostic Imaging Scan June 9, 1999
  • [22]. Workstation 3-D Graphics Get a Reality Boost, (eetime.pdf, 594k), Presented in EETIME March 1999 by Anthony Cataldo
  • [23]. H. Pfister, VolumePro — At the Frontier of Advanced Volume Graphics, Nikkei Science, October 1999, (nikkei99.pdf, 135k)
  • [24]. H. Pfister, Keynote Address at the 5th Japanese Visualization Conference, Real Time Volume Visualization with VolumePro — Tokyo, Japan, 1999, (jvis99.pdf, 236k)
  • [25]. H. Pfister, J. Hardenbergh, J. Knittel, H. Lauer and L. Seiler, The VolumePro Real-Time Ray-Casting System Proceddings of Siggraph '99, p. 251-260, Los Angeles, CA, August 1999, (sig99.pdf, 808K)
  • [26]. H. Pfister, Architectures for Real Time Volume Rendering, Journal of Future Generation Computer Systems (FGCS), p. 1-9, Elsevier Science, Vol. 15, No. 1, February 1999, (fgcs99.pdf, 1.4MB)
  • [27]. Data Sheet — VolumePro 500-2X, (vp2x_ds.pdf, 479k)
  • [28]. Gunter Knittel, Voxel Engine for Real-time Visualization and Examination, Eurographics'93.
  • [29]. "Дифференциальная геометрия " Э. Позняк Е. Шишкин. М из-во МГУ 1990.
  • [30]. Sergei I. Vyatkin, Boris S. Dolgovesov, Valerie V. Ovechkin, et al. "Photorealistic imaging of digital terrains, freeforms and thematic textures in realtime visualization system Voxel-Volumes", GraphiCon '97, Moscow.
  • [31]. S.I. Vyatkin, B.S Dolgovesov, A.V. Yesin, et al. Voxel Volumes volume-oriented visualization system, International Conference on Shape Modeling and Applications (March 1-4, 1999, Aizu-Wakamatsu, Japan) IEEE Computer Society, Los Alamitos, California, 1999, P. 234.
  • [32]. S.I. Vyatkin, B.S. Dolgovesov, S.E. Chizhick, "Synthesis of virtual environment with object-space recursive subdivision" — Graphicon'98 Proceedings, S. Klimenko et al. (Eds). 1998.
  • [33]. Ефимов Н. В. Высшая Геометрия. М.: Наука, 1978, C. 324-338.
  • [34]. Вяткин С.И., Долговесов Б.С., Мазурок Б.С. и др. Эффективный метод растрирования изображений для компьютерных систем визуализации реального времени // Автометрия. — N 5. 1993.
  • [35]. Асмус А.Э., Богомяков А.И., Вяткин С.И. и др. Видеопроцессор компьютерной системы визуализации "Альбатрос" // Автометрия. — N 6. 1994.
  • [36]. Nelson Max, Roger Craw, Barry Becker, "Application of Texture Mapping to Volume and Flow Visualization", p. 108, Proc. GRAPHICON'95, Moscow.




24 августа 2000 Г.

Синтез виртуальной среды с применением аналитических и скалярных функций возмущения и трехмерных массивов вокселей

Синтез виртуальной среды

с применением аналитических и скалярных функций возмущения и трехмерных массивов вокселей

Резюме

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

1. ВВЕДЕНИЕ

Компьютерная графика реального времени, ориентированная на визуализацию трехмерных сцен, достигла на сегодняшний день существенных успехов. Она находит широкое применение от сложных систем визуализации для тренажерных комплексов (авиационных, космических, морских, автомобильных и т.п.) до графических акселераторов, используемых в компьютерных играх. В основе этих систем лежит полигональное задание объектов трехмерных сцен с последующим преобразованием и сканированием в плоскости изображений. И хотя достигнут достаточно высокий реализм отображаемых сцен в реальном времени, существует ряд задач, например, отображение больших районов местности, где требуется хранить и отображать сцены, содержащие существенно большее число полигонов, чем реализовано в современных системах. Так, задача отображения горных районов местности требует для исходного описания сотни тысяч полигонов. С другой стороны, если для точного моделирования форм корпусов автомобилей, самолетов, подводных лодок и т.д. требуются тысячи сплайн-поверхностей (криволинейных участков, заданных полиномиальными функциями), то можно вычислить, сколько потребуется плоских многоугольников (полигонов) для того, чтобы с большой точностью аппроксимировать кузов того же автомобиля, в этом случае счет уже пойдет на десятки, а то и сотни тысяч многоугольников. Ни одна из существующих архитектур не позволяет линейно масштабировать производительность систем [1]. Когда вычислительная нагрузка достигает предела производительности одного графического конвейера, в большинстве случаев из-за ограниченной пропускной способности памяти, тогда для получения желаемого ускорения необходимо ставить параллельно несколько конвейеров и подбирать подходящий метод распределения данных. Частичным решением данной проблемы является так называемая тайловая технология (Tile Technology) [2] или, реализованная в системе визуализации "Ариус" виртуальная методика визуализации [3], [4], которые, по сути дела, мало чем отличаются друг от друга. Однако ограничения, создаваемые промежуточной виртуальной памятью — буфером тайлов (Tile Buffer) и дополнительная транспортная задержка вычислительного тракта не позволяют использовать данную технологию для тех приложений, где эти ограничения существенны (научная визуализация и авиасимуляторы военного назначения). С другой стороны, доводы в пользу того, что треугольник является самой простейшей фигурой в природе, с помощью которой можно отобразить все, не совсем верны, если смотреть на области применения графических ситем несколько шире. Так, в тренажерных системах военного назначения изображение проецируется на купол (Dome) [5], и искажения, вносимые как самим криволинейным экраном, так и перемещениями наблюдателя и проектора, необходимо корректировать (DDC — Dynamic Distortion Correction). Следует отметить, что в этом случае, когда угол обзора (FOV — field of view) больше, чем 180 градусов, Z-буфер не может решить задачу определения видимости многоугольников по глубине z, которые пересекают плоскость z=0. R-буфер решает эту проблему, вычисляя истинный диапозон (range) точек двух объектов, одна из которых видима наблюдателю. Недалек тот день, когда изображение будет проецироваться непосредственно прямо на сетчатку глаза человека с помощью персонального проектора, и это устройство может заменить дисплей компьютера. С эгоцентрической точки зрения наблюдателя окружающее его пространство является сферическим [6]. В этом случае отображение также будет нелинейным (NLIM — non-linear image mapping), как и в первом примере. Треугольник уже не будет той простой фигурой, к которой все привыкли, а будет менять свою форму (искривляться) и не будет плоским. Можно обойти эту проблему и подделять треугольник на более мелкие и плоские, но, с одной стороны, для сильных искажений трудно или почти невозможно сделать триангуляцию, с другой, — где предел решений методом грубой силы (brute force)? То есть, на наш взгляд, технологии, основанные на полигональном задании объектов, достигли своего насыщения, и идти дальше в этом направлении некуда. Приведем перечень основных проблем полигональной технологии:

  1. На границе силуэта проявляется многоугольная структура объекта, т. е. граница имеет форму ломаной. Следовательно, полностью скрыть "граненость" тела не удается, а в силу психологических свойств зрения, такой эффект оказывает неблагоприятное воздействие на процесс восприятия синтезированной сцены. Обычно этот дефект частично устраняется более точной аппроксимацией поверхности, что требует увеличения количества многоугольников.
  2. Большое количество "мелкого мусора" — вырожденных граней, которые удалить на раннем этапе довольно трудно, необходима нетривиальная оценка малого углового размера грани. С другой стороны, при приближении наблюдателя к объекту при смене уровня детальности, необходимо добавлять новые грани, чтобы силуэт объекта не выглядел граненым.
  3. Проблемы высокой глубинной сложности при большом количестве полигонов, особенно для горного ландшафта местности.
  4. Сложность визуализации аморфных объектов (объемные облака, дым и т.д.).
  5. Проблемы приоритетов, определения и смены уровней детальности, клиппирования многоугольников пирамидой видимости и т.д.
  6. Поскольку при увеличении количества многоугольников в сцене, последние имеют устойчивую тенденцию "мельчать", то распараллеливание вычислений на уровне конкатенации практически невозможно, поскольку размер их становится соизмерим с размером пиксела, а распараллеливание со слиянием имеет большие проблемы. В результате необходимо иметь геометрические процессоры чуть ли не на каждый пиксел. Сложное распараллеливание и синхронизация процессоров, несмотря на простоту обработки многоугольников (без учета сферической перспективы).
  7. При сканировании двумерного пространства нельзя получить полноценного трехмерного изображения. Полигональная трехмерная графика со сканированием полигонов в плоскости изображения не является трехмерной в полном смысле этого слова. Информация, которая предоставляется пользователю в такой технологии — неполная. Главное — это отсутствие информации о глубине объекта, имеется ввиду не отсутствие Z-координаты точки поверхности, а отсутствие информации о луче, проходящем сквозь объект. Из-за недостатка такого рода информации разработчики традиционных полигональных технологий попадают в "ловушки", ими самими же расставленные. И решать возникающие проблемы им приходится многочисленными техническими приемами.
  8. Сложность анимации поверхностей и морфинга объектов. Морфинг негомеоморфных объектов (например, тора и сферы) и морфинг с ограничениями невозможен без разрыва поверхности и последующего "склеивания" последней. Что доступно технологиям с функциональным описанием примитивов. Так, например, при морфинге blob-моделей, последние могут распадаться на многочисленные мелкие части, а потом собираться вновь, формируя объект другой формы.

Для системы, отображающей многоугольники, повышение качества изображения эквивалентно повышению производительности системы, измеряемой в количестве обрабатываемых многоугольников за время одного кадра, потому что реалистичность изображения непосредственно зависит от сложности сцены и точности приближения. Но, видимо, в силу указанных недостатков традиционного подхода, в настоящее время наблюдается не заметный внешне кризис: невозможно существенно повысить производительность и качество изображения, не прибегая к методам грубой силы, используя лишь выработанные идеи. Поэтому качественного скачка следует ожидать в другом подходе к проблеме, а именно — в использовании новых методов, в комбинации с лучшими свойствами известных методик. Хотя, казалось, факты говорят об обратном, если принять во внимание выставочный работающий образец системы GScube c 16 процессорами EE (Emotional Engine) от компании Sony Computer Entertainment, Inc. (SCEI) и Host-процессором Origin 3000 от SGI (Silicon Graphics) c абсолютно фантастическими характеристиками, как полигональной, так и пиксельной производительности — 1.2 миллиарда треугольников в секунду. Эта система выставлялась недавно на SIGGRAPH 2000.

В ряде работ [7-12] показаны функциональные способы описания визуализируемых объектов, позволяющие существенно, в сравнении с полигональным заданием, сократить объем баз данных для определенного класса объектов. Однако отображение в реальном времени объектов, заданных таким способом, требует большого количества вычислений.

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

2. СПОСОБЫ ЗАДАНИЯ СВОБОДНЫХ ФОРМ ОБЪЕКТОВ

Характерной особенностью предлагаемых способов задания свободных форм, во-первых, является то, что основными примитивами выбраны поверхности второго порядка — квадрики. Примитив-квадрик является основой для построения всех остальных объектов. Квадрик определяется с помощью вещественной непрерывной описывающей функции трех переменных (x1, x2, x3) в виде F(X)0. Рассматриваются квадрики как замкнутые подмножества Евклидова пространства En, определяемые описывающей функцией F(X)0, где F — непрерывная вещественная функция и X= (x1,x2,x3) — задаваемая координатными переменными точка в En. Здесь F(X) > 0 задает точки внутри квадрика, F(X) = 0 — точки на границе и F(X) < 0 — точки, лежащие снаружи и не принадлежащие квадрику. На базе квадриков строится первый класс свободных форм с использованием вещественных функций возмущения. Класс свободных форм такого типа выгодно применять при синтезе искусственных (рукотворных) объектов. Во-вторых, предлагается второй класс свободных форм с использованием скалярных функций возмущения относительно базовой плоскости или квадрика, например, для генерации рельефа местности или скульптурных моделей. В-третьих, предлагается использовать трехмерные массивы вокселей там, где не выгодно применять вышеперечисленные классы примитивов, это объекты особой сложности. И в-четвертых, применять треугольники там, где это выгодно (плоские грани стен домов, кристаллов и т.д.).

Итак, входные данные, в основном, представлены объектами, имеющими неполигональное представление: аналитическое или в виде скалярных массивов. По сравнению с представлением отображаемых объектов в большинстве современных систем визуализации в виде набора многоугольников, такое представление данных значительно сокращает описание сцены в базе данных. С другой стороны, система позволяет создавать качественные изображения объектов, заданных аналитически. В то время, как растрирование многоугольников происходит в плоскости экрана, в нашем случае происходит сканирование при растрировании в объёме. Это важное отличие позволяет отображать объекты с внутренней структурой при учёте плотности или полупрозрачности. Отметим, что совсем недавно RTViz (Real Time Visualization) - Mitsubishi Electric и 3Dlabs анонсировали новую систему, в которой наряду с воксельным массивом данных будут и треугольники. К текущему моменту существует пока единственная система реального времени, позволяющая отображать объёмные данные, представленные одним трёхмерным массивом значений [13-27]. В нашей системе, как уже было сказано выше, можно отображать скалярные массивы, аналитически заданные объекты и их произвольную комбинацию, что значительно расширяет область применения системы. Для получения конечного изображения сцены в системе используется специальный алгоритм растрирования, осуществляющий сканирование при многоуровневом подделении пространства с маскированием, что приводит к значительному сокращению вычислений по сравнению с тем, если бы напрямую использовался алгоритм объёмного сканирования [28].

2.1 Функции возмущения в неявном виде

Предлагается описывать сложные геометрические объекты, задавая функцию отклонения (второго порядка) от базового квадрика в виде:

На базе квадриков строятся свободные формы. Свободная форма есть композиция базового квадрика и возмущения ), где функция возмущения R(x,y,z) находится следующим образом:

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


Рис. 1

Сцена на рисунке 1, описанная 6 свободными формами с аналитическими функциями возмущения (всего 42 функции), требует в 500 раз меньше информации по сравнению с заданием ее полигонами.

Таким образом, задача конструирования объекта сводится к задаче деформации поверхности квадрика нужным образом, а не к аппроксимации его примитивами (полигонами или патчами, представленными B-сплайновыми поверхностями). Кроме того, при решении описывающей функции в виде неравенства F(X)0, можно визуализировать не только поверхность, но и внутреннюю структуру объекта (Рис. 2).


Рис. 2

На рисунке 2 показана полупрозрачная поверхность, описанная четырьмя функциями второго порядка, заполненная трехмерной текстурой.


Рис. 3

На рисунке 3 показан результат моделирования аморфного объекта (трехмерного облака с непрозрачным объектом внутри облака) с применением данного вида свободных форм.

Итак, основными примитивами в системе являются функции второго порядка — квадрики. Трёхмерная функция второго порядка определяется десятью коэффициентами. Такое же количество данных необходимо для описания пространственного расположения одной треугольной грани. Более компактное представление модели позволяет резко снизить расходы памяти при хранении базы данных, а следовательно, и разгрузить транспортные магистрали между вычислительными компонентами системы и блоками памяти. С другой стороны, появляется возможность конструировать гладкие объекты без дефектов, присущих полигональным моделям.

Но для построения более сложной сцены простых поверхностей второго порядка будет уже не достаточно. Поэтому на базе квадриков можно строить более сложные гладкие поверхности. Это достигается за счёт деформации базового квадрика. В общем случае при таком возмущении объём квадрика может искажаться как в сторону уменьшения, так и в сторону увеличения своего значения. В итоге, квадрик с возмущением представляет из себя поверхность второго порядка с локальными значениями высокого порядка (в основном, четвёртого и выше).

2.1.1 Теоретико-множественные операции

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

2.2 Функции возмущения в скалярном виде

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

Поскольку во время растеризации необходимо оценивать максимум функции на трехмерном или одномерном интервале, то для эффективности вычислений предварительно составляются карты уровней детальности. Исходные данные составляют уровень n, если размерность сетки равна 2n x 2n. Данные для уровня n-1 получаются выбором максимума из четырех смежных значений уровня n, остальные три далее не учитываются, т.е. получаем размерность сетки 2n-1 x 2n-1. Уровень 0 состоит из единственного значения — максимума по всей карте высот. Таким образом, можно рассматривать карту высот как текстуру формы.

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


Рис. 4

На рисунке 4 показан результат моделирования рельефа местности без предварительной триангуляции с билинейной интерполяцией значений высот с разрешением карты высот 200x200.


Рис. 5

На рисунке 5 показан результат моделирования объекта со скалярной функцией возмущения относительно нескольких базовых плоскостей с бикубической интерполяцией значений высот.

2.2.1 Геометрическая модель объектов

Определим основные понятия и термины, которые будут использоваться в дальнейшем. Более подробно общая теория поверхностей описана в [29].

Открытое односвязное множество точек на плоскости будем называть плоской областью. Пусть D — плоская область, и ее замыкание. Введем на плоскости координатную систему (u,v). Пусть x, y, z — прямоугольные декартовы координаты точек в трехмерном Евклидовом пространстве Е3. Зададим на множестве три непрерывные функции:

И предположим что функции обладают следующими свойствами:

Свойство А.

Если (u1,v1) и (u2,v2) — различные точки множества , то точки М1 (x1,y1,z1) и М2 (x2,y2,z2) пространства Е3, координаты которых вычислены по формулам

,
тоже различны.

Определение: множество S точек M(x, y ,z), координаты x , y, z которых определяются соотношениями:


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

Далее поверхностью свободной формы F будем называть простую поверхность, являющуюся графиком функции, определенной в 3-мерном пространстве z=f(x, y).

Задание поверхности свободной формы на основе скалярного поля представляет собой совокупность некой базовой поверхности P, находящейся в той же системе координат, что и F, и связанной с базовой поверхностью Р карты высот.

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

Карта высот представляет собой двумерный прямоугольник, который далее будет именоваться областью возмущения Dp, базовой поверхности P, внутри которого задана функция возмущения h(u,v), которая, в свою очередь, определяет само возмущение. Область определения функции h(u, v) D h(u, v) = {U, V}, где U и V — размеры прямоугольника.

То, что карта высот связана с базовой поверхностью, означает, что существует преобразование G из системы координат, в которой находятся F и P, в систему координат карты высот; как правило, таким преобразованием является параллельная проекция.

Значение функции h(G(dF)) характеризует отклонение точки dF, лежащей на поверхности F, от точки dP, являющейся проекцией этой точки на поверхность P. Другими словами, значение функции h(G(dF)) равно модулю вектора

Следовательно, область поверхности свободной формы можно определить как множество точек в определяемых векторным уравнением.

В случае, если v находится за пределами области возмущения, вектор , а вектором F является вектор на базовой поверхности.

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

В таком случае можно сказать, что в области возмущения Dp будет задано скалярное поле.

Функция h имеет следующий вид:

Итак, задание поверхности свободной формы F на основе скалярного поля есть:

  • Базовая поверхность.
  • Преобразование из С.К. (системы координат) базовой поверхности в С.К. карты высот.
  • Функция возмущения.
  • Таблица чисел, характеризующих отклонения поверхности F от базовой в контрольных точках.

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

2.2.2 Поверхность ландшафта и поверхности свободных форм

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

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

Предложенный метод создания поверхностей обладает существенным ограничением на класс моделируемых объектов. Требование от F — того, чтобы она была поверхностью нулевого уровня некой функции, означает то, что каждой точке на базовой плоскости можно поставить в соответствие одну и только одну точку на поверхности F. Таким образом, смоделировать одной картой высот, например, поверхность вращения, нельзя, так как в этом случае одной точке на плоскости будут соответствовать две точки на поверхности. Для моделирования поверхностей, не являющихся поверхностями нулевого уровня функции, необходимо разбиение плоскостями исходной поверхности F на составляющие ее подповерхности Построение вышеописанным способом карт высот по отдельности для каждой из этих разбивающих плоскостей и моделирование с помощью операций CSG исходной поверхности из набора моделей подповерхностей. При этом расположение каждой из разбивающих плоскостей происходит по двум критериям.

Первый заключается в возможности построения карты высот применительно к данной разбивающей плоскости, части объекта, расположенной в той части полупространства, которая находится в направлении вектора нормали разбивающей плоскости.

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

2.3 Текстура и трехмерные массивы вокселей

Дадим определение текстуры в "объёмном" смысле. Кроме того, однозначно определим основные понятия:

Текстура — это детализация поверхности (Рис. 6, 7) или объёма отображаемого объекта (Рис. 2). Здесь существенно то, что не оговаривается конкретное строение текстуры, то есть, текстура в общем случае не обязательно представляет собой двумерный массив текселей (texels).

     
Рис. 6                                                           Рис. 7

Отображаемый объект — это вся трёхмерная сцена или её элемент, несущий информацию о своей форме [30]. Например, сцена, представленная двумя эллипсоидами, с одной стороны, может рассматриваться как изображение двух независимых объектов, с другой стороны, эти эллипсоиды можно рассматривать как объект-объединение двух эллипсоидов, и эти две точки зрения не будут противоречить друг другу, а будут являться альтернативными. Тогда, в терминах объектов, текстура — это элемент сцены, изменяющий свойства другого объекта и сам не отображающийся при растрировании. Например, раскрашенный шар будет представлен двумя объектами: формой в виде эллипсоида и объектом — текстурой, содержащим ссылку на массив цветов, каким-то определённым образом накладываемым на эллипсоид, используя линейную, цилиндрическую, сферическую или какую-нибудь другую параметризацию.

Свойство отображаемого объекта — это любой параметр, назначенный этому объекту, который используется при вычислении результирующего цвета пиксела на экране. Например, это могут быть цвет объекта, весовые коэффициенты диффузной и отражающей составляющих модели освещения Фонга, полупрозрачность и т.д. Текстура, таким образом, может влиять на любой параметр отображаемого объекта.

Кроме объектов, заданных аналитически, — квадриков — существует возможность отображать объекты, представляющие собой скалярные массивы данных [31]. Это значительно расширяет возможности и области применения системы в следующих случаях:

  • Визуализация трёхмерных массивов, полученных в результате сканирования реальных объектов в реальном пространстве (томография и т.д.).
  • Визуализация научных данных, полученных в результате расчётов или измерений.
  • Визуализация метеорологических данных (распределение температуры, влажности, и т.д.).
  • Визуализация двумерной сетки высот без предварительной триангуляции.

Визуализация скалярных массивов хотя и требует значительных затрат памяти (порядка N2 или N3 для двумерных и трехмерных массивов), но, по сравнению с эквивалентным их представлением в виде множества треугольников, массивы всё же более компактны и удобны в использовании и манипулировании.

Пусть имеется объект, представляющий собой какой-то скалярный массив в каком-то формате, известном только самому объекту. Определим этот объект как объект-массив. В итоге, в системе основные примитивы будут представлены двумя классами объектов. Один класс — это аналитически описанные примитивы (квадрики), другой — массивы скалярных данных. И тот, и другой классы имеют более компактное описание по сравнению с треугольниками.

Объект-массив может быть реализован несколькими способами. Он может заключать в себе одномерный, двумерный или трёхмерный массив (Рис. 8), а также может являться сеткой высот.


Рис. 8

По данному в этой работе определению, текстура — это объект (не отображаемый), изменяющий свойства другого объекта. Особенностью текстуры является то, что текстурой может быть любой объект. Для этого было предложено незначительное изменение схемы обработки данных и построения дерева сцены, не затрагивая самого алгоритма растрирования [32]. На самом последнем уровне рекурсии подделения, находится ближайший видимый воксел и запрашивается у отображаемого объекта (сцены) параметры этого элемента пространства для их использования в вычислении цвета пиксела. Добавлением в структуре данных при учёте текстуры является то, что каждый объект может содержать ссылку на другой объект, являющийся текстурой для первого. Если этой ссылки нет, то объект на запрос о значении своих свойств выдаёт значение, определённое для этого объекта по умолчанию. Иначе, параметры объекта в текущем вокселе подвергаются изменениям со стороны объекта-текстуры, на которую ссылается наш объект.

Важным при наложении текстуры на объект является преобразование координат из текстурного пространства (U, V, W) в пространство объекта (X, Y, Z). В нашем случае параметризация нужна только для объектов-массивов. Чтобы иметь возможность накладывать текстуру на поверхность и объём отображаемого объекта, объекты-массивы дополнены свойством преобразования координат из модельного пространства M в текстурное пространство T. При запросе у объекта-массива значения какого-то свойства, он преобразует координаты текущего воксела из M в T: (X,Y,Z)(U,V,W) и использует эти координаты как адрес в массиве. Если, например, массив двумерный, то одна координата не используется. Реализованы три вида преобразования объектных координат в текстурные:

3. ПРОЕКТИВНОЕ ПРЕОБРАЗОВАНИЕ

Применение проективного преобразования обобщает алгоритм растеризации на пирамидальные объемы, что позволяет синтезировать изображения с перспективой. В трехмерном пространстве точке с декартовыми координатами (x, y, z) соответствует бесконечное множество однородных координат (x', y', z', a) таких, что x=x'/a, y=y'/a, z=z'/a, т.е. однородные координаты определяются с точностью до общего ненулевого множителя. Представляет интерес матрица преобразования, действующая на однородные координаты следующим образом:

где © — матрица преобразования, (M) — однородные координаты точки пространства M, (P) - соответствующие по отображению координаты в P. В рамках проективной геометрии доказывается теорема о том, что проективное отображение пространства M на пространство P однозначно определяется заданием пяти пар соответствующих по отображению точек, при условии, что из пяти точек, задаваемых в пространстве M, никакие четыре не лежат в одной плоскости [33]. Выбираем пять пар таких опорных точек (Mi)и (Pi) (верхний индекс соответствует номеру пары) и составляем систему уравнений:

где — неизвестные множители; .

Решая эти уравнения, находим коэффициенты матрицы проективного преобразования ©, которая в дальнейшем используется для трансформации геометрических примитивов. Данное проективное преобразование позволяет синтезировать виртуальную сцену в криволинейном техмерном пространстве со сферической перспективой, если данное преобразование применить к nxm подпирамид пирамиды видимости (FOV — field of view), при этом для каждой подпирамиды будет своя матрица проективного преобразования.

4. СПОСОБ РАСТЕРИЗАЦИИ

В данной работе использовался алгоритм многоуровневого отслеживания лучей [32], осуществляющий эффективный поиск элементов объема — вокселей, участвующих в формировании изображения. Этот алгоритм является развитием алгоритма растрирования, реализованного в системе визуализации "Альбатрос" [34], [35]. На первом шаге рекурсии исходная пирамида видимости разбивается на четыре меньшие подпирамиды в экранной плоскости. На этапе деления пространства по четверичному дереву, где совершается сжатие в два раза и перенос на ±1 по двум координатам, рекурсивное преобразование коэффициентов квадрика выглядит так:

где коэффициенты без штриха берутся с предыдущего шага рекурсии; переменные i, j = ±1 определяются в зависимости от направления погружения в рекурсию (i — по оси x, j — по оси y). Полученные коэффициенты используются в тесте на пересечение. Для каждой новой подпирамиды выполняется тест на пересечение с объектом. Если в уравнении квадрика Q(x, y, z) = 0 значения переменных x, y, z меняются в пределах отрезка [-1, 1], то

Теперь заметим, что если , то, возможно, существует точка такая, что Если же , то заведомо таких точек не существует, а знак коэффициента A44 различает расположение подпирамиды внутри или снаружи по отношению к поверхности квадрика Q=0 (если , тогда подпирамида внутри квадрика). На основании результатов этого теста осуществляется деление подпирамид, которые лежат внутри квадрика целиком или, возможно, частично, а заведомо внешние подпирамиды исключаются из обработки. Тест на пересечение подпирамид со свободными формами несколько отличается. Для базового квадрика тест на пересечение выглядит следующим образом:

Если , тогда подпирамида находится снаружи;

Здесь R — есть максимум функции возмущения на текущем интервале, а буквы Aij — коэффициенты квадратичной функции. Для функции возмущения проводится тест:

Если , тогда подпирамида находится снаружи области определения возмущения;

где Aij — коэффициенты квадратичной функции возмущения, и дополнительно вычисляется значение R, которое служит добавкой к базовой функции.

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

В случае скалярных функций возмущения значением возмущающей функции R является число, вычисленное по проекции данного воксела на карту высот. Процесс растеризации такой поверхности выглядит следующим образом. Четверичное подделение поверхности происходит таким же образом, как оно описано в [30][31][32]. Выделение формы поверхности происходит на этапе подделения воксела по z-координате. На последнем уровне четверичного дерева находим координаты одномерного бруска — воксела V0, который задается парой векторов P0=(x0,y0,z0) и P1 =(x1,y1,z1), V0 = {P0,P1}. Далее, координаты воксела V0 с помощью преобразования G преобразовываются в систему координат карты высот:

Для этого вводится матрица Т-преобразования в систему координат карты высот, которая, будучи умноженной на матрицу геометрических преобразований М, дает результирующую матрицу преобразования G. G=T*М;

Тогда преобразованные координаты воксела (u, v, h, a) в системе координат карты высот вычисляются из (x,y,z) координат воксела в модельном пространстве умножением вектора точки в модельном пространстве на матрицу G.

Далее осуществляется подделение воксела по Z-координате, или бинарное подделение воксела. На этом этапе для текущего уровня рекурсии вектор конца воксела, являющегося ближайшим по отношению к наблюдателю, полагается равным вектору ближайшего конца воксела предыдущего уровня подделения. Вектор дальнего конца воксела вычисляется как полусумма векторов ближнего и дальнего концов воксела предыдущего уровня подделения.

Pni = Pni-1, Pfi = (Pni-1 + Pfi-1)/2.

Vi = {Pni, Pfi}, где Vi -воксел i-го уровня рекурсии, а Pni и Pfi — координаты ближнего по отношению к наблюдателю и дальнего концов воксела на i-м уровне рекурсии. Таким образом, геометрические преобразования (имеется ввиду операция умножения на матрицу геометрических преобразований, являющаяся очень трудоемкой) в случае задания поверхности как карты высот, для воксела делаются всего лишь один раз, на первом уровне бинарного подделения, а далее идет просто процесс деления воксела на две части и выбор ближайшей пересеченной.

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

Уровни детальности

Поскольку на этапе растеризации возмущение должно оценивать максимум своей функции на одномерном или трехмерном интервале, то для уменьшения количества вычислений вводятся уровни детальности. На каждом этапе бинарного подделения воксела по его размерам вычисляется уровень детальности — 'level'. Если 'level' не последний уровень детальности — то полученная высота 'h' сравнивается со значением высоты данного уровня 'Hmax' , и если 'h>Hmax', то подделение воксела прекращается.

  1. Определяем габариты прямоугольника, являющегося проекцией воксела на карту высот, как максимум расстояния от точки {u0,v0} до точки {u1,v1}-Lp.
  2. 2. Из неравенства определяем уровень детальности 'level'

При визуализации поверхностей проверяется тест на принадлежность им лишь пересеченных вокселей (единичных элементов объема), внешние и внутренние вокселы отбраковываются. Для того, чтобы повысить реалистичность изображения и расширить класс отображаемых объектов (полупрозрачные структуры с внутренним распределением плотности, 3D текстуры), необходимо отображать внутреннюю полупрозрачную структуру объекта. Для этого в формировании изображения должны участвовать не только вокселы, которые лежат на поверхности, а так же и те, которые находятся внутри объекта. Следовательно, при делении объема внутренние части объекта не отбрасываются, для них проводится дальнейшая рекурсия алгоритма. При сканировании сцены по Z-координате, что соответствует сканированию объема в глубину, сканирование не прерывается при встрече с поверхностью, а работает далее, пока полностью не просканируется объем или не накопится определенное значение прозрачности, большее некоторого порогового значения. Для уменьшения времени вычислений алгоритм адаптирован к быстрому прохождению однородных областей объектов, для которых совсем необязательно полностью сканировать объем, доходя до последнего уровня рекурсии, а следует "проскакивать" пустые или однородные участки по Z-координате, и сразу же вычислить цвет и общую прозрачность (Рис. 3). Так как прохождение лучом пустого пространства не вносит вклад в конечное изображение, то скачок через пустое пространство способен обеспечить существенное ускорение обработки и не влияет на качество изображения.

5. ВЫЧИСЛЕНИЕ ЦВЕТА

Цвет пиксела вычисляется на самом последнем уровне рекурсии подделения трехмерного пространства, когда определяются координаты очередного видимого элемента пространства. В этот момент у отображаемого объекта запрашиваются все параметры, необходимые для вычисления цвета пиксела и значение нормали. Для вычисления цвета используется модель Фонга, которая в общем случае описывается следующим способом:

где A — рассеяный цвет окружающей среды (ambient color), S — цвет излучения отображаемого объекта (self illumination), K — номер источника освещения, Ddiff — вес диффузионной составляющей компоненты цвета, C - цвет объекта, n — нормаль к поверхности отображаемого объекта, lk — направление на к-ый источник света, Dspec — вес отражающей составляющей компоненты цвета, LK — цвет к-того источника света, rk — вектор отражения от к-того источника света, v — направление на наблюдателя.

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

5.1 Метод быстрого отображения полупрозрачных объектов образованных поверхностями свободных форм

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

Реализован следующий метод моделирования неоднородности при визуализации атмосферных эффектов — это использование текстуры для вычисления функции цвета и плотности. В этом случае цвет на поверхности объекта берется из текстурной карты, а функция прозрачности вычисляется по этому цвету, например, пропорционально цвету, или обратнопропорционально.

Отличием алгоритма отслеживания лучей (ray casting) от трассировки лучей (ray tracing) является то, что в первом из них в целях увеличения скорости вычислений не отслеживаются вторичные лучи. При моделировании прохождения света через полупрозрачные среды с этой же целью пренебрегаем преломлением и затуханием вторичных лучей. В данной модели остается только отражение и затухание света на пути следования от объекта к глазу наблюдателя.

5.1.1 Алгоритм накопления цвета в пикселе

Формулу, по которой вычисляется цвет пиксела можно выразить следующим образом [28]:

Где — конечный цвет пиксела, а может быть r, g или b (т.е. красный, зеленый или синий, соответственно). — интенсивность в n-ом вокселе, вычисленная по модели освещения Фонга, - непрозрачность n-го воксела.

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

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

В общем случае, если заменить сумму интегралом, интенсивность вычисляется [36]:

D — расстояние по Z-координате, на котором происходит вычисление интенсивности.

x(s) — точка на отрезке вдоль луча наблюдения.

Color, opacity — цвет и значение непрозрачности в данной точке.

Эта формула более подходящая по сравнению с формулой (1), т.к. в ней учитывается протяженность отрезка по z-координате.

Однако тогда пришлось бы вычислять интеграл на каждом отрезке или приближать его каким либо выражением. Поэтому нам приходится использовать допущение, например, что на протяжении отрезка значение прозрачности постоянно. В этом случае (1) для N элементов можно заменить:

— непрозрачность в точке.

P — суммарная непрозрачность для N элементов.

Если рассматривать N не как количество элементарных отрезков на луче, а как его длину, то окончательно:

— длина отрезка.

Как уже отмечалось, вследствие искажения геометрических примитивов длина воксела становится зависимой от Z-координаты (См. п.3 Проективное преобразование). Эту зависимость можно выразить следующим образом:

т.е. провести дробно-линейное преобразование для координат начала и конца отрезка.

— элементы матрицы перспективного преобразования, — начало и конец отрезка в системе координат объекта.

Окончательно эту часть алгоритма можно выразить следующим образом:

AccumulatedColor — окончательный цвет в пикселе,

Color — цвет, вычисленный в точке, например, по модели освещения Фонга.

Transparency — величина, эквивалентная произведению из формулы (1), обозначающая общую прозрачность от начала сканирования луча до данной точки.

P — непрозрачность в точке, вычисленная по формуле (3.1), в которой длина отрезка берется из формулы (4).

Также следует обратить внимание на то, что в проверке не встречается условие — (последний уровень рекурсии), это как раз соответствует тому, что отрезки на луче сканирования могут быть различной длины.

6. ЗАКЛЮЧЕНИЕ

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

  • Эффективность метода растрирования с маскированием, сочетающего простоту вычисления с быстрым поиском и отбраковкой областей, не занятых объектами сцены.
  • Уменьшение количества поверхностей для описания криволинейных объектов. Задание объектов поверхностями свободных форм сокращает в 500 и более раз описание баз данных по сравнению с заданием их полигонами. На рисунке 1 показан результат моделирования объекта сцены с помощью свободных форм, на описание которого потребовалось 4 Kбайт информации, что в 500 раз меньше полигонального описания, которое составило бы 2 Mбайт информации.
  • Снижение нагрузки на геометрический процессор и уменьшение потока данных от него в видеопроцессор.
  • Существенное упрощение построения рельефа местности, обусловленное тем, что не требуется предварительная триангуляция поверхностей и клиппирование пирамидой видимости. В алгоритме отображения рельефа и смены уровней детальности используется тот же механизм, что и для обычной текстуры, для фильтрации изображения при динамике используется интерполяция высот по аналогии с текстурой цвета. Время вычислений при генерации рельефа местности практически не зависит от разрешения карты высот, а зависит только от разрешения экрана (квадратичная зависимость) и от разрешения по глубине Z (логарифмическая зависимость). Если реализовать в hardware конвейер на число разрядов координаты Z, логарифмическая зависимость устраняется.
  • Простое решение задачи динамической коррекции дисторсии за счет предложенного метода проективного преобразования.
  • Возможность обработки воксельных массивов, ограниченных поверхностями свободных форм и поверхностей, окруженных массивами вокселей.
  • Простота анимации, деформации и морфинга объектов.

Таким образом, можно сделать следующий вывод:

  1. Для систем визуализации высокореалистичных изображений необходимо перейти от сканирования двумерного пространства к трехмерному.
  2. Необходимо на основе конструктивной геометрии сплошных тел формировать объекты из примитивов свободных форм и/или на основе граничного представления при косвенном задании объектов, ограниченных участками поверхности, заданными полиномиальными функциями наряду с полигональным заданием.

Перечисленные особенности предлагаемого подхода создают предпосылки к созданию нового класса компьютерных систем визуализации широкого применения. Предварительные оценки показали, что для реализации систем желательна разработка, по крайней мере, трех заказных СБИС с интеграцией порядка 15-20 миллионов транзисторов. Данный chip-set, предположительно, может состоять из четырех микросхем (если иметь геометрический процессор, в данном подходе он не сильно актуален) или из трех микросхем в отсутствии последнего, в максимальной конфигурации. Минимальная конфигурация — это одна микросхема пиксельного процессора. Перечислим по порядку все микросхемы:

  • Геометрический процессор (Geometry Set-up Engine).
  • Канал обработки скалярных функций (Scalar_Pipeline).
  • Канал обработки аналитических функций (Implicit_Pipeline).
  • Пиксельный процессор (Pixel Processor).

На вход Geometry Set-up Engine поступают данные с шины Host_bus или AGP_bus, пропускная способность которых должна быть не менее 1.2 Gbyte/sec. Функции данной микросхемы — геометрические преобразования примитивов. С выхода данной микросхемы данные поступают по шине Par_bus, на вход канала обработки скалярных функций (Scalar_Pipeline), канала обработки аналитических функций (Implicit_Pipeline) и на вход Пиксельного Процессора (Pixel Processor), если примитивы — треугольники. С выхода микросхем канала обработки скалярных функций (Scalar_Pipeline) и канала обработки аналитических функций (Implicit_Pipeline) на вход пиксельного процессора (Pixel Processor) поступают данные (пикселы), скорость передачи которых должна быть не менее 3.2 Gbyte/sec.

Наряду с данными чипами плата акселератора должна иметь микросхемы памяти для хранения данных карт высот (Hight_data Memory) и памяти кадра (Frame Buffer), координаты Z (Z-buffer) и текстурной памяти (Texture_Memory). Возможен вариант размещения памяти кадра и координаты Z в самом чипе пиксельного процессора (Pixel Processor). С выхода пиксельного процессора (Pixel Processor) видеосигнал в форматах VGA, TV или DVI поступает на отображающее устройство (Display Device). Система будет характеризоваться высоким параллелизмом, однородностью и векторизованностью вычислений. Предлагаемый алгоритм растрирования в сочетании с возможностью визуализации произвольных поверхностей свободных форм и неоднородных объемных областей создают широкий спектр возможных областей применения от разного вида тренажеров до компьютерных игр.

Благодарности

Мне хотелось бы поблагодарить моих бывших студентов Овечкина Валерия, Щербакова Руслана, Есина Александра и Жигача Александра, а также моих коллег по работе Пичуеву Юлию и Чижика Сергея за предоставленные материалы, которые помогли в написании данной статьи.

СПИСОК ЛИТЕРАТУРЫ

  • [1]. W. Straber, A. Schilling, G. Knittel, "High Performance Graphics Architectures", // Graphicon'95 Proceedings, S. Klimenko et al. (Eds). St-Petersburg 1995
  • [2]. Tile Based Rendering, White Paper (down load 108 Kb pdf), discusses the techniques used when KYRO performs transform and lighting, hidden surface removal and texturing and shading using a tile based approach.
  • [3]. Великохатный Р.И., С.И. Вяткин, О.Ю. Гимаутдинов и др. "Ариус" — семейство 3D графических систем реального времени для РС платформ // Труды 7-ой Междунар. конф."Графикон-97". Москва, 1997.
  • [4]. С.И. Вяткин., Б.С. Долговесов, Н.Р. Каипов, С.Е. Чижик. "Архитектурные особенности системы визуализации реального времени на основе DSP" // Автометрия. — 1999.-N1.
  • [5]. Lizabeth K. Coe "Project to improve performance of the NASA/AMES ACAB Visual Pipeline". Presented at the IMAGE V Conference, Phoenix, Arizona, 19-22 June 1990.
  • [6]. Ковалев А.М. "О центральных проекциях трехмерного пространства"// Автометрия 1996. N6. С. 4.
  • [7]. Pasko A., Adzhiev V., Sourin, A., et al. Function representation in geometric modeling: concepts, implementation and applications //The Visual Computer, 11,6, 1995, P 429.
  • [8]. V. Savchenko, A. Pasko, T. Kunii, et al. "Function representation of solids reconstructed from scattered surface points and contours", Computer Graphics Forum, 14,4, 1995, P 181.
  • [9]. A.A. Pasko, V.V. Savchenko. "Blending operations for the functionally based constructive geometry", Set-theoretic Solid Modelling: Techniques and Applications, CSG 94 Conference Proceedings, Information Geometers, Winchester, UK, 1994, P 151.
  • [10]. A. Sourin, A. Pasko, V. Savchenko. "Using real functions with application to hair modelling", Computer & Graphics, 20, 1, 1996, P 11.
  • [11]. V.V. Savchenko, A.A. Pasko, T.L. Kunii, et al. "Feature based sculpting of functionally defined 3D geometric objects", Multimedia Modeling. Towards Information Superhighway, T.S. Chua, H.K. Pung and T.L. Kunii (Eds.), World Scientific, Singapore, 1995, P341.
  • [12]. Savchenko V.V., Pasko A.A. Vyatkin S.I. et al. New approach in geometric modeling: distributed and hardware implementation perspectives.// International Conference on Computers and Devices for Communication CODEC-98. Calcutta, India, 1998. P. 285.
  • [13]. The Dawn of Volume Graphics, (dawn_vg.pdf, 1.5M), Presented in Computer Graphics World (CGW) February 1999 by Jenny Donelan
  • [14]. VolumePro™ Takes New Approach to 3D, (micro.pdf, 1M), Presented in MICROPROCESSOR REPORT November 1998 byPeter N. Glaskowsky
  • [15]. Mitsubishi VolumePro: Volume Visualization Hardware for the PCs, (rtg_volumepro.pdf, 1.1M), Presented in Real Time Graphics October/November 1998 by Roy Latham
  • [16]. Visualizing Volumes: Techniques for Rendering Volumetric Data are Finally Breaking Through the Surface, (cgw.pdf, 322k), Presented in Computer Graphics World (CGW) July 1997 by D.P. Mahoney
  • [17]. Brochure — Real-time Volume Rendering: The View of the Future, (brochure.pdf, 1.1M)
  • [18]. Venturing out Mitsubishi Tests the Entrepreneurial Water, Presented in Technology Review November/December 1999
  • [19]. VolumePro 1000 Expands 3D Vision, Printed in Microprocessor Report October 25, 1999, (micropross_102599.pdf, 151k)
  • [20]. Volume-rendering PCI Board Casts Rays in Real-time, Presented in EE Times July 5, 1999, (eetimes_070599.pdf, 422k)
  • [21]. Mitsubishi Soups up Graphics Board to Bring 3-D Volume Rendering to PCs, (di_scan.pdf, 90k), Presented in Diagnostic Imaging Scan June 9, 1999
  • [22]. Workstation 3-D Graphics Get a Reality Boost, (eetime.pdf, 594k), Presented in EETIME March 1999 by Anthony Cataldo
  • [23]. H. Pfister, VolumePro — At the Frontier of Advanced Volume Graphics, Nikkei Science, October 1999, (nikkei99.pdf, 135k)
  • [24]. H. Pfister, Keynote Address at the 5th Japanese Visualization Conference, Real Time Volume Visualization with VolumePro — Tokyo, Japan, 1999, (jvis99.pdf, 236k)
  • [25]. H. Pfister, J. Hardenbergh, J. Knittel, H. Lauer and L. Seiler, The VolumePro Real-Time Ray-Casting System Proceddings of Siggraph '99, p. 251-260, Los Angeles, CA, August 1999, (sig99.pdf, 808K)
  • [26]. H. Pfister, Architectures for Real Time Volume Rendering, Journal of Future Generation Computer Systems (FGCS), p. 1-9, Elsevier Science, Vol. 15, No. 1, February 1999, (fgcs99.pdf, 1.4MB)
  • [27]. Data Sheet — VolumePro 500-2X, (vp2x_ds.pdf, 479k)
  • [28]. Gunter Knittel, Voxel Engine for Real-time Visualization and Examination, Eurographics'93.
  • [29]. "Дифференциальная геометрия " Э. Позняк Е. Шишкин. М из-во МГУ 1990.
  • [30]. Sergei I. Vyatkin, Boris S. Dolgovesov, Valerie V. Ovechkin, et al. "Photorealistic imaging of digital terrains, freeforms and thematic textures in realtime visualization system Voxel-Volumes", GraphiCon '97, Moscow.
  • [31]. S.I. Vyatkin, B.S Dolgovesov, A.V. Yesin, et al. Voxel Volumes volume-oriented visualization system, International Conference on Shape Modeling and Applications (March 1-4, 1999, Aizu-Wakamatsu, Japan) IEEE Computer Society, Los Alamitos, California, 1999, P. 234.
  • [32]. S.I. Vyatkin, B.S. Dolgovesov, S.E. Chizhick, "Synthesis of virtual environment with object-space recursive subdivision" — Graphicon'98 Proceedings, S. Klimenko et al. (Eds). 1998.
  • [33]. Ефимов Н. В. Высшая Геометрия. М.: Наука, 1978, C. 324-338.
  • [34]. Вяткин С.И., Долговесов Б.С., Мазурок Б.С. и др. Эффективный метод растрирования изображений для компьютерных систем визуализации реального времени // Автометрия. — N 5. 1993.
  • [35]. Асмус А.Э., Богомяков А.И., Вяткин С.И. и др. Видеопроцессор компьютерной системы визуализации "Альбатрос" // Автометрия. — N 6. 1994.
  • [36]. Nelson Max, Roger Craw, Barry Becker, "Application of Texture Mapping to Volume and Flow Visualization", p. 108, Proc. GRAPHICON'95, Moscow.