В конце января в Сан-Франциско прошла конференция “World Movers”. На нее собрались разработчики VRML - языка программирования, с помощью которого описываются трехмерные виртуальные миры. На конференции также присутствовали различные специалисты, использующие VRML 2.0 в конкретных проектах. Участники обсуждали перспективы и основные тенденции развития этого языка.
VRML сегодня наиболее активно используется в Сети, но нередко его применяют в проектах, где ранее использовались традиционные средства создания 3D-приложений (например, хорошо известный в России пакет 3D Studio). Системы, поддерживающие VRML, обладают рядом неоспоримых преимуществ перед пакетами для создания трехмерных анимационных
В 3D-анимации всегда фиксирована точка зрения (виртуальная камера), поэтому на движущийся объект можно смотреть только с той точки, что выбрана создателем ролика. Все объекты перемещаются по жестко заданным траекториям, вдобавок необходимо просмотреть весь анимационный ролик до конца, чтобы полностью понять главную идею его создателя. Оперативно переходить к различным точкам видеопоследовательности невозможно. Но самый главный недостаток 3D-анимации - в полном отсутствии интерактивности, т. е. возможности реагировать на действия человека. В VRML все обстоит по-другому. Пользователь с помощью мышки может перемещать камеру в любых направлениях, изменять траектории объектов (если это предусмотрено в программе) и активно участвовать в разворачивающемся на его глазах виртуальном действе.
Наиболее распространены в Сети миры, созданные с помощью VRML 1.0. Первая версия этого языка позволяет отображать на экране статические трехмерные изображения, но обладает рядом существенных ограничений. Стандарт VRML 1.0 не поддерживает анимацию объектов. В нем отсутствует понятие времени, что не позволяет создавать автономные миры с собственной логикой поведения. Любой язык программирования в той или иной форме поддерживает интерактивный режим работы, для чего в него встраиваются, например, механизмы отслеживания нажатий на кнопки мыши. А VRML 1.0, являясь по сути чисто декларативным (описательным) языком, не предоставляет никаких внутренних средств обработки действий пользователя. Кроме того, в нем полностью отсутствует возможность воспроизведения звуков и поддержка музыкального сопровождения. Первая версия VRML не имеет средств описания сложных объектов, которые составляются из нестандартных трехмерных тел, получаемых вращением различных кривых. Поддержка текстур (покрытий объектов) также реализована неудачно.
Тем не менее стандарт VRML 1.0 широко распространился в Сети, в основном из-за того, что на момент его появления не существовало других языков, позволяющих компактно и более-менее эффективно создавать трехмерные виртуальные миры, ориентированные на демонстрацию в Internet.
Сегодня на смену VRML 1.0 пришла вторая версия этого языка. Пока VRML 2.0 используется в Сети не очень широко из-за того, что наиболее популярные навигаторы не поддерживают новый стандарт, хотя это будет сделано в ближайшем будущем. В VRML 2.0 встроены средства поддержки автономного движения, вращения и масштабирования сложных объектов, представляющих собой иерархию более простых трехмерных тел, связанных друг с другом. Допускается создание объектов с геометрией любой сложности. Реализованы динамически изменяемые системы отсчета. Имеются богатые возможности для работы с цветом и звуком.
Основной недостаток VRML 2.0 - очень высокая сложность. Это, наверное, единственный язык, на котором писать программу в обычном текстовом редакторе “ручками” будут только “полные идиоты”, как заявил один из выступавших на конференции, потому что для описания незамысловатой трехмерной сцены даже специалисту потребуется несколько дней работы. Соответственно, возникает потребность в хорошем инструментарии для создания виртуальных динамических миров (один из лучших редакторов VRML 2.0 сделан в российской фирме “Параграф” и называется Internet Space Builder).
На конференции горячо обсуждались перспективы развития VRML 2.0. Что будет дальше - версия 2.1 или 3.0? Об этом пока никто не знает. В ближайшее время ожидается появление многопользовательской поддержки в VRML, когда в одном виртуальном мире смогут путешествовать и общаться сразу несколько пользователей, а также создание специальных сетевых VRML-протоколов. Не исключается встраивание в VRML механизмов разграничения доступа к тем или иным частям виртуального мира. Возможно, будет создан стандартный набор функций (API) для поддержки VRML, а также типовые репозитории для интегрированного хранения и использования VRML-описаний. Были высказаны пожелания по поводу организации в VRML более строгой системы отслеживания коллизий (например, столкновений объектов) и поддержки спрайтовых изображений, чтобы можно было сделать, например, виртуальному человечку лицо из спрайта, полученного путем сканирования вашей фотографии.
Некоторые нововведения реализованы в VRML уже сегодня. Альянс фирм IBM, Apple и ParaGraph разработал сжатый двоичный формат VRML-описания. Он очень компактен и позволяет осуществлять быструю интерпретацию предварительно преобразованного во внутренний формат кода.
Высказывались также пожелания о внесении в язык более мелких дополнений. Неплохо было бы расширить возможность пользовательского интерфейса. Пока он осуществляется только с помощью мыши, но нередко требуется получить данные, вводимые с клавиатуры. Некоторые языковые конструкции желательно несколько изменить, настроив на конкретные методы рендеринга, которые используются в существующих навигаторах, что особенно актуально для показа сложных миров с большим количеством текстур. Хорошо иметь несколько виртуальных камер и свободно переключаться между ними, чтобы обозревать происходящее в виртуальном мире с разных точек зрения. В ряде случаев желательно варьировать толщину рисуемых линий, как во всех двухмерных графических редакторах, создавать титулы и заголовки к отдельным VRML-страницам, присоединять к конкретному виртуальному миру текстовые истории-комментарии и т. д.
К основным недостаткам, от которых вряд ли удастся избавиться в ближайшее время, была отнесена прежде всего несовместимость навигаторов, поддерживающих VRML 2.0, когда одни и те же миры выглядят в разных просмотрщиках совершенно по-разному. И еще один существенный недостаток, типичный для “толстых” клиентов: интерпретация и преобразование VRML-кода в изображение, а также навигация по виртуальному миру происходят на клиентской машине, что требует от нее высокой производительности и больших объемов памяти.
Более подробно с результатами конференции можно ознакомиться на Web-узле http://www.worldmovers.org. Там имеется немало ссылок на свободно распространяемые в Сети навигаторы, поддерживающие язык VRML 2.0.
Сергей Бобровский