3D-технологии в Web. Часть 1

16 июль, 2002 - 23:00Сергей Митилино Энтузиасты при этом пишут десятки различных реализаций трехмерного виртуального пространства, пытаясь найти идеальную парадигму интерфейса для путешествий в нем, а hardware-индустрия стремительно наращивает мегагерцы и сбрасывает цены для того, чтобы на экранах пользовательских мониторов путешествие по объемной Сети не выглядело как черепашьи бега. Не отстает и рынок коммуникаций -- очевидно, что сейчас (причем даже в нашей стране) все больше людей могут уже не дрожать над каждым загруженным килобайтом, а получать удовольствие от нового уровня общения, которое предоставляет Web.

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


Виртуальные миры

Activeworlds

3D-технологии в Web. Часть 1
Active Worlds
Знакомство с Активными Мирами уместно начать с цитаты, характеризующей серьезность намерений их создателей: "Activeworlds -- это открытая акционерная компания, зарегистрированная на бирже NASDAQ. Мы получаем доходы, взимая плату с членов (граждан) наших виртуальных сообществ (миров)".

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

У гипотетического путешественника в 3D-мирах есть три варианта взаимодействия с Activeworlds -- стать гражданином, получить мир во владение или установить свой собственный сервер. Все зависит от целей, амбиций, знаний и финансовых возможностей. Получить гражданство в Activeworlds достаточно просто: платите $6,95 "в кассу" (по кредитной карточке или чеком) и вам предоставляется полный доступ к мирам, а также право владеть виртуальной собственностью. Гражданину разрешается моделировать сооружения в мирах, открытых для застройки, и закреплять их за собой, поддерживать отношения с другими гражданами путем отсылки сообщений и файлов, общаться в чатах, сохранять адреса понравившихся субъектов в контактном списке, выбирать аватар (графическую форму представления себя в виртуальном пространстве) по вкусу. Вместе с этим индивидуум получает право голосовать "за" или "против" нововведений (Feature Vote), участвовать в организациях по интересам, веселиться на онлайновых вечеринках, бесплатно консультироваться с сотрудниками компании, подавать новые идеи (Suggestion Box) и даже выступать с инициативами. Последнее похоже на предложения бизнес-плана для получения гранта или кредита. Соискатель пишет письмо в соответствии с шаблоном: кто будет делать проект, какие требуются ресурсы и т. д. Если проект прошел отбор, он получает статус Citizen Project и всестороннюю помощь от компании.

Наиболее известен проект AlphaWorld mapper. Программа была написана в 1999 г. Грэгом Релофсом (Greg Roelofs) и Питером ван дер Мюленом (Pieter van der Meulen). Идея заключалась в организации картографического сервиса -- виртуальный мир быстро разрастается, ориентироваться в нем довольно сложно, да и с научной точки зрения автоматизация сбора и сортировки данных о росте народонаселения системы представляет немалый интерес.

Если статус рядового гражданина вас не устраивает, есть возможность приобрести целый мир, в котором владелец обретает полную свободу: разрешается устанавливать параметры окружающей среды, создавать свой набор аватаров и других стандартных объектов, определять права граждан, населяющих или посещающих мир. Минимальная стоимость мира -- $69,95, цена зависит от размеров эмулируемой территории, количества потенциальных посетителей и допустимого числа граждан. Каждый год к уплаченному первоначальному взносу придется добавлять счет за услуги поддержки и хостинга, предоставляемые Activeworlds. Даже если вы инсталлируете мир на собственном оборудовании, придется оплатить поддержку, заключающуюся в обновлении программного обеспечения. Для закоренелых индивидуалистов предназначен Solserver -- обособленный от связанных между собой миров комплект ПО, устанавливающийся на выделенный сервер. Изоляционизм обойдется в $295 в год за мир размером 250 тыс. кв. м на 5 пользователей (одновременно находящихся в нем).

