Анимация воксельной сцены

Обмен данными web-приложения с web-брау-зерами клиентов и с сервером доступа к данным осуществляется при помощи созданного на сервере экземпляра COM (Component Object Model) объекта. Его реализация может быть двух типов и зависит от программного обеспечения web-сервера:

1) наследование от TASPObject - при использовании ISS 4.0;

2) наследование от TMTSASPObject - при использовании Microsoft Transaction Server и IIS 5.0.

Взаимодействие с сервером доступа к данным осуществляется через специализированный интерфейс (для этого примера - IKernel), в котором реализованы необходимые методы, функции и свойства: соединение с сервером; запрос и получение объектов из базы данных; формирование полученного набора данных и т.д. Реализация этого интерфейса может варьироваться в зависимости от программы-сервера, с которым предполагается осуществлять взаимодействие. Работа может вестись в двух режимах:

• в on-line режиме web-приложение формирует по запросу клиента необходимый набор данных, который сразу отправляется клиенту в обновленной HTML странице;

• в near-line режиме web-приложение формирует по заявке клиента электронное письмо с запрошенными данными и отправляет его при помощи почтовой службы на электронный адрес клиента.

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

навигацией и для привязки данных. В качестве формата хранения сценариев выбран XML (Extensible Markup Language) формат как наиболее подходящий для описания и хранения иерархических структур вне баз данных. Сценарии описывают классы объектов и связи между ними, на основе которых строится дерево навигации.

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

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

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

Страницы формируются на сервере динамическим способом и не содержат в себе специфических элементов управления ActiveX. Это делает возможным реализацию клиентского интерфейса для отображения в web-браузерах разных производителей: MS Internet Explorer, Netscape Navigator, Opera Browser и т.д.

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

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

Панель инструментов

Рис. 4. Интерфейс клиента

АНИМАЦИЯ ВОКСЕЛЬНОЙ СЦЕНЫ

В.А. Бобков, Ю.И. Роньшин

В отличие от статической визуализации, где решается задача точного определения видимости объ-

ектов сцены, в анимационной визуализации основной задачей является повышение скорости формиро-

3

вания и вывода последовательности кадров с возможной допустимой ошибкой в определении видимости. Существует несколько путей ускорения визуализации, которые в разных вариантах и комбинациях реализуются в современных алгоритмах. Первый из них - разделение всего объема вычислений на два этапа: предварительные вычисления и непосредственное формирование последовательности изображений с возможной их визуализацией в интерактивном режиме. В этом случае значительная доля трудоемкости вычислений переносится на предварительный этап, за счет чего собственно визуализация может осуществляться "на лету". Примером реализации такого подхода является вычисление PVS (потенциально видимых наборов) [1,2]. Другой, активно развиваемый сегодня путь, - использование вспомогательных структур данных, облегчающих поиск видимых объектов и направленных в целом на снижение зависимости вычислительной эффективности алгоритмов от количества объектов в сцене. Так, в алгоритме иерархического z-буфера [3] используется z-пирамида и октантная структура данных [4,5], часто применяемая и во многих других алгоритмах. Также активно применяются BSP-структуры [6] и kd-trees [7], которые в сочетании с методом преград (occlusion culling method/occlusion calculations/occlusion trees) [8,9] обеспечивают быструю идентификацию невидимых частей сцены. Применение этих и других структур позволяет использовать в алгоритмах визуализации пространственную когерентность. Наконец, еще одно направление повышения скорости анимационной визуализации - реализация темпоральной когерентности, то есть использование результатов вычислений предыдущего кадра при формировании текущего. Как правило, это делается за счет повторного использования видимых элементов на предыдущем кадре. Например, в [10], как и в [3], вывод в текущем кадре начинается с видимого набора граней предыдущего кадра. Однако, если при этом не учитывать геометрию траектории просмотра сцены, могут возникать дефекты в формируемых таким способом изображениях. Например, в алгоритмах с использованием hierarchical occlusion maps и в некоторых других методах [11-13], обеспечивающих ускорение вычислений, не гарантируется вывод всех видимых объектов.

