Популярные редакторы VRML - миров.

Содержание:
  1. Введение.
  2. Создание VRML сцен и объектов.
  3. Анимация VRML сцен и объектов.
  4. Заключение.
  5. Приложение.

1. Введение.

Идея этого обзора рассмотреть наиболее распространенные средства для создания и редактирования файлов в формате VRML или VRML-миров. Состояние этой технологии на время написания статьи можно охарактеризовать как застойное. Мощный толчок, полученный с введением стандарта VRML97, к сожалению не привел к качественным изменениям в мире сетевых технологий. Фантастически мощные возможности, заложенные в стандарт были фактически невостребованы из-за сложности написания кода вручную и отсутствия средств разработки, позволяющих реализовать его в полном объеме.
Не касаясь субъективных причин, связанных с потерей интереса к VRML крупных компаний (таких как SGI) можно сказать, что интернет-сообщество оказалось не готово воспринимать мир в трех измерениях. Однако на самом деле все не так уж мрачно, существуют программные средства позволяющие создавать VRML-миры и использующие в совокупности все основные возможности стандарта VRML97. В качестве основных рассмотрим три наиболее распространенных продукта: Cosmo Worlds v2.0 [SGI] (разработка прекращена - примечание мое. max_observer), V-Realm Builder v2.1 [Ligos] (разработка прекращена - примечание мое. max_observer), Internet Space Builder v3.0/Internet Scene Assember v1.0 [ParallelGraphics]. Данные программные продукты являются средствами создания VRML-миров полного цикла, т.е. содержат элементы редактора трехмерных объектов и аниматора сложных сцен. Рассмотрим сначала возможности, предоставляемые ими для создания и редактирования трехмерных моделей.

2. Создание VRML сцен и объектов.

В стандарте VRML97 предусмотрено несколько разновидностей объектов - примитивы (куб, шар, конус и цилиндр); формы (набор граней, набор отрезков, набор вершин); объекты со связанной геометрией (тела вращения, сеть высот); специальные объекты (фон-переспектива, источники освещения, звуковые и видео фрагменты итд). Примитивы достаточно полно представлены во всех рассматриваемых продуктах.
Из объектов типа форма, как правило везде присутствует набор граней (IndexedFaceSet) как наиболее универсальное средство моделирования, хотя его реализация довольно сильно отличается в каждом продукте. В CW предусмотрен очень полезный режим редактирования IFS, позволяющий оптимизировать модели и добиваться минимизации полученного кода, но отсутствует возможность раздельного наложения текстур и цвета на различные грани одного IFS. В VRB раздельное наложение поддерживается, существует хотя и менее удобный, режим редактирования по граням и вершинам. В ISB форма вообще является основным объектом построения сцен. Там реализован интересный режим редактирования IFS, основанный не на гранях или вершинах, а на сложении или вычитании форм. Это очень удобно при построении моделей зданий или помещений. Полностью поддерживается наложение текстур или цвета на грани полученных объектов. Набор отрезков (IndexedLineSet) и вершин (IndexedPointSet) и их редактирование полностью поддерживает только VRB. В CW можно просматривать объекты созданные в других редакторах, а ISB их попросту игнорирует.
Объекты со связанной геометрией - тело вращения (Extrusion) и сеть вершин (ElevationGrid), впервые введенные в стандарте VRML97, позволяют облегчить создание сложных объектов и уменьшить получаемый код. Несмотря на их очевидные преимущества, полностью они реализованы только в VRB, хотя его аскетичные средства редактирования иногда затрудняют создание Extrusion c усложненной геометрией. Для ElevationGrid, здесь реализовано наложение цвета на каждую грань и режим взаимопроникновения цветов, сглаживающий резкие переходы. ISB и CW - позволяют просматривать уже созданные объекты и делать с ними стандартные манипуляции, а режимы создания или редактирования отсутствуют. В CW существует возможность изменение всех атрибутов и полей вручную, но такой сервис предоставляет даже простейший notepad.
Специальные объекты: источники света (Lights), виртуальные камеры (Viewpoints), внешние объекты (Inline), звуки (Sounds) и др. позволяют приблизить полученные сцены к реальности, а также используются при анимации. В ISB/ISA боле мене реализованы Viewpoints, а источники света и другие специальные объекты присутствуют неявно и их прямое использование при создании статичных сцен затруднено. CW и VRB наоборот, практически полностью поддерживают основные группы специальных объектов и предоставляют доступ к их атрибутам и свойствам.


3. Анимация VRML сцен и объектов.

