Главная страница «Первого сентября»Главная страница журнала «Информатика»Содержание №2/2008


Предлагаю коллегам

Язык трехмерного моделирования VRML и его образовательные возможности

Часть 1. Любуемся результатами технологии VRML

VRML — это танцующий медведь. Всех поражает не то, как он танцует, а то, что он танцует вообще [1].

Алексей Лебедев1

Другой трехмерной технологии, позволяющей делать такие вещи, не существует. ...Одна из бед VRML была в том, что на нем пытались мультфильмы делать, всяческие entertainment, а надо было гайки и болты рисовать — с этого и денег больше, и делать проще [2].

Максим Кононенко2

Что такое VRML?

VRML (Virtual Reality Modeling Language) часто неявно считается некоторым дополнением к HTML, позволяющим создавать на web-страницах трехмерные виртуальные миры. Исторически такая точка зрения справедлива, поскольку именно в Интернете планировалось разместить первые VRML-миры. В то же время, VRML есть вполне самостоятельный язык описания объемных объектов, который может использоваться вне Сети. В частности, большинство программ трехмерного моделирования могут сохранять объекты и сцены в формате VRML; особенно часто это применяется в САПР. Так что интуитивное представление, что VRML — это “то же самое, что HTML, только для описания трехмерных объектов”, явно уводит нас в сторону от действительности.

Примечание. Первоначально две последние буквы в названии предлагалось, как и у HTML, расшифровывать Markup Language, т.е. язык разметки. Но довольно быстро расшифровка была заменена на действующую сейчас, лишний раз подтверждая тот факт, что трехмерное моделирование и разметка текста — вещи существенно разные.

Используя файлы текстового формата3, язык VRML позволяет описать не только геометрические свойства объектов в трехмерном пространстве, например, расположение и форму сложных поверхностей и многогранников, но и физические данные об их цвете, текстуре, блеске, прозрачности, источниках освещения и так далее. Как и в HTML, графические 3D-компоненты можно связать с другими web-страницами или новыми VRML-файлами Сети. Кроме того, в качестве реакции на действия пользователя или другие внешние события, например таймеры, могут появляться движение, звуки, освещение и другие аспекты виртуального мира. Особый компонент Script Node позволяет добавлять программный код (например, Java или JavaScript).

VRML-файл обычно принято называть миром (world), поэтому он имеет расширение wrl, например, city.wrl. Виртуальные миры способны выглядеть весьма впечатляюще (примеры будут описаны далее).

По своей сути VRML, скорее, можно назвать языком программирования, причем ярко выраженным объектно-ориентированным языком. Говоря о нем, во многом более уместно проводить параллели не столько с HTML, сколько с Java. Кроме того, как и Java, VRML платформенно-независим, и область его применения точно так же не ограничивается технологиями Internet/Intranet, для которых он изначально разрабатывался.

Языку VRML уже более десяти лет (в качестве даты его рождения принято называть 1994 год, когда на конференции по World Wide Web были впервые сформулированы основные концепции этого языка). И хотя за это время ему не удалось стать чем-то широко распространенным, он тем не менее продолжает существовать и использоваться, имея, несмотря на постоянные споры и критику, своих ярых поклонников. Приведенные в качестве эпиграфов полярные по оценке цитаты ярко подтверждают это. Хорошее представление о статусе VRML дает нижеследующая цитата из введения к замечательной статье [3]:

“Технология создания виртуальных миров в Internet успешно развивается и совершенствуется, но как-то полуподпольно по сравнению с тем же Java. Если воспользоваться терминологией из мира музыки, то язык VRML имеет культовый статус, т.е. имеет устойчивую армию приверженцев, не имеющую ярко выраженной тенденции к изменению численности как в меньшую, так и в большую сторону. Вероятных причин можно назвать несколько, например, повышенные требования к производительности компьютеров, на которых работает интерпретатор VRML. Но единственным, по-настоящему фатальным препятствием на пути распространения этой технологии может стать только невозможность ее освоения “с ходу”. Сделать более-менее сносную страницу Web способен любой, кто знаком с текстовым редактором и готов потратить часок на изучение основ HTML, создать же что-либо привлекательное в виртуальном пространстве, очевидно, не так просто”.

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