В настоящей работе предлагается подход к анимационной визуализации ранее реализованного ок-тантного представления воксельной сцены [14], совмещающий в себе как предварительные вычисления (построение вспомогательной структуры данных), так и реализацию пространственной и темпоральной когерентности. Одновременно в предлагаемом методе анимации реализована и схема параллельных вычислений [15,16], обеспечивающая эффективную работу программы на многопроцессорной вычислительной системе.

Организация режима анимации

Рассматривается анимация типа "облет сцены" с предварительно заданной траекторией (контрольными точками) перемещения камеры наблюдения.

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

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

Формирование промежуточных кадров. При переходе от текущего кадра к соседнему большая часть точек, видимых на предыдущем кадре, остается видимой и на следующем. Одновременно небольшая часть точек, видимых на предыдущем кадре, становится невидимой на следующем кадре. Именно эти точки могут привносить ошибку в изображение, если отображать видимые точки предыдущего кадра на следующем, как это делается в некоторых алгоритмах, реализующих темпоральную когерентность. Как видно из геометрии, при небольших смещениях точки наблюдения, преодоление этого дефекта возможно двумя способами: 1) отображение видимых точек предыдущего опорного кадра на экран промежуточного кадра осуществляется в "правильном" порядке, обеспечивающем корректность их видимости при визуализации; 2) применение г-буферного принципа (сравнение расстояний при совпадении проекций точек) при отображении видимых точек на экран промежуточного кадра. При этом можно использовать видимые точки (вокселы) одного или двух соседних опорных кадров.

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

Искомый порядок обработки пикселов экрана назовем схемой обхода экрана. Анализ видимости точек сцены при смещении точки наблюдения по-

4

К ! \ 71 / N

Ч / y/O \ V X* ! ^

а) б) Рис. 1. Радиальная схема обхода экрана: а) при перемещении точки наблюдения к сцене; б) при перемещении точки наблюдения от сцены

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

А V / 1

/ В

/ /А, В - точки сцены,

/ / видимые из Р1 и

Экран 2\ \ . ' / невидимые из Р2

\ P2

/ Порядок обхода

/ пикселов экрана ____

Экран 1 \ /

P1

Рис. 2. Сохранение корректности видимости

при радиальном обходе пикселов экрана

симметрии. При таком порядке обхода точки, ставшие невидимыми на новом кадре, будут проецироваться на экран раньше, чем точки, их затеняющие (рис. 2). В итоге вклад в изображение нового кадра должны давать только видимые на новом экране точки. Второе базовое движение - смещение точки наблюдения параллельно плоскости экрана. Ему соответствует схема обхода, показанная на рисунке 3. Произвольное перемещение точки наблюдения можно рассматривать как комбинацию двух базовых движений. Такому перемещению соответствует схема обхода со смещением центра симметрии в направлении плоской составляющей движения (см. рис. 4 а,б). Кроме указанных базовых движений возможно также вращение вектора про-

Рис. 3. Схема обхода

экрана при плоскопараллельном перемещении точки наблюдения

смотра (вращение плоскости экрана). В этом случае изменения видимости точек сцены не происходит, изменяется лишь пирамида видимости.

Процедура построения описанной схемы обхода экрана. Построим вектор P из центра проекций P1 текущего кадра в центр проекций P2 очередного кадра. Как показывает анализ видимости точек сцены при перемещении P2, искомый порядок обхода пикселов текущего экрана зависит от положения вектора P по отношению к плоскости экрана текущего кадра. Определяем точку пересечения вектора P с плоскостью экрана текущего кадра. Найденная точка Q на картинной плоскости является центром симметрии в искомой схеме обхода. В зависимости от положения точки Q по отношению к точке P1 на векторе P получается первый или второй вариант радиальной схемы обхода. Если уравнение отрезка P1P2 записать в векторной параметрической форме P=P1+t (P2-P1), то указанное выше условие можно выразить следующим образом: если tQ>0 (точка Q справа от точки P1), то имеем первый вариант схемы обхода, при tQ<0 (точка Q слева от точки P1) - второй.

В случае параллельности вектора P1P2 и плоскости экрана текущего кадра выполняется проецирование P1P2 на экран и реализуется схема обхода, показанная на рисунке 3.

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

Рис. 4. Схема обхода экрана при произвольном перемещении точки наблюдения: а) с составляющей движения к сцене; б) с составляющей движения от сцены