Если вам и целого мира мало -- примерьтесь к Galaxy- или Universe-серверу. Цены здесь начинаются от 2 тыс. долл. за инсталляцию плюс ежегодные взносы за обновления ПО в размере 40% первоначальной стоимости. Galaxy-серверы поддерживают только единичный мир, в то время как Uniserver позволит своему владельцу сотворить целое созвездие миров. Естественно, оба варианта предусматривают установку программ на собственные мощности владельца.

И наконец, для тех, у кого от обилия возможностей закружилась голова, имеется вариант попроще -- собственная простая 3D Homepage. На первых порах (30-дневный пробный период) свою фантазию разрешается истязать бесплатно. К услугам новичка или утомившегося профессионала набор средств быстрой разработки, элементарных объектов и тому подобная дребедень, облегчающая и ускоряющая процесс проектирования. Судя по описанию этого вида сервиса, стандартные элементы полезны, но не обязательно останавливаться только на них -- любые объекты, созданные пользователем, импортируются в домашнюю страницу без проблем. Но по окончании испытательного месяца за право сохранить свое творение на сервере системы придется платить -- $6,95 ежемесячно.

В качестве основного рабочего инструмента активно рекламируется ПО Caligari Truespace 3. Всего за $69,95 членам сообщества предлагается приобрести этот мощный, хотя и устаревший, пакет трехмерного моделирования. Полагаю, с таким подспорьем ни у кого не должно возникать вопросов относительно возможностей по созданию новых объектов.

Особый интерес вызывает настоящий научный проект, инициированный подразделением лондонского University College, -- Centre for Advanced Spatial Analysis (CASA). Сотрудник центра по имени Энди Смит (Andy Smith) организовал в недрах Activeworld мир-студию Collaborative Virtual Design Studio (CVDS), где любому студенту или служащему разрешается проводить собственные эксперименты. Уже в течение первых тридцати пробных дней удалось получить интересные результаты. В частности, после первоначального периода отстройки, во время которого можно было отследить архитектурные предпочтения и вкусы преподавателей колледжа, мир открылся для студентов. И надо сказать, лондонские ничем не отличаются от наших -- первое, что было обнаружено после дня открытых дверей, это следы массового вандализма.

Среди прочих интересных начинаний стоит отметить инициативу Shared Architecture, согласно которой любой участник проекта может отослать фотографии своего дома, и на их основании будет смоделировано трехмерное представление этого строения. Затем его разместят в общем мире среди прочих домов. Наиболее же впечатляющая затея -- Виртуальный Лондон. Группа сотрудников колледжа трудится сегодня над наборами аэрофотографий столицы Великобритании и потихоньку, дом за домом, воссоздает овеянный историей город на просторах виртуального мира. Пока это лишь разрозненные фрагменты, но вскоре туристы, которым не удалось достать визы или оплатить дорогостоящий тур, смогут выпить кружку английского эля в лондонских пабах... виртуально.

Для тех, кто еще не определился со своими желаниями, предназначен туристический режим -- загрузите бесплатный броузер и заходите на сервер. Побеседуйте с гражданами, осмотритесь, сконструируйте пробную 3D Homepage. Если ваш английский не слишком совершенен, помните: в Activeworlds существует "Русский мир", и встретить его обитателей можно в самых неожиданных местах.


WildTangent

3D-технологии в Web. Часть 1
WildTangent
Об этой перспективной разработке наш еженедельник уже писал, однако с тех пор технология приобрела новые возможности, что позволяет говорить о ее успешном развитии.

Основа WildTangent -- так называемый Web-драйвер. Фактически это относительно небольшой (~1 MB) модуль визуализации, снабженный API для Java и Java Script, а также взаимодействующий посредством COM-интерфейса с программами на VB, C, C++. Чтобы создать и анимировать трехмерную сцену в Web, необходимо написать код на Java или Java Script и внедрить его в HTML-страницу, размещенную в Internet. На сервер также придется загрузить всю предварительно обработанную графическую часть: модели в формате .X (стандартный формат DirectX), изображения в файлах png и jpg, звук в виде wav, mid. Чтобы Web-драйвер сумел ими воспользоваться, все следует конвертировать в специальные внутренние форматы, заодно громоздкие файлы будут упакованы утилитой WildCompress.

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