Данная статья написана специально для газеты “Информатика” и имеет строго определенную направленность. Она ни в коей мере не претендует на роль полного описания языка и не ставит целью научить создавать эффектную виртуальную реальность. Статья направлена лишь на то, чтобы показать и объяснить, как весьма простыми средствами VRML удается создать несложные, но полезные для преподавания иллюстрации, в частности, чертежи к задачам по стереометрии, модели простейших молекул для уроков химии и физики или иллюстрации взаимного расположения небесных тел в астрономии. Подобное вполне по силам среднестатистическому ученику! Конечно, более заманчиво выглядит идея самостоятельного создания трехмерных сцен виртуальной реальности для уроков истории или географии, но в школьных условиях это выглядит, простите за невольный каламбур, нереально.

Публикация естественным образом разделяется на две части: “Любуемся результатами технологии VRML” и “Понимаем и создаем VRML”. Мы надеемся, что читатели проявят интерес не только к первой из них, ибо по замыслу она является лишь эффектным введением ко второй, создавая необходимую стойкую мотивацию к знакомству с основами языка.

При более внимательном знакомстве со статьей (здесь главным образом речь идет о второй части) читатели газеты смогут обнаружить в ней некоторые существенные педагогические аспекты, связанные с подходами к изложению сложного материала. В Интернете можно найти множество описаний VRML, которые построены по схемам “36 узлов VRML 1.0” или “VRML в примерах”. Автор считает, что ни один из этих подходов не является с образовательной точки зрения эффективным, и пытается провести изложение в другой манере, которую полагает гораздо более подходящей и продуктивной, хотя ее применяют гораздо реже. Несмотря на субъективность описываемой методики изложения, видимо, учителям стоит обратить внимание и на этот аспект публикации.

Примечание. Поиск материалов по VRML в Интернете в очередной раз показал некоторые характерные для русского сегмента Сети особенности: материалы многократно дублированы, имеется 3–4 самоучителя, кочующие с сайта на сайт, причем источник и авторство материалов, как правило, не указываются. Тем приятнее бывает обнаружить что-нибудь подлинно индивидуальное и глубокое, не являющееся переводом стандартной документации с английского языка. Например, уже цитировавшуюся ранее статью Александра Авдуевского [3] или прекрасный сайт Андрея Кузина “VRML шаг за шагом” [4].

Краткая история VRML

VRML был создан Марком Песе (Mark Pesce) и Энтони Паризи (Anthony Parisi), которым позднее помогали Гэвин Белл (Gavin Bell) и Брайан Белендорф (Brian Behlendorf) [5]. Марк и Тони встретились в декабре 1993 года. Они оба работали над созданием трехмерного интерфейса для Web. И хотя для этого требовался новый язык, им не хотелось далеко уходить от HTML; кроме того, они пытались не изобретать свой язык с нуля. Рассмотрев несколько существующих в то время технологий, они остановили свой выбор на Open Inventor ASCII File Format компании Silicon Graphics Inc. (SGI). Добавив к реалистическим возможностям описания трехмерных сцен в Open Inventor сетевые расширения, авторы получили то, что им требовалось.

К середине февраля 1994 года была создана программа (ее назвали Лабиринт), которая на дисплее компьютера рисовала и закрашивала трехмерный банан. Месяцем позже Марк был приглашен на первую международную конференцию по World Wide Web в CERN в Женеве. После презентации на ней своего нового языка он совместно с Брайаном Белендорфом создал web-сайт с первым описанием VRML, что вызвало не менее тысячи откликов заинтересованных поклонников, которые горячо поддержали новую инициативу. Так начиналась эра VRML. Официальная презентация языка состоялась 3 апреля 1995 года, а спецификация версии 1.0 последовала в мае того же года; она была разработана Г.Беллом, Э.Паризи и М.Песе.