5

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

Формирование промежуточных кадров. Каждый из промежуточных кадров формируется в два этапа. На первом осуществляется проецирование видимых точек опорного кадра на экран промежуточного кадра в соответствии с полученным порядком обхода и закраска соответствующих пикселов (цвет выбирается из пикселов экрана опорного кадра).

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

Второй способ реализации темпоральной когерентности, как было указано выше, - применение г-буферного принципа - сравнение расстояний для перекрывающихся точек (вокселов). При этом промежуточные кадры можно формировать с использованием видимых точек только предыдущего опорного кадра или двух соседних (предыдущего и следующего). Во втором случае оба множества точек можно объединить в одно и выполнять их обработку в произвольном порядке. И, наконец, третий способ, который был реализован и показал наилучший результат, объединяет оба вышеописанные. А именно, используется пара соседних опорных кадров. Для каждого из них определяется схема обхода, в соответствии с которой отображаемые вокселы сортируются в порядке возрастания их удаленности от точки наблюдения, а затем осуществляется проецирование вокселов на экран с применением г-буферного принципа. Это повышает скорость работы г-буферного алгоритма в сравнении с произвольным порядком отображения вокселов на экран. Величина смещения между опорными кадрами вдоль траектории наблюдения может быть значительной. Но поскольку она зависит от геометрического характера сцены и автоматически не определяется, в данной программной реализации количество опорных кадров задается пользователем как настраиваемый параметр. В таблице 1 приведены результаты экспериментов по сравнению предложенного метода расчета анимационных кадров с базовым методом (независимый расчет кадров методом трассировки лучей). Визуализировалась сцена средней сложности с глубиной ок-тантного дерева 8 при разрешении экрана 1280x960x32 для двух вариантов выбора опорных кадров на анимационной последовательности из 200 кадров. Параметры производительности используемой вычислительной техники в данном случае не приводятся, поскольку сравнение носит относительный характер.

Вариант 1: всего кадров 200, опорных кадров 18 (через 20 град.).

Вариант 2: всего кадров 200, опорных кадров 8 (через 45 град.).

Таблица 1

Время (сек) Вариант/метод

355.3 базовый метод

119.2 Вариант 1: по 1 опорному кадру с сортировкой и с г-буфером

124.1 Вариант 1: по 2 опорным кадрам с сортировкой и с г-буфером

103.8 Вариант 2: по 2 опорным кадрам с сортировкой и с г-буфером

Как видно из таблицы, предлагаемый метод ускоряет вычисления в 3-3,5 раза в сравнении с базовым методом.

Распараллеливание вычислений

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

В таблице 2 приведены результаты измерений по оценке эффективности на МВС 1000. Число используемых процессоров равно числу опорных кадров минус 1.

Таблица 2

Число опорных кадров Время на 1 процессоре

9 430.1 66.9

14 493.2 51.2

26 681.1 68.0

Как видно из таблицы, рассмотренная схема обеспечивает эффективность параллельных вычислений в среднем на уровне 75 %.

Список литературы

1. Airey J., Rohlf J. and F. Brooks Jr. Towards Image Realism with Interactive Update Rates in Complex Virtual Building Environments. Symposium on Interactive 3D Graphics 90, pp. 41-50.

2. Cohen-Or D., Fibich G., Halperin D. and Zadicario E. Conservative Visibility and Strong Occlusion for Viewspace Partitioning of Densely Occluded Scenes. EUROGRAPHICS 98 pp. 243-253.

3. Greene N., Kass M. and Miller G. Hierarchical Z-Buffer Visibility. SIGGRAPH 93 pp. 231-238.

6

4. Kaplan M. The use of spatial coherence in ray tracing. In Technicuesfor Computer Graphics, ets., D. Rogers and R.A. Earnshaw, Springer-Verlag, New York, 1987.

5. Meagher D. Efficient synthetic image generation of arbitrary 3-D objects. Proc. IEEE Conf. On Pattern Recognation and Image Processing, 473-478, June 1982.

6. Naylor B. Partitioning tree image representation and generation from 3d geometric models. Graphics Interface 92 pp. 201-212.