Наиболее впечатляющим новым элементом стала введенная недавно поддержка многопользовательских сред и игр. Соответствующий API пока предоставлен только программистам, пишущим на Java. В основе работы модуля лежит использование библиотек DirectX. Это позволило довольно просто реализовать новые возможности, а DirectPlay содержит практически все необходимые функции. Так что Web-драйвер выступает в данной ситуации в роли Web-интерфейса для этой библиотеки. Но так будет не всегда. WildTangent Multiplayer изначально задумывался как компонентная структура, так что о поддержке DirectPlay в документации говорится как об одном из первых модулей архитектуры. Впоследствии предполагается интегрировать и другие варианты организации многопользовательских систем.


Flatland 3DML

3D-технологии в Web. Часть 1
Flatland 3DML
Основной целью разработчиков языка 3DML являлось придание виртуальному движению в Сети подлинной массовости. Для этого в своем продукте они свели к минимуму все аспекты, связанные с узкой и малопопулярной областью конструирования объемных моделей. Отдельный мир в 3DML называется Spot, состоит он из бесконечного набора "этажей", каждый из них строго фиксированного размера. Создавая сцену, необходимо заполнить условные описания этажей (планы) текстовыми значками, обозначающими различные объекты. Таковые извлекаются из наборов (blockset), путь к которым необходимо указать предварительно. Над базовыми примитивами или геометрическими формами разрешается выполнять ряд стандартных действий, например ориентировать в нужном направлении, освещать или текстурировать.

Уже существуют наборы объектов, доступные для бесплатной загрузки с сайта Flatland, однако ничто не мешает любителям и профессионалам разрабатывать собственные модели. Написано несколько конвертеров для трансляции файлов из форматов RDS и DXF в текстовый формат BLOCK. Интерактивность виртуальной среды, что должно являться неотъемлемой частью любого Web-проекта, достигается за счет использования специального скриптового языка SimKin. Для создания простых ситуаций достаточно всего двух тегов класса Action -- "замена" и "выход". Первый работает в таких случаях, как открытие дверей, второй -- эмулирует эффект "смерти" путешественника по миру Spot.

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

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


По стопам VRML

3D-технологии в Web. Часть 1
Shout3D
Несомненно, приз за "системность подхода" в категории "альтернативное решение" должен быть отдан двум "бодрым" претендентам: Java3D от Sun Microsystems и X3D от Web3D Consortium. Последние, увидев просто катастрофический разброд в умах Web-разработчиков, вняли мольбам и решили сделать VRML более доступным и массовым инструментом. Проблема, видимо, была серьезней, чем казалось, если взбунтовались не только дизайнеры, но и программисты. Облегчить написание броузера VRML и призвана новая спецификация. Фактически это компонентная модель, позволяющая разработчикам реализовывать не весь спектр функций и примитивов, а лишь ту часть, которую они сочтут необходимой. В конечном итоге, идеология "разделяй и властвуй" поможет издавать специфические расширения VRML без того, чтобы переписывать заново все броузеры и плагины.

Обеспечить поддержку новоявленному стандарту взялись две амбициозные компании: blaxxun и Shout3D. Изюминка обеих технологий в отсутствии такого звена, как проигрыватель plug-in. Механизм визуализации реализован как набор Java-модулей, которые автоматически загружаются на клиентский ПК вместе с содержимым. Форму и комплектацию модуля определяет создатель сцены с помощью инструментальных пакетов ПО. Продукты обеих компаний имеют недостатки, к тому же они не реализуют весь набор функций, предусмотренных X3D. Зато есть возможность дописать собственный скрипт или подключить к визуализатору свое расширение.

Компания Sun Microsystems также не могла обойти вниманием наличие большого количества модулей визуализации трехмерных сцен для Web-броузеров, созданных с помощью ее детища -- языка программирования Java, и предприняла попытку обобщить такой подход. Так появилась Java3D -- граф-ориентированное расширение для этого популярного языка. На первый взгляд Java3D чрезвычайно напоминает VRML, здесь главенствует система связанных или, если так можно выразиться, вложенных объектов, определяющих в совокупности сцену.

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