В определенном смысле версия 1.0 носила черновой характер: в ее спецификацию вообще не вошли команды для создания динамических VRML-сред, прежде всего потому, что авторы хотели закончить версию языка и запустить ее в работу максимально быстро. В мае 1996 года последовала версия 2.0 (первое время ее часто называли “Подвижные миры” — Moving Worlds, — подчеркивая тем самым ее главные преимущества), где было добавлено множество дополнительных возможностей, некоторые из которых являлись принципиально новыми:

  • дополнительные элементы управления геометрией и цветовые свойства форм;
  • атрибуты освещенности, такие, как Туман (fog);
  • узлы группировки, которые поддерживают объект Определение столкновения (collision detection);
  • информация о сцене для браузера;
  • определение и повторное использование объектов, а также эффективное добавление к сценам узлов из “библиотек”, используя прототипы PROTO и EXTERNPROTO;
  • возможности для организации движения объектов;
  • интерполяция цвета, позиции, ориентации и т.д. при создании динамических эффектов;
  • сенсоры для запуска этих эффектов;
  • поддержка источников звука.

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

Наконец, еще через год после некоторого несущественного усовершенствования языка, его состояние было зафиксировано в версии VRML97 (стандарт ISO/IEC 14773), которая явилась наивысшей точкой его развития.

Стандарты всех версий языка легко найти в Интернете, поэтому здесь мы не будем приводить ссылок.

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

Позднее появлялись новые языки для описания 3D-объектов, но они не оставили такого следа, как VRML. В феврале 2002 года в США на Седьмой международной конференции трехмерных web-технологий “3D Web Technology” был впервые представлен расширяемый язык описания трехмерных сцен X3D (международный стандарт ISO/IEC FCD 19775:200x). Название языка X3D происходит от Extensible4 3D, а сам он интегрирует в себе VRML и XML и имеет модульную конструкцию. Этот язык рассматривается как преемник VRML, так и не сумевшего широко внедриться в повседневную жизнь.

Завершая наш краткий исторический экскурс, стоит также дополнительно упомянуть о формате MPEG4. Это не просто формат кодирования видеофильмов, но и представления любой мультимедийной информации, включая трехмерную. Будучи мощным и комплексным форматом, в трехмерной части MPEG достаточно близок к VRML.

Во всех примерах нашей статьи мы будем пользоваться синтаксисом версии VRML97.

Впечатляющие примеры

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

В большинстве популярных публикаций про VRML мелькают фразы о многочисленности примеров в Интернете. Вот типичный выбранный наугад пассаж:

“Уже существуют сотни VRML-узлов, и каждый день появляются хотя бы несколько новых, изменяющих представление о Сети и удивляющих своими возможностями даже далекого от мировой паутины человека. Уже сегодня у посетителей появляется реальная возможность прогуляться по улицам Сан-Франциско, Рима или Парижа, посетить наиболее известные музеи изящных искусств планеты, отвлечься от мира повседневного, целиком и полностью погружаясь в новое измерение”.

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

Во-первых, как мы помним из исторического экскурса, пик популярности VRML имел место примерно 10 лет назад. В результате многие ссылки, например на впечатляющие экскурсии по заграничным городам, сейчас оказываются “битыми”, т.е. web-страницы, на которые ведут ссылки, давно перестали существовать. Слова “заграничный” и “давно” в предыдущем предложении не являются существенными: неработающими, в частности, оказались и ссылки на виртуальный Петербург5, посвященные 300-летию города, которое, как мы помним, было совсем недавно.

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

