1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /309, 1999 г./ | Бонус | Поиск  

Псевдовиртуальная псевдореальность

МИХАИЛ ЛЕБЕДЕВ,
Опубликовано: 10.8.1999


© 2003, Журнал «Компьютерра» | http://www.computerra.ru/offline
Этот материал вы сможете найти в Интернете по адресу: http://www.computerra.ru/offline/1999/309/3146/

Обзор технологий создания виртуальной реальности для Интернета, и не только для него, был бы неполон без рассмотрения еще одной категории программных средств создания VR. Как упомянул Сергей Кащавцев, все средства создания виртуальной реальности можно подразделить на две категории: языки описания VR (типа рассмотренных ранее 3DML и VRML) и программы для создания псевдо-VR, которые на основе существующих фотографий, видеосъемок или трехмерных сцен просчитывают файл, аналогичный сжатой видеопоследовательности, а после отображают его с помощью программы-плейера.


Наиболее известной технологией подобного рода является одно из ответвлений кросс-платформного стандарта QuickTime, предложенного фирмой Apple, - QuickTimeVR.

QuickTimeVR изнутри

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

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

Простейший QTVR-мир состоит всего из одного узла - панорамного или объектного. Примеры таких миров можно посмотреть на www.virtualstudio.com.hk/samples.htm. Подобные QTVR-фильмы просто незаменимы, если необходимо дать представление о реальном объекте со всех сторон или воссоздать картину реально существующего мира, поскольку каждый узел может быть получен путем обработки фотографий предмета или места со всех ракурсов.

Если в QTVR-мире более одного узла, то между ними возможно создание связей, позволяющих пользователю переходить от одного узла к другому. Для активизации перехода пользователь должен выбрать мышью активную область узла, представляющую собой часть виртуального мира, описанного этим узлом. Таким образом, например, можно построить виртуальную модель квартиры из нескольких комнат - достаточно создать панорамный узел для каждой отдельной комнаты и обозначить в них участки, соответствующие изображениям дверей, как активную область, позволяющую перейти "в следующую комнату". Кстати, активизация связи может быть проведена как пользователем, так и программно с помощью QTVR-менеджера. Используя его, можно инициировать переходы и между не связанными узлами.

Конструкция узла

Узел является наиболее важным базовым объектом в QTVR-фильме. Я не оговорился, QTVR-файл правильнее называть именно фильмом, поскольку он построен на базе QuiсkTime - технологии, изначально ориентированной на воспроизведение аудио- и видеопоследовательностей. Оба типа узлов составляются из готовых изображений, однако технология их построения разительно отличается.

Объектный узел

width=196Для создания объектного узла необходимо иметь фотографии (или отрендеренные изображения) объекта со всех сторон. Согласно стандарту QTVR, фотографирование объекта проводится сначала в вертикальной плоскости с шагом в 10 градусов. При этом камера как бы облетает объект, вращаясь относительно его центра (см. рис.), - получается 36 фотографий. Затем плоскость движения камеры наклоняется на -10. по вертикали, и операция повторяется. Для полного описания объекта требуется 19х36=684 кадра. Правда, эти значения являются не правилом, а рекомендацией Apple. Вы можете выбрать и другое количество кадров, и больший или меньший шаг движения камеры, а также ограничиться, допустим, описанием объекта лишь с одной стороны.

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

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

Панорамный узел

Данные для панорамного узла хранятся в виде одного изображения, описывающего всю панораму. Естественно, такое изображение выглядит искаженным. Компенсация этих искажений проводится QTVR-плейером в момент воспроизведения панорамы.

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

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

Наложение ограничений

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

Создание сцены

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

QTVR и Интернет

Использование QTVR в сети Интернет в настоящий момент ограничивается малой пропускной способностью каналов. Из-за того, что QTVR-файл несет в себе большой объем графической информации, его размер даже при использовании алгоритмов сжатия редко опускается ниже 300-400К на узел, а для больших сцен 5-6 Мбайт является вполне нормальным средним значением. Для компенсации этого в QTVR, начиная с версии 3.0, была введена возможность поточной подгрузки. Поэтому в объектных узлах просмотр объекта можно начинать после загрузки первого кадра. В панорамных узлах применяется технология показа панорамы с низким разрешением во время подгрузки всего файла панорамы. Помимо этого, разработаны специальные кодеки, обладающие очень высокими коэффициентами сжатия изображений.

Дополнительная информация

Базовая информация по технологии QuckTime в целом и QTVR в частности находится по адресу www.apple.com/quicktime.

Технические материалы по QTVR можно найти на сайте Apple по адресу www.apple.com/quicktime/developers.

Информация о программных пакетах для разработки QTVR - www.apple.com/quicktime/authoring.



Михаил Лебедев - студент четвертого курса РГГУ. Виртуальная реальность - хобби, постепенно переходящее в профессию.




1995 | 1996 | 1997 | 1998 | 1999 | 2000 | 2001 | 2002 | 2003 | 2004 | Оглавление текущего номера /309, 1999 г./ | Бонус | Поиск  

© 2004, Издательский дом «Компьютерра» | http://www.computerra.ru
Телефон редакции: (095) 232-22-61
E-mail редакции: inform@computerra.ru