Анимация VRML используется для создания анимационных роликов, планирования интерактивных миров или создания динамических аватаров. В чистом виде стандарт VRML содержит значительный набор средств для создания динамических сцен. Однако, каждое из них в отдельности реализует лишь конкретную специализированную операцию и для создания хотя бы простейшей анимационной сцены путем их комбинации необходимо приложить значительные усилия. Поэтому, все программные продукты имеют средства для автоматизации этих типичных операций. Не вдаваясь в подробности создания интерполяторов, сенсоров и маршрутов, рассмотрим визуальные режимы используемые при создании анимации (т.е. фактически автоматической генерации VRML кода).
Основным принципом, лежащим в основе создания анимации трехмерных объектов и сцен вообще, является создание т.н. ключевых кадров (keyframes) задающих статичные положения сцены в пространстве. Keyframes определяют положение или свойства объекта в дискретные моменты времени в промежутках между которыми происходит автоматическое линейное изменение параметров объекта. Как правило, поддерживается изменение: масштаба, координат, ориентации в пространстве (вращение), а иногда и изменение цвета объекта.
Для создания VRML анимации компания Parallel Graphics разработала специальный продукт ISA (Internet Scene Assembler). Фактически его можно рассматривать как средство расширения ISB для создания динамических сцен. Этот продукт позволяет создавать анимацию используя рассмотренные выше средства, поддерживается режим вложенной анимации (т.е. использование динамических объектов). Основной недостаток - составные объекты рассматриваются как единое целое и нельзя анимировать отдельные их составляющие (решение этой задачи возможно только при использовании продукта - Internet Character Animator). Наглядно представлены связи между объектами, что полезно при создании сложной сцены.
Режим реализованный в VRB менее нагляден и в нем отсутствует возможность изменения цвета объекта. Недостатком также является слабая поддержка вложенной анимации. Достоинством является низкоуровневая реализация механизма динамических сцен. Это позволяет в любое время просматривать и изменять анимацию созданную в VRB, а также в большинстве других VRML редакторов (в том числе после оптимизаторов). Аниматор реализованный в CW представляет собой золотую середину между двумя рассмотренными крайностями. Поддерживаются все основные возможности, удобно реализован режим создания динамических объектов и вложенной анимации. В совокупности с мощью встроенного в CW редактора VRML является лучшим средством для создания динамических сцен.
Рассматривая вопросы анимации необходимо упомянуть о совместимости сгенерированного кода. Динамические сцены созданные в ISB/ISA и CW содержат некоторые служебные поля в исходном коде, используемые при операциях редактирования и сборки сцены. Для получения конечного результата используется специальная операция - Publish (публикация) - во время которой создается независимый модуль не содержащий вспомогательных данных. При редактировании таких файлов уже невозможно изменить анимацию сцены через встроенные редакторы этих продуктов. Естественно, анимация созданная в одном редакторе не может быть адекватна использована в другом. Единственным исключением является VRB, который может редактировать полученную после Publish анимацию других редакторов. Иногда для этого может потребоваться небольшая модификация кода модуля


4. Заключение.

Подводя итоги, рассмотрим коротко достоинства каждого из представленных продуктов.
Internet Space Builder/Internet Scene Assembler - рекомендуется для ознакомления с технологией VRML. Благодаря интуитивно понятному интерфейсу доступен для неподготовленного пользователя. В профессиональной работе возможно использование для создания моделей зданий или помещений.
V-Realm Builder - наиболее полная поддержка стандарта VRML97, древовидная структура сцены отражает исходный код модуля. Для полноценной работы требуется знание стандарта VRML, желательно наличие опыта создания VRML кода. Используется для создания объектов со связанной геометрией, при редактировании цвета граней формы, для окончательного шлифования собственных или анализа сторонних модулей.
CosmoWorlds - единственный оправдывающий статус профессионального продукта. Мощный и удобный редактор сцены и анимации. Рекомендуется для профессиональных или подготовленных пользователей. Лучшее средство для сборки и анимации сложных сцен.
Резюме - не железом одним жив Silicon Graphics. Может быть причина свертывания проекта CosmoSoftware для PC в том, что силиконцы просто испугались утечки технологий, глядя на CW в это можно поверить. Реальность же такова, что нет универсального средства разработке (такого как 3DS для несетевой 3D графики на PC). Чтобы создать стоящую вещь, необходимо использовать все рассмотренные продукты и изучить основы стандарта VRML97.

5. Приложение.

Для иллюстрации теоретического материала был проведен эксперимент по моделированию простой сцены в каждом из продуктов. Сцена содержала: Динамический обьект - состоящий из примитивов (цилиндр и куб) флажок с вращением относительно вертикальной оси; Составной обьект включающий описанный флажок, поставленный на площадку (примитив куб). Для динамического обьекта была создана анимация движения по прямой, активируемая при нажатии (touch-sensor).
Результаты
  • Простота и удобство создания статических обьектов (5 бальная шкала)
    ISB: 4
    VRB: 3
    CW: 4
  • Простота и удобство создания анимации (5 бальная шкала)
    ISB: 4
    VRB: 4
    CW: 5
  • Размер полученного модуля (несжатый VRML)
    ISB: 14798 байт
    VRB: 3846 байт
    CW: 5157 байт
  • Размер полученного модуля (сжатый gzip VRML)
    ISB: 3688 байт
    VRB: 1276 байт
    CW: 1563 байт

    Alexander A. Sookolenoff aka Reagent

    puppermaster@mail.ru