В-третьих, wrl-файлы имели разные версии, что также обещанных виртуальных экскурсий не облегчало. Кроме того, опыт их просмотра показал, что некоторые программы отдельные узлы отображают некорректно или вообще игнорируют. Так, например, один из бесплатных автономных просмотрщиков, который я использовал, отказывался отображать большинство (но не все!) VRML-сцен версии 2.0, но неплохо справлялся с версией 1.0. При этом он начисто игнорировал все узлы вида AsciiText версии 1.0 и тем более Text версии 2.0. Добавлю, что снеговик, которого мы “изготовим” в качестве одного из примеров во второй части публикации, в данном вьюере вместо сфер оказывался состоящим из многогранников с весьма небольшим числом граней, т.е. был “страшно угловатым”.

Примечание. VRML является языком, чувствительным к регистру символов. Поэтому как бы ни странно выглядело написание AsciiText, оно сделано в полном соответствии с синтаксисом!

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

Тем не менее значительные усилия, как правило, вознаграждаются. Не был исключением и мой поиск, в результате которого я попал на сайт “Виртуальный Мамаев курган” [6]. Сайт сразу привлек внимание профессиональным дизайном, а также наличием сравнительной таблицы по применению плагинов для просмотра объемных изображений, причем все характеристики ПО были приведены по состоянию на сентябрь 2007 г. (таблица эта представляет самостоятельный интерес и будет помещена в следующем разделе статьи).

Загрузив рекомендуемое программное обеспечение с сайта [7], я был приятно удивлен простотой его инсталляции. В результате без всяких дополнительных усилий я зашел на “Мамаев курган” и весь вечер там бродил, вспоминая свои реальные посещения города-героя Волгограда.

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

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

Расположенная в правом нижнем углу карта помогает не запутаться в поворотах, что на некоторых этапах случается.

Если вы не поленитесь загрузить и инсталлировать еще один 3D-плагин — Cortona3D фирмы Parallel Graphics [8], то сможете познакомиться с несколькими не менее интересными трехмерными проектами, о которых уже упоминалось выше [2] (более современные ссылки на них лучше брать с сайта [9]).

Примечание. Установку указанного плагина удобнее произвести с любого сайта, где он используется: в этом случае процедура будет максимально простой. Отмечу, что Blaxxun Contact и Cortona3D уживались в моем компьютере вполне дружно.

Вот детальная сцена подъема подводной лодки “Курск”. На рисунке приведен атомный крейсер “Петр Великий”, который принимал участие в этих работах. Сама лодка на данном этапе виртуального процесса пока лежит на дне, поэтому показать здесь ее вид по полиграфическим причинам было бы сложно.

На следующем рисунке вы видите один из нескольких возможных видов трехмерной демонстрации хода операции по затоплению российской орбитальной станции “Мир” [10]. Изображен момент включения двигателя для придания станции тормозящего импульса с целью организации ее схода с орбиты. Цифровые данные в правой части экрана свидетельствуют о том, что это не просто красивый объемный “мультфильм”, но честное физическое моделирование процесса: учитываются и контролируются параметры орбиты, скорость космического комплекса и прочие параметры моделируемой реальности.

А вот еще пример качественно выполненной трехмерной модели, взятый с сайта другого 3D-просмотрщика [11] (его самого, кстати, инсталлировать не удалось: он что-то требовал дополнительно поискать на сайте Microsoft). Перед нами — детализированное трехмерное помещение, в котором также можно перемещаться, осматривая находящиеся в комнате предметы. Обращает на себя внимание имитация в виртуальном мире многочисленных источников света — в комнате, кроме нескольких окон, есть еще электрическое освещение.

Взгляните также еще на одну иллюстрацию из этой серии — Виртуальный выставочный центр [12]. На нее обязательно стоит посмотреть как на некоторую индексную страничку 3D-сайта: щелкая по висящим на стене картинам, можно переходить к соответствующим материалам (в идеальном случае, конечно, тоже трехмерным!).