7. Samet H.J. Design and analysis of Spatial Data Structures: Quadtrees, Octtrees, and other Hiereachical Methods. Addison Wesley, Redding, MA, 1989.

8. Luebke D. Georges C. Portals and Mirrors: Simple, Fast Evaluation of Potentially Visible Sets. Symposium on Interactive 3D Graphics 95 pp.105-106.

9. Hey H., Purgathofer W. Occlusion Culling Methods. State of the Art Report at Eurographics'01, Manchester, U.K., Sept. 2001.

10. Боресков А.В. Метод иерархического s-буфера. // Программирование. - 1998. - №4. - С. 77-80.

11. Bartz D., Meissner M. and Hutner T. OpenGL-assisted Occlusion Culling for Large polygonal Models. Computer & Graphics 23 (1999) pp. 667-679.

12. Gotsman C., Sudarsky O. and Fayman J. Optimizied occlusion culling using five-dimensional subdivision. Computer & Graphics 23 (1999) pp. 645-654.

13. losowski J. and Silva C. The Prioritized-Layered Proection Algorithm for Visible Set Estimation. IEEE transactionson visualization and computer graphics vol. 6 no. 2 pp. 108-123, 2000.

14. Бобков В.А., Роньшин Ю.И. Алгоритм визуализации с трассировкой лучей в октантных деревьях. // Информационные технологии. - 2001. - №4. - С. 46-50

15. Бобков В.А., Роньшин Ю.И., Гуменников В.А. Параллельная обработка в алгоритмах визуализации с трассировкой лучей. // Программные продукты и системы. - 2001. - №1. -С. 27-30.

16. Бобков В.А., Роньшин Ю.И., Покудова Л.М., Харитонов Д.И. Анализ эффективности параллельной обработки в алгоритме визуализации с трассировкой лучей. // Информационные технологии. - 2002. - №6. - С. 50-53.

ПРОГНОЗИРОВАНИЕ НОМЕРА ОБРАЗА ПО ТЕКУЩИМ ХАРАКТЕРИСТИКАМ ОБЪЕКТА

В.А. Гимаров, М.И. Дли

Пусть для каждого объекта а из генеральной совокупности А можно измерить набор его количественных характеристик х(^)=[х!(^), х2(^),..., х„(^)]т (здесь Т - символ транспонирования) в последовательные моменты времени ^ 1^,..., ^ Предполагается, что в момент времени ^ может быть определен номер образа У(а)=у, который имеет рассматриваемый объект; уеВу, Ву={1,2,...,г,...8}, 8 - число образов (классов). Задача состоит в том, чтобы дать прогноз номера образа у для момента ^ объекта а на основе эмпирической информации, представляющей для объекта аеА измерения его характеристик х(^) в моменты времени ]=1,2,...,М; М<^ В качестве примера можно привести задачу опознавания "свой-чужой", когда по ряду признаков, получаемых с помощью РЛС, требуется отнести приближающийся объект (летательный аппарат) к одному из двух классов. Пусть, в частности, данное опознавание проводится по некоторым двум признакам - х1 и х2, фиксируемым для рассматриваемого объекта в моменты ^-И^. Предположим далее, что при выбранном решающем правиле результаты наблюдений х(11), х^),..., х(1М) не позволяют принять решение (см. рис.) об отнесении объекта к тому или иному классу, но такое решение (о том, что в момент 1К>1М объект может быть отнесен к тому или иному классу) должно быть принято в момент 1М (интервал между выдачей прогноза и моментом начала реакции на этот прогноз включает в себя подготовительные операции, связанные, например, с прицеливанием средств ПВО на приближающийся летательный аппарат и т.п.).

Другой пример. Пусть некоторый технологический процесс описывается набором характеристик (вектором) х(1), изменяющимся во времени. По окончании технологического процесса полученное изделие может быть забраковано или не забраковано (8=2). Необходимо до окончания технологического процесса оценить возможность получения бракованного изделия для введения соответствующего управляющего воздействия на технологический процесс.

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

Обсудим возможные ограничения и методы решения исследуемой задачи. Очевидно, в самом "же-

Иллюстрация прогнозирования номера образа: а) значения х^!)тх^м) находятся в зоне неопределенности; б) указанные значения соответствуют принадлежности объекта то к одному, то к другому образу

7