Вообще трехмерные выставки, галереи и музеи — это весьма распространенная в Интернете тематика. Я убедительно советую вам прочитать обзор [13], где описаны виртуальные музейные технологии и интересные примеры виртуальных музеев. К сожалению, иллюстрации самого обзора не являются объемными, а большинство ссылок “не отвечает”.

Тем, кто интересуется астрономией и освоением космоса, вероятно, стоит посетить сайт [14]. Его входная страничка содержит множество ссылок на объемные модели, связанные с Марсом и Солнечной системой. Ниже приводится пример одного из фрагментов, на котором можно наблюдать движение планет. К сожалению, весь контент дается на английском языке, хотя сайт явно русский, использующий зарубежные источники.

А поклонников химии и учителей этого предмета наверняка заинтересуют объемные модели молекул с сайтов [15, 16]. Вот, на мой взгляд, хороший пример, демонстрирующий структуру алмаза и графита. Как известно, они состоят из одних и тех же атомов, но разная пространственная структура придает им принципиально различные свойства.

Большой архив всевозможных VRML-файлов можно найти на сайте [17]. Сайт весьма запутанный по навигации, поэтому в тексте главной страницы поищите ссылку на “библиотеку готовых VRML-объектов и сцен”.

Наконец, никак нельзя пройти мимо виртуальной трехмерной стройплощадки [18].

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

В заключение отметим, что проведенный отбор иллюстраций VRML-миров не претендует на полноту и во многом определяется субъективными факторами: интересами автора статьи и использованными им поисковыми запросами6.

Необходимое ПО

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

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

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

Чтобы его “оживить”, на него накладываются поверхности, для реалистичности применяя к ним те или иные методы. Например, можно преобразовать простую плоскую поверхность в каменную стену с египетскими иероглифами, задав для нее подходящее растровое изображение, — этот процесс называется “наложение текстуры” (texture mapping). Сходный процесс, “наложение рельефа” (bamp mapping), позволяет вытягивать или гравировать поверхность, превращая ее в пересеченную местность с холмами и оврагами. В дальнейшем сцену можно улучшить, добавив источники освещения, задав расположение камеры или оживив фон изображения растровой картинкой либо текстурой. После этого можно приступать к рендерингу сцены. Рендеринг — это процесс, в результате которого двухмерная иллюстрация переходит в новое, трехмерное качество, наполненное правильным содержанием по всем трем плоскостям. Существует несколько способов рендеринга изображений, например, метод сканирования строк (scan-line) и метод трассировки лучей (ray tracing). Заметим, что создание трехмерной картины требует проведения огромного количества вычислений, причем даже для вполне современных компьютеров и не слишком сложных сцен речь может идти о часах машинного времени.

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

Примечание. Если вы хоть немного интересовались работой трансляторов, то, читая предыдущее описание, не могли не вспомнить термины компиляция и интерпретация. Компилятор преобразует всю программу в некоторый эквивалент, после чего он уже не нужен. Интерпретатор, напротив, работает с программой постоянно, обрабатывая те ее части, которые в данный момент требуются. В этом смысле ПО для демонстрации VRML аналогично интерпретатору.

Из приведенной выше теории следует несколько (в основном неприятных) выводов. Во-первых, для просмотра VRML, особенно в динамике, требуется хороший компьютер (он должен успевать быстро “пересчитывать” картинку). Во-вторых, процессы создания трехмерного изображения нельзя сильно усложнять, а любое упрощение ради ускорения неизбежно ведет к ухудшению качества. Наконец, последний, имеющий самое непосредственное отношение к нашей теме, вывод заключается в том, что качество изображения (а иногда даже сам вид изображения!) во многом зависит от применяемого программного обеспечения и заложенных в него алгоритмов.

Перейдем к непосредственному выбору программного обеспечения. Как уже отмечалось ранее, хорошая сравнительная таблица ПО для просмотра VRML-миров, отражающая современное состояние в данной области, имеется на сайте [6].

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

Обозначения: free — бесплатно; free* — условно бесплатно; trial — бесплатный испытательный период; Netscape-like — группа браузеров Netscape Navigator, Mozilla, Firefox, Opera; standalone — отдельное приложение, независимое от web-браузера; GPL — лицензия на свободное программное обеспечение.

 

Если вы заинтересовались отображением VRML более серьезно и ваши цели идут дальше, чем просто разделить с автором удовольствие от посещения описанных выше объемных миров, то, возможно, вам стоит изучить более масштабную таблицу подобного ПО [19]. К сожалению, она находится на англоязычном сайте, но непосредственно с таблицей в состоянии разобраться любой владеющий компьютерной терминологией пользователь.

Те читатели, которые выбрали для себя VRML-плагин Blaxxun Contact, могут дополнить его весьма интересным по идеологии “автономным” вьюером [20]. Идея его работы следующая. Установленный на вашем компьютере blaxxun Contact для своих нужд создает некоторый интерфейс API, которым и пользуется указанный просмотрщик. Проще говоря, данная программа способна работать без браузера, но при наличии установленного вышеуказанного плагина. Справедливости ради следует сказать, что вьюер [20] имеет несколько больше возможностей, чем браузер.

Интересными возможностями обладает вьюер Deep View [21]. Он не просто отображает VRML-сцену, что по определению делает любая программа такого класса, не только позволяет выделить отдельные объекты, из которых состоит объемное изображение (это тоже делают многие VRML-просмотрщики), но и весьма изящно предоставляет возможность отключать с помощью флажков ненужные элементы. В результате пользователь может выделить только те объекты мира, которые ему понравились, и даже сохранить такой “подправленный” мир, правда, в файле со специальным форматом.

Помимо программных средств для просмотра виртуальных миров, существует проблема ПО для их создания. Как вы, конечно, поняли, мы теперь говорим о той категории читателей, которые хотят не просто путешествовать по чужим мирам, но и создавать свои. Здесь тоже, как говорится, возможны варианты. Простейшие демонстрационные объемные сцены можно написать в обычном текстовом редакторе вроде Блокнота. В частности, примеры, разработанные для этой публикации, вполне можно реализовать на базе данной примитивной технологии. Для создания небольших миров уже потребуются программы-инструменты. В качестве простейшего из них автор хотел бы порекомендовать бесплатную программу под названием “Белая дюна” [22]. Программа имеет удобный интерфейс, который близок по структуре к итоговому VRML-тексту (см. левое поле на приведенном виде экрана).

Приемы работы с интерфейсом программы очень похожи на стандартные: например, правое поле до боли напоминает инспектор объектов Delphi или Visual Basic. Поле общего вида в центре чувствительно к мыши, так что объемные компоненты можно дополнительно перемещать “на глазок”, без всякого расчета координат. В Интернете имеется инструкция на русском языке. С моей точки зрения, удобством программы является также то, что она представляет собой единственный и автономный файл, прекрасно запускающийся безо всякой инсталляции, черта, которая в последнее время почти не встречается (а так порой хочется вспомнить старый MS-DOS, где установка ПО заключалась в простом копировании!). К сожалению, есть и недостаток — разработка программы еще не совсем завершена, так что не все сложные функции работают. Впрочем, один из наших примеров, к которым мы скоро перейдем, как видно из рисунка, в редакторе вполне удовлетворительно себя чувствует.

Чем больше ваши притязания в строительстве виртуальных миров, тем сложнее программное обеспечение, которое вам при этом потребуется. Вполне возможно, что бесплатного ПО вам найти уже не удастся. Заметим, что широкий набор средств для VRML-разработчика предлагает (к сожалению для системы образования, не бесплатно) фирма Parallel Graphics, о которой мы неоднократно вспоминали в связи с примерами сложных и впечатляющих трехмерных проектов. Существует также много других предложений, включая известные 3D-Max и Auto CAD, которые способны сохранить результаты работы в формате VRML.

На этом вводную часть публикации можно закончить. Надеюсь, под влиянием виртуальных экскурсий читатели полны решимости освоить основы VRML. А на рабочих столах их компьютеров уже красуются ярлыки 2–3 понравившихся им программ для обработки VRML. Для знакомства со второй половиной публикации все это пригодится.

1. Хайтина Н. Алексей Лебедев: “VRML — это танцующий медведь”. http://netoscope.narod.ru/profile/2001/04/06/1978.html.

2. Травин А. Максим Кононенко: “У публики любовь к некрофильским проектам”. http://netoscope.narod.ru/profile/2001/08/28/3268.html.

3. Авдуевский А. По следам газонокосильщика. LAN, 1997, № 1. http://www.osp.ru/lan/1997/01/132452/.

4. Кузин А. VRML шаг за шагом. http://www.firststeps.ru/www/vrml/vrml1.html.

5. Джамса К., Лалани С., Уикли С. Программирование в Web для профессионалов. Минск: ООО “Попурри”, 1997, 632 с.

6. Виртуальный Мамаев курган. http://www.volgograd.ru/mamayev-kurgan/.

7. Blaxxun Contact. http://www.blaxxun.com/.

8. Cortona3D Viewer. http://www.cortona3d.com/cortona.

9. Event Modeling. http://www.parallelgraphics.com/products/showroom/event/.

10. Парфенов С. ParallelGraphics устраивает падение виртуального “Мира”. http://netoscope.narod.ru/news/2001/03/13/1753.html.

11. Octaga Player. http://octaga.com/download_octaga.html.

12. Виртуальный выставочный центр. http://www.3dexpo.ru/.

13. Холюшкин Ю.П., Воронин В.Т., Костин В.С., Ильиных М.Ю., Семенов В.М., Горбунов Е.В., Подчасов А.Ю. Технологии виртуальной реальности в секторе археологической теории и информатики. http://www.sati.archaeology.nsc.ru/Home/pub/Data/inf11/?html=ch31hol.htm&id=2133.

14. Mars Pathfinder. Virtual Reality Models and Animations of the Pathfinder Mission. http://arc.iki.rssi.ru/jplmirror/mars/vrml/vrml.html.

15. Альбом VRML-моделей и Flash-иллюстраций. http://www.chemistry.ssu.samara.ru/album.htm.

16. Архивы VRML-объектов и сцен. http://max-observer.chat.ru/.

17. User-Controlled VRML Simulation of an Excavator, Tower Crane, and Dumptruck. http://cic.nist.gov/vrml/equip.html.

18. VRML Plugin and Browser Detector. http://cic.nist.gov/vrml/vbdetect.html.

19. Browse3D Free VRML viewer. http://3dtrue.com/vrml/8.html.

20. Deep View. http://www.righthemisphere.com/products/deeppub/DeepPub_View/index.html.

21. White Dune. http://vrml.cip.ica.uni-stuttgart.de/dune/.

Продолжение следует


1 Младший брат известного web-дизайнера Артемия Лебедева; живет и работает в США, является одним из соучредителей компании Viewpoint, специализирующейся на трехмерных технологиях.

2 Известен также как Мистер Паркер; автор и/или участник интернет-проектов “Конец станции "Мир"”, “Убить Пушкина”, “Виртуальный Мавзолей Ленина”, “Подъем подводной лодки "Курск"” и многих других.

3 Для того чтобы передать их по сети за меньшее время, часто используется сжатие.

4 Расширяемый.

5 Соответствовавший юбилейному сайту URL ныне принадлежит некоему ООО.

6 Материалов слишком много, поэтому в таких случаях попадающие на первые позиции могут существенно зависеть от формулировки запроса.

Е.. А.. Еремин,
г. Пермь

TopList