Что такое код vrml


Содержание

Что такое код vrml

Язык VRML (Virtual Realty Modelling Languagy) предназначен для описания трехмерных изображений и оперирует объектами, описывающими геометрические фигуры и их расположение в пространстве.

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

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

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

В VRML приняты следующие единицы измерения:

  • Расстояние и размер: метры
  • Углы: радианы
  • Остальные значения: выражаются, как часть от 1.
  • Координаты берутся в трехмерной декартовой системе координат (см. рис.)

Как уже говорилось, Vrml-документ представляет собой обычный тестовый файл. Для того, чтобы VRML-браузер распознал файл с VRML-кодом, в начале файла ставится специальный заголовок — file header:

Такой заголовок обязательно должен находиться в первой строке файла, кроме того, перед знаком диеза не должно быть пробелов.

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

Эти фигуры называются примитивами (primitives). Набор примитивов невелик, однако комбинируя их, можно строить достаточно сложные трехмерные изображения. Например, вот такие:

Рассмотрим поподробней каждый из примитивов.

Возможные параметры: width — ширина, height — высота, depth — глубина.

Параметр у сферы только один, это radius.

Возможные параметры: bottomRadius — радиус основания, height — высота, parts — определяет, какие части конуса будут видны. Параметр parts может принимать значения ALL, SIDES или BOTTOM.

Для цилиндра можно задать параметры radius и height. Кроме того, с помощью параметра parts для цилиндра можно определить будут ли отображаться основания цилиндра и его боковая поверхность. Параметр parts может принимать значения ALL, SIDES, BOTTOM или TOP.

Цвет и текстура

Цвет фигуры, определяется с помощью объекта Material.

Параметры ambientColor, diffuseColor, specularColor и emissiveColor управляют цветами и указываются в палитре RGB (красный, зеленый и голубой), причем первая цифра определяет интенсивность красного цвета, вторая — зеленого, а третья — синего.

К примеру, синий кубик, может быть описан следующим образом:

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

Для имитирования различных поверхностей в VRML существует объект Texture2.

В качестве текстуры легче всего использовать обычный графический файл, например, в GIF-формате. В таком случае для «натягивания» текстуры на трехмерное изображение нужно только указать путь к файлу в параметре filename объекта Texture2.

Параметры wrapS и wrapT могут принимать значения REPEAT или CLAMP, и управляют натягиванием текстуры по соответственно горизонтальной и вертикальной осям.

Положение объектов в пространстве

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

Узел Translation определяет координаты объекта:

Как видите, третий кубик вовсе не совпадает с первым, хотя в в узле Translation указаны те же координаты.

В VRML 1.0 принято следующее правило: узлы, модифицирующие свойства фигур (Translation, Material и т.п.), действуют на все далее описанные фигуры.

Чтобы ограничить область действия модифицирующих узлов, фигуры необходимо сгруппировать с помощью узла Separator.

Узел Separator работает как контейнер, он может содержать любые другие узлы, и основным его предназначением является именно ограничение области действия узлов типа Translation и Material.

Сравните следующий пример с предыдущим:

Хотя в примере описано три кубика, мы видим только два, так как второй и третий совпадают.

Вообще говоря рекомендуется всегда и везде использовать узел Separator. Он не только избавит от ошибок, связанных с относительностью координат, но и сделает VRML-код более простым и понятным.

Вращение

Для вращения фигур вокруг осей координат применяется узел Rotation.

Первые три цифры определяет будет ли осуществлен поворот вокруг соответственно осей x, y и z, а четвертая задает угол вращения в радианах. В приведенном выше листинге поворот осуществляется вокруг оси y на 90 градусов.

Углы в градусах Радианы
30 0.52
45 0.78
60 1.04
90 1.57
180 3.14
270 4.71

Составим букву T из двух цилиндров. По умолчанию цилиндр ориентирован вертикально (см. рисунок). Поэтому для успешного выполнения задачи повернем его вокруг оси z на 90 градусов.

Масштабирование

Узел Scale масштабирует фигуры по одному или нескольким измерениям. Три цифры, стоящие после параметра scaleFactor определяют коэффициенты масштабирования относительно осей x,y и z.

следующем примере, узел Scale сжимает сферу по оси x, и из сферы получается эллипсоид.

Определение собственных объектов

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


Объект описывается одним из способов:

Для того, чтобы вставить в VRML-файл ранее определенную фигуру, используется команда USE

Создадим VRML-файл, описывающий стул, при этом ножку стула опишем как объект LEG:

Как видите, нам не понадобилось описывать каждую ножку в отдельности — в результате объем VRML-кода стал меньше, а сам код более читабельным.

Еще один способ уменьшить размер VRML-файла — вставлять фигуры из другого файла.

Это позволяет делать узел WWWInline:

Параметр name — это путь к файлу, параметры bboxSize и bboxCenter не обязательны и показывают пользователю размеры и положение вставляемого объекта, пока объект подгружается.

Вместо заключения , хочется обратить Ваше внимание на две особенности VRML, незнание которых сильно затруднит создание VRML-документов вручную.

1. Все описания узлов и параметров в VRML регистрозависимы. Если Вы используете буквы неправильного регистра — то VRML-браузер просто проигнорирует такое описание.

2. В VRML имеет огромное значение порядок описания узлов.

Документация

Язык моделирования виртуальной реальности (VRML)

Отношение VRML и X3D

Интерфейс X3D (Xtensible 3D) является преемником интерфейса VRML (Virtual Reality Modeling Language). Интерфейс X3D поддерживает функции VRML. X3D также обеспечивает несколько расширений VRML.

Для получения дополнительной информации см. Поддержку X3D.

Можно использовать Язык моделирования виртуальной реальности (VRML), чтобы отобразить 3D объекты в инструменте просмотра VRML. Simulink ® 3D Animation™ поддерживает VRML97.

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

Продукт Simulink 3D Animation использует технологию VRML97 для 3-D визуализации.

Поддержка VRML

Языком моделирования виртуальной реальности (VRML) является стандарт ISO, который открыт, основан на тексте, и использует ориентированный на WWW формат. Вы используете VRML, чтобы задать виртуальный мир, который можно отобразить со средством просмотра виртуального мира и подключением к модели Simulink.

Программное обеспечение Simulink 3D Animation использует многие расширенные функции, заданные в текущей спецификации VRML97. Стандартом является ISO/IEC, 14772-1:1997, доступный от http://www.web3d.org/documents/specifications/14772/V2.0/part1/javascript.html . Этот формат включает описание 3-D сцен, звуков, внутренних действий и привязок к WWW.

Программное обеспечение анализирует структуру виртуального мира, определяет, какие сигналы доступны, и делает их доступными от MATLAB ® и окружения Simulink.

Программное обеспечение Simulink 3D Animation гарантирует, что изменения, внесенные в виртуальный мир, отражаются в интерфейсах Simulink и MATLAB. Если вы изменяете точку зрения в своем виртуальном мире, это изменение происходит в свойствах объектов vrworld в интерфейсах Simulink и MATLAB.

Программное обеспечение включает функции для получения и изменения свойств виртуального мира.

Примечание

Некоторые миры VRML автоматически сгенерированы в VRML1.0. Однако продукт Simulink 3D Animation не поддерживает VRML1.0. Спасите эти миры в текущем стандарте для VRML, VRML97.

Для платформ PC можно преобразовать миры VRML1.0 в миры VRML97 путем открытия миров в Ligos ® V-Realm Builder и сохранения их. V-Realm Builder поставляется с версией PC программного обеспечения. Другие коммерчески доступные программы могут также выполнить VRML1.0 к преобразованию VRML97.

Совместимость VRML

Продукт Simulink 3D Animation в настоящее время поддерживает большинство функций VRML97 со следующими ограничениями:

Сервер Simulink 3D Animation игнорирует VRML узел Script , но это передает узел инструменту просмотра VRML. Передача узла позволяет вам запускать скрипты VRML на стороне средства просмотра. Вы не можете запустить их на сервере Simulink 3D Animation .

В соответствии со спецификацией VRML97, Средство просмотра Simulink 3D Animation игнорирует файлы BMP. В результате структуры сцены VRML иногда отображаются неправильно в Средстве просмотра Simulink 3D Animation . Чтобы отобразить структуры сцены правильно, замените все файлы структуры BMP в сцене VRML с PNG, JPG или эквивалентами GIF.

Для полного списка узлов VRML97 обратитесь к спецификации VRML97.

Система координат виртуального мира

Примите системы координат во внимание когда это необходимо к:

Отобразите объект виртуального мира в особом положении.

Переместите виртуальный мир.

Модели не-VRML экспорта от Инструментов CAD (включая CATIA) и робот визуальные представления (файлы URDF), чтобы использовать с Simulink 3D Animation .

Имейте виртуальный мир, взаимодействуют с MATLAB или Simulink.

Система координат VRML отличается от систем координат Aerospace Blockset™ и MATLAB. VRML использует систему мировой координаты : ось Y указывает вверх, и места оси z возражает ближе или дальше от передней стороны экрана. Чем больше значение оси z, тем ближе объект появляется к средству просмотра. Понимание системы координат важно, когда вы взаимодействуете с различными системами координат. Simscape™ Multibody™ использует ту же систему координат в качестве VRML.

Вот некоторые концепции системы координат ключа VRML:

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

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

Модули измерения — Все длины и расстояния измеряются в метрах , и все углы измеряются в радианах .


Simulink 3D Animation обеспечивает набор функций, которые могут помочь вам преобразовать между различными представлениями ориентации на пробеле. Примером координатной функции преобразования является vrrotmat2vec , который преобразовывает вращение от матрицы до представления угла оси.

Для примера использования глобальных координат в модели Simulink 3D Animation смотрите, что Манипулятор Перемещает Загрузку с Использованием Глобальных координат.

Формат файла VRML

У вас не должно быть существенного знания формата VRML, чтобы использовать инструменты разработки VRML, чтобы создать виртуальные миры. Однако элементарные знания описания сцены VRML помогают вам создать виртуальные миры эффективнее. Элементарные знания также дают вам хорошее понимание того, как можно управлять элементами виртуального мира с помощью программного обеспечения Simulink 3D Animation .

Для получения дополнительной информации смотрите Ссылку VRML97 в https://www.web3d.org . Много специализированных книг VRML могут помочь вам понять концепции VRML и создать ваши собственные виртуальные миры. Для получения дополнительной информации о VRML, обратитесь к соответствующей сторонней книге VRML.

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

Поле Представляет поле в сцене.

Transform — Задает положение, шкалу, ориентацию шкалы, вращение, перевод и дочерние элементы его поддерева (группирующий узел).

Материал Соответствует материалу в сцене.

DirectionalLight — Представляет подсветку в сцене.

Fog — Позволяет вам изменять среду оптические свойства.

ProximitySensor — Приносит интерактивность к VRML97. Этот узел генерирует события, когда вы входите, выходите, и перемещение в заданной области на пробеле.

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

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

Можно отметить каждый узел собственным именем при помощи DEF ключевого слова в коде сцены VRML. Например, оператор DEF MyNodeName Box определяет имя для этого узла поля к MyNodeName . Можно получить доступ к полям только тех узлов, которые вы называете в виртуальном мире.

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

Первая строка является строкой заголовка VRML. Каждый файл VRML должен запуститься с этой строки заголовка. Это указывает, что файл является файлом VRML 2 и что текстовые объекты в файле закодированы согласно стандарту UTF8. Вы используете знак номера (#), чтобы прокомментировать миры VRML. Инструмент просмотра VRML игнорирует все на строке после того, как знак # будет проигнорирован, за исключением первой строки заголовка.

Большинство свойств поля оставляют в их значениях по умолчанию – расстояние от центра системы координат, материала, цвета, и так далее. Только имя Floor и размерности присвоено полю. Чтобы смочь управлять положением и другими свойствами шара, это задано как дочерний узел узла типа Преобразования. Здесь, сфера единичного радиуса по умолчанию присвоена красный цвет и положение 10 m выше пола. Кроме того, заголовок виртуального мира используется инструментами просмотра VRML, чтобы различать виртуальные миры. Подходящая начальная точка зрения задана в файле VRML виртуального мира.

Когда отображено в инструменте просмотра VRML, вы видите пол и красный шар.

Что такое расширение файла VRML?

Резюме файла VRML

Файлы VRML связаны с один типом (-ами) файлов, и их можно просматривать с помощью FreeWRL, разработанного Open Source. В целом, этот формат связан с два существующим (-и) прикладным (-и) программным (-и) средством (-ами). Обычно они имеют формат Virtual Reality Modeling Language 3D World. Чаще всего файлы VRML классифицируют, как Web Files.

Файлы с расширением VRML были идентифицированы на настольных компьютерах (и некоторых мобильных устройствах). Они полностью или частично поддерживаются Windows, Mac и Linux. Рейтинг популярности файлов VRML составляет «Низкий». Это означает, что они не часто встречаются на большинстве устройств.

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

Популярность типов файлов
Ранг Файла
Статус файла
Страница Последнее обновление

Откройте файлы в %%os%% с помощью средства для просмотра файлов FileViewPro

Типы файлов VRML

Ассоциация основного файла VRML

Формат файла: .vrml
Тип файла: Virtual Reality Modeling Language 3D World

Файл VRML это 3D мир, связанный с Virtual Reality Modeling Language используется отдельно или может быть интегрирован в веб-страницы.

Создатель: Open Source
Категория файла: Веб-файлф
Ключ реестра: HKEY_CLASSES_ROOT\.vrml

Программные обеспечения, открывающие Virtual Reality Modeling Language 3D World:

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

В дополнение к продуктам, перечисленным выше, мы предлагаем вам попробовать универсальное средство для просмотра файлов типа FileViewPro. Данное средство может открывать более 200 различных типов файлов, предоставляя функции редактирования для большинства из них. Скачать FileViewPro можно здесь

Поиск типов файлов

Популярность файла VRML

Самостоятельное устранение неполадок файла любого типа

Устранение неполадок при открытии файлов VRML

Общие проблемы с открытием файлов VRML

FreeWRL не установлен


Дважды щелкнув по файлу VRML вы можете увидеть системное диалоговое окно, в котором сообщается «Не удается открыть этот тип файла». В этом случае обычно это связано с тем, что на вашем компьютере не установлено FreeWRL для %%os%%. Так как ваша операционная система не знает, что делать с этим файлом, вы не сможете открыть его дважды щелкнув на него.

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

Установлена неправильная версия FreeWRL

В некоторых случаях у вас может быть более новая (или более старая) версия файла Virtual Reality Modeling Language 3D World, не поддерживаемая установленной версией приложения. При отсутствии правильной версии ПО FreeWRL (или любой из других программ, перечисленных выше), может потребоваться загрузить другую версию ПО или одного из других прикладных программных средств, перечисленных выше. Такая проблема чаще всего возникает при работе в более старой версии прикладного программного средства с файлом, созданным в более новой версии, который старая версия не может распознать.

Совет: Иногда вы можете получить общее представление о версии файла VRML, щелкнув правой кнопкой мыши на файл, а затем выбрав «Свойства» (Windows) или «Получить информацию» (Mac OSX).

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

Другие причины проблем с открытием файлов VRML

Даже если на вашем компьютере уже установлено FreeWRL или другое программное обеспечение, связанное с VRML, вы все равно можете столкнуться с проблемами во время открытия файлов Virtual Reality Modeling Language 3D World. Если проблемы открытия файлов VRML до сих пор не устранены, возможно, причина кроется в других проблемах, не позволяющих открыть эти файлы. Такие проблемы включают (представлены в порядке от наиболее до наименее распространенных):

  • Неверные ссылки на файлы VRML в реестре Windows («телефонная книга» операционной системы Windows)
  • Случайное удаление описания файла VRML в реестре Windows
  • Неполная или неправильная установка прикладного программного средства, связанного с форматом VRML
  • Повреждение файла VRML (проблемы с самим файлом Virtual Reality Modeling Language 3D World )
  • Заражение VRML вредоносным ПО
  • Повреждены или устарелидрайверы устройств оборудования, связанного с файлом VRML
  • Отсутствие на компьютере достаточных системных ресурсов для открытия формата Virtual Reality Modeling Language 3D World

Викторина: Какое расширение файла является типом растрового изображения?

Верно!

TIFF файлы или Tagged Image File Format, это файл растрового изображения считается. Они очень популярны в издательской индустрии из-за их способности быть сжат с использованием сжатия без потерь (сохраняя высокое качество).

Близко, но не совсем.

TIFF файлы или Tagged Image File Format, это файл растрового изображения считается. Они очень популярны в издательской индустрии из-за их способности быть сжат с использованием сжатия без потерь (сохраняя высокое качество).

Лучшие операционные системы ПК

Windows (97.14%)
Macintosh (2.06%)
Linux (0.73%)
Chrome (0.05%)
Other (0.01%)

Событие дня

Общий формат изображения, TIFF (размеченный формат файла изображения), был первым разработан для использования со сканерами в 1986 Aldus Corporation. Этот формат был создан, чтобы решить многие проблемы, которые пришли из-за слишком много несовместимых проприетарных форматов в индустрии высоких технологий.

VRML — VRML

  • model/vrml
  • x-world/x-vrml
  • application/x-cc3d
Тип формата 3D компьютерная графика Расширенные от Лабиринт стандарт ISO / IEC 14772-1: 1997 Веб-сайт WWW .web3d .org

VRML ( Virtual Reality Modeling Language , произносятся вермальным или его инициалы, первоначально, до 1995-известных как виртуальная реальность Markup Language) представляет собой стандартный формат для представления 3-мерной (3D) интерактивной векторной графики , разработанный специально с World Wide Web в виду. Он был заменен X3D .

содержание

Формат файла WRL

VRML является текстовым файлом в формате , где, например, вершины и ребра для 3D полигона могут быть указаны вместе с цветом поверхности, УФ-карту текстур , блеска , прозрачности , и так далее. URL — адрес может быть связан с графическими компонентами , так что веб — браузер может получать веб — страницу или новый VRML файл из Интернета , когда пользователь щелкает по конкретной графической составляющая. Анимации , звуки , освещение и другие аспекты виртуального мира могут взаимодействовать с пользователем или могут быть вызваны внешними событиями , такими как таймеры . Специальный Script Node позволяет добавлять программный код (например, написанный на Java или ECMAScript ) в файл VRML.

VRML — файлы обычно называются «миры» и имеют .wrl расширение (например, island.wrl). VRML файлы в виде простого текста и вообще сжимаются с помощью GZIP , полезно для передачи по Интернету более быстро (некоторые GZIP сжатые файлы используют .wrz расширение ). Многие программы 3D моделирования могут сохранять объекты и сцены в формате VRML.

Стандартизация

Консорциум Web3D был сформирован для дальнейшего коллективного развития формата. VRML (и его преемник X3D ), были приняты в качестве международных стандартов в Международной организации по стандартизации (ИСО).

Первая версия VRML была определена в ноябре 1994 Эта версия была определена с, и очень походили, то API и формат файлов из Open Inventor программного компонента , первоначально разработанный SGI . Версия 2.0 была представлена ISO для принятия в качестве международного стандарта. Рабочий проект был опубликован в августе 1996 года текущая и функционально полная версия VRML97 (ISO / IEC 14772-1: 1997). VRML теперь был заменен X3D (ISO / IEC 19775-1).

Появление, популярность, и соперник техперевооружение

Термин VRML был придуман Дэйвом Раггетт в статье под названием «Расширение WWW для поддержки независимых от платформы виртуальной реальности» представлен первый World Wide Web конференции в 1994 году, и первый обсудили в кислородном конвертере WWW94 VRML установленный Тим Бернерс-Ли , где Марк Пеше представил демо Лабиринт он разработал с Тони Паризи и Питером Кеннардом . В октябре 1995 года в Internet World, Template Графика Software (TGS) продемонстрировал 3D / VRML плагин для бета — версии Netscape 2.0 с помощью Netscape Communications.

В 1997 году , новая версия формата была завершена, так как VRML97 (также известный как VRML2 или VRML 2.0), и стал ИСО стандартом. VRML97 был использован в Интернете на некоторых персональных страницах и сайтах , таких как «CyberTown», который предоставляет 3D — чат с помощью Blaxxun программного обеспечения. Формат отстаивают Software Cosmo от SGI; когда SGI отремонтирован в 1998 году подразделение было продано VREAM Отдела по Platinum Technology , которая затем перешла в руки Computer Associates , которая не стала развивать и распространять программное обеспечение. Для того, чтобы заполнить пустоту множество фирменных Web форматов 3D возникшую в течение следующих нескольких лет, в том числе Microsoft Chrome и Adobe Atmosphere , ни один из которых поддерживается сегодня. Возможности VRML оставались в основном то же самое в то время как в реальном времени 3D — графики хранятся улучшения. Консорциум VRML изменил свое название на Консорциум Web3D, и начал работу над преемником VRML — X3D .

SGI управлял веб-сайтом vrml.sgi.com, на котором был организована строкой регулярных коротких выступлений персонажа под названием «Floops», который был персонажем VRML в мире VRML. Floops было создание компании под названием «Простейшие».

Н-Anim является стандартным для анимированных Гуманоидов, который основан на VRML, а затем X3D. Первоначальная версия 1.0 стандарта H-Anim была запланирована для представления в конце марта 1998 года.

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

VRML экспериментирование в первую очередь в области образования и научных исследований , где открытая спецификация является наиболее ценным. В настоящее время реорганизовано в X3D . MPEG-4 Интерактивная профиля (ISO / IEC 14496) был основан на VRML (теперь на X3D) и X3D, по большей обратной совместимости с ним. VRML также широко используется в качестве формата для обмена 3D — моделей, в частности , из CAD систем.

Свободное кросс-платформенная реализация времени выполнения VRML доступна в OpenVRML . Его библиотеки могут быть использованы для добавления как VRML и поддержку X3D к приложениям, и GTK + плагин доступен для визуализации VRML / X3D миров в веб — браузерах.

В 2000 — х годах, многие компании , как Bitmanagement улучшили уровень качества виртуальных эффектов в VRML до уровня качества DirectX 9.0c, но за счет использования проприетарных решений. Все основные функции , такие как игры моделирования уже завершена. Они включают в себя многопроходной визуализации с низкой настройки уровня для Z-буфера, BlendOp, AlphaOp, трафарет, Multi-текстур, шейдеров с HLSL и GLSL поддержки, в реальном времени отрисовки в текстуру, на нескольких Render Target (MRT) и постобработки. Многие демки показывает , что VRML уже поддерживает Lightmap, нормалей, SSAO, CSM и в режиме реального времени окружающей среды Отражение наряду с другими виртуальными эффектами.


Расширение файла VRML

VRML Format

Что такое файл VRML?

VRML суффикс имени файла в основном используется для VRML Format файлов. Файлы с расширением VRML могут использоваться программами, распространяемыми для платформы Linux, Mac OS, Windows. VRML формат файла, наряду с #NUMEXTENSIONS # другими форматами файлов, относится к категории Интернет-файлы. FreeWRL поддерживает VRML файлы и является наиболее часто используемой программой для обработки таких файлов, но 5 могут также использоваться другие инструменты. Программное обеспечение с именем FreeWRL было создано SourceForge.net. Чтобы найти более подробную информацию о программном обеспечении и VRML файлах, посетите официальный сайт разработчика.

Программы, которые поддерживают VRML расширение файла

В следующем списке перечислены программы, совместимые с файлами VRML, которые разделены на категории 3 в зависимости от операционной системы, в которой они доступны. Файлы с расширением VRML, как и любые другие форматы файлов, можно найти в любой операционной системе. Указанные файлы могут быть переданы на другие устройства, будь то мобильные или стационарные, но не все системы могут быть способны правильно обрабатывать такие файлы.

Программы, обслуживающие файл VRML

Как открыть файл VRML?

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

Шаг 1. Получить FreeWRL

Проблемы с открытием и работой с файлами VRML, скорее всего, связаны с отсутствием надлежащего программного обеспечения, совместимого с файлами VRML на вашем компьютере. Эта проблема может быть решена путем загрузки и установки # РЕКОМЕНДОВАННОЙ # или другой совместимой программы, такой как OpenVRML, 3D Object Converter, Creo Parametric. Выше вы найдете полный список программ, которые поддерживают VRML файлы, классифицированные в соответствии с системными платформами, для которых они доступны. Если вы хотите загрузить установщик FreeWRL наиболее безопасным способом, мы рекомендуем вам посетить сайт SourceForge.net и загрузить его из официальных репозиториев.

Шаг 2. Проверьте версию FreeWRL и обновите при необходимости

Вы по-прежнему не можете получить доступ к файлам VRML, хотя FreeWRL установлен в вашей системе? Убедитесь, что программное обеспечение обновлено. Разработчики программного обеспечения могут реализовать поддержку более современных форматов файлов в обновленных версиях своих продуктов. Если у вас установлена более старая версия FreeWRL, она может не поддерживать формат VRML. Все форматы файлов, которые прекрасно обрабатывались предыдущими версиями данной программы, также должны быть открыты с помощью FreeWRL.

Шаг 3. Настройте приложение по умолчанию для открытия VRML файлов на FreeWRL

Если у вас установлена последняя версия FreeWRL и проблема сохраняется, выберите ее в качестве программы по умолчанию, которая будет использоваться для управления VRML на вашем устройстве. Метод довольно прост и мало меняется в разных операционных системах.

Изменить приложение по умолчанию в Windows

  • Щелкните правой кнопкой мыши на файле VRML и выберите « Открыть с помощью опцией».
  • Выберите Выбрать другое приложение → Еще приложения
  • Наконец, выберите Найти другое приложение на этом. , укажите папку, в которой установлен FreeWRL, установите флажок Всегда использовать это приложение для открытия VRML файлы свой выбор, нажав кнопку ОК

Изменить приложение по умолчанию в Mac OS

  • Щелкните правой кнопкой мыши на файле VRML и выберите Информация.
  • Найдите опцию Открыть с помощью — щелкните заголовок, если он скрыт
  • Выберите из списка соответствующую программу и подтвердите, нажав « Изменить для всех» .
  • Должно появиться окно с сообщением, что это изменение будет применено ко всем файлам с расширением VRML. Нажимая Вперед , вы подтверждаете свой выбор.

Шаг 4. Проверьте VRML на наличие ошибок

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

1. Проверьте VRML файл на наличие вирусов или вредоносных программ.

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

2. Убедитесь, что структура файла VRML не повреждена

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

3. Проверьте, есть ли у пользователя, вошедшего в систему, права администратора.

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

4. Убедитесь, что ваше устройство соответствует требованиям для возможности открытия FreeWRL

Если в системе недостаточно ресурсов для открытия файлов VRML, попробуйте закрыть все запущенные в данный момент приложения и повторите попытку.

5. Убедитесь, что у вас установлены последние версии драйверов, системных обновлений и исправлений

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

Третье измерение Сети. С чем едят VRML

Интернет. 2.5-3 страницы. Во времена своего зарождения Интернет был ужасен — скупые строчки исключительно текстовых страничек, маломощные компьютеры пользователей и первобытные модемы делали свое черное дело. Впрочем, этот факт мало кого удручал — онлайн в те времена был привилегией избранных, в то время как в глазах подавляющего большинства граждан термин “браузер” выглядел грязным ругательством. Время шло, научные дискуссии и сверхсекретный шепот военных, ради которых веб-каша и заваривалась, постепенно уходили в сторону под мощным наплывом любопытствующих юзеров, дорвавшихся до онлайновых просторов. Интернет стал двигаться в массы все активней, текстовые интерфейсы ДОСовских браузеров заменялись мультимедийными “Эксплорерами” и “Нетскейпами”. Обычные двухмерные картинки превращали серфинг в приятное глазу занятие, но привередливым пользователям и этого оказалось мало. Им (нам) еще и 3D подавай. ведь как приятно было бы, войдя в любимый чат в подходящем обличии, обменяться почти настоящим рукопожатием с друзьями и навешать пинков недоброжелателям. Со всех сторон рассмотреть девайс, выставленный на продажу в Интернет-магазине. Совершить виртуальное кругосветное путешествие, не вылезая из удобного кресла. Кому-то приглянутся вечно живые “образовательные” темы, кому-то — многопользовательские игрища, кому-то — пресловутый виртуальный секс. да мало ли что можно еще найти — были бы под рукой средства отображения “3D-страниц”. А они у нас есть, причем давно.

Что такое код vrml

Язык VRML (Virtual Realty Modelling Languagy) предназначен для описания трехмерных изображений и оперирует объектами, описывающими геометрические фигуры и их расположение в пространстве.

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

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

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

Единицы измерения

В VRML приняты следующие единицы измерения:

  • Расстояние и размер: метры
  • Углы: радианы
  • Остальные значения: выражаются, как часть от 1.
  • Координаты берутся в трехмерной декартовой системе координат (см. рис.)

Заголовок VRML-файла


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

Для того, чтобы VRML-браузер распознал файл с VRML-кодом, в начале файла ставится специальный заголовок — file header:

Такой заголовок обязательно должен находиться в первой строке файла, кроме того, перед знаком диеза не должно быть пробелов.

Примитивы VRML

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

Эти фигуры называются примитивами (primitives). Набор примитивов невелик, однако комбинируя их, можно строить достаточно сложные трехмерные изображения. Например, вот такие:

Рассмотрим поподробней каждый из примитивов.

Возможные параметры: width — ширина, height — высота, depth — глубина.

Параметр у сферы только один, это radius.

Возможные параметры: bottomRadius — радиус основания, height — высота, parts — определяет, какие части конуса будут видны. Параметр parts может принимать значения ALL, SIDES или BOTTOM.

Для цилиндра можно задать параметры radius и height. Кроме того, с помощью параметра parts для цилиндра можно определить будут ли отображаться основания цилиндра и его боковая поверхность. Параметр parts может принимать значения ALL, SIDES, BOTTOM или TOP.

Цвет и текстура

Цвет фигуры, определяется с помощью объекта Material.

Параметры ambientColor, diffuseColor, specularColor и emissiveColor управляют цветами и указываются в палитре RGB (красный, зеленый и голубой), причем первая цифра определяет интенсивность красного цвета, вторая — зеленого, а третья — синего.

К примеру, синий кубик, может быть описан следующим образом:

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

Для имитирования различных поверхностей в VRML существует объект Texture2.

В качестве текстуры легче всего использовать обычный графический файл, например, в GIF-формате. В таком случае для «натягивания» текстуры на трехмерное изображение нужно только указать путь к файлу в параметре filename объекта Texture2.

Параметры wrapS и wrapT могут принимать значения REPEAT или CLAMP, и управляют натягиванием текстуры по соответственно горизонтальной и вертикальной осям.

Положение объектов в пространстве

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

Узел Translation определяет координаты объекта:

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

Как видите, третий кубик вовсе не совпадает с первым, хотя в в узле Translation указаны те же координаты.

В VRML 1.0 принято следующее правило: узлы, модифицирующие свойства фигур (Translation, Material и т.п.), действуют на все далее описанные фигуры.

Чтобы ограничить область действия модифицирующих узлов, фигуры необходимо сгруппировать с помощью узла Separator.

Узел Separator работает как контейнер, он может содержать любые другие узлы, и основным его предназначением является именно ограничение области действия узлов типа Translation и Material.

Сравните следующий пример с предыдущим:

Хотя в примере описано три кубика, мы видим только два, так как второй и третий совпадают.

Вообще говоря рекомендуется всегда и везде использовать узел Separator. Он не только избавит от ошибок, связанных с относительностью координат, но и сделает VRML-код более простым и понятным.

Для вращения фигур вокруг осей координат применяется узел Rotation.

Первые три цифры определяет будет ли осуществлен поворот вокруг соответственно осей x, y и z, а четвертая задает угол вращения в радианах. В приведенном выше листинге поворот осуществляется вокруг оси y на 90 градусов.

Углы в градусах Радианы
30 0.52
45 0.78
60 1.04
90 1.57
180 3.14
270 4.71

Составим букву T из двух цилиндров. По умолчанию цилиндр ориентирован вертикально (см. рисунок). Поэтому для успешного выполнения задачи повернем его вокруг оси z на 90 градусов.

Узел Scale масштабирует фигуры по одному или нескольким измерениям. Три цифры, стоящие после параметра scaleFactor определяют коэффициенты масштабирования относительно осей x,y и z.

В следующем примере, узел Scale сжимает сферу по оси x, и из сферы получается эллипсоид.

Определение собственных объектов

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

Объект описывается одним из способов:

Для того, чтобы вставить в VRML-файл ранее определенную фигуру, используется команда USE

Создадим VRML-файл, описывающий стул, при этом ножку стула опишем как объект LEG:

Как видите, нам не понадобилось описывать каждую ножку в отдельности — в результате объем VRML-кода стал меньше, а сам код более читабельным.

Еще один способ уменьшить размер VRML-файла — вставлять фигуры из другого файла.


Это позволяет делать узел WWWInline:

Параметр name — это путь к файлу, параметры bboxSize и bboxCenter не обязательны и показывают пользователю размеры и положение вставляемого объекта, пока объект подгружается.

Вместо заключения, хочется обратить Ваше внимание на две особенности VRML, незнание которых сильно затруднит создание VRML-документов вручную.

  1. Все описания узлов и параметров в VRML регистрозависимы. Если Вы используете буквы неправильного регистра — то VRML-браузер просто проигнорирует такое описание.
  2. В VRML имеет огромное значение порядок описания узлов. Так к примеру, описание и описание

дают совершенно разный результат.

Что такое код vrml

Язык VRML (Virtual Realty Modelling Languagy) предназначен для описания трехмерных изображений и оперирует объектами, описывающими геометрические фигуры и их расположение в пространстве.

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

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

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

В VRML приняты следующие единицы измерения:

  • Расстояние и размер: метры
  • Углы: радианы
  • Остальные значения: выражаются, как часть от 1.
  • Координаты берутся в трехмерной декартовой системе координат (см. рис.)

Как уже говорилось, Vrml-документ представляет собой обычный тестовый файл. Для того, чтобы VRML-браузер распознал файл с VRML-кодом, в начале файла ставится специальный заголовок — file header:

Такой заголовок обязательно должен находиться в первой строке файла, кроме того, перед знаком диеза не должно быть пробелов.

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

Эти фигуры называются примитивами (primitives). Набор примитивов невелик, однако комбинируя их, можно строить достаточно сложные трехмерные изображения. Например, вот такие:

Рассмотрим поподробней каждый из примитивов.

Возможные параметры: width — ширина, height — высота, depth — глубина.

Параметр у сферы только один, это radius.

Возможные параметры: bottomRadius — радиус основания, height — высота, parts — определяет, какие части конуса будут видны. Параметр parts может принимать значения ALL, SIDES или BOTTOM.

Для цилиндра можно задать параметры radius и height. Кроме того, с помощью параметра parts для цилиндра можно определить будут ли отображаться основания цилиндра и его боковая поверхность. Параметр parts может принимать значения ALL, SIDES, BOTTOM или TOP.

Цвет и текстура

Цвет фигуры, определяется с помощью объекта Material.

Параметры ambientColor, diffuseColor, specularColor и emissiveColor управляют цветами и указываются в палитре RGB (красный, зеленый и голубой), причем первая цифра определяет интенсивность красного цвета, вторая — зеленого, а третья — синего.

К примеру, синий кубик, может быть описан следующим образом:

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

Для имитирования различных поверхностей в VRML существует объект Texture2.

В качестве текстуры легче всего использовать обычный графический файл, например, в GIF-формате. В таком случае для «натягивания» текстуры на трехмерное изображение нужно только указать путь к файлу в параметре filename объекта Texture2.

Параметры wrapS и wrapT могут принимать значения REPEAT или CLAMP, и управляют натягиванием текстуры по соответственно горизонтальной и вертикальной осям.

Положение объектов в пространстве

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

Узел Translation определяет координаты объекта:

Как видите, третий кубик вовсе не совпадает с первым, хотя в в узле Translation указаны те же координаты.

В VRML 1.0 принято следующее правило: узлы, модифицирующие свойства фигур (Translation, Material и т.п.), действуют на все далее описанные фигуры.

Чтобы ограничить область действия модифицирующих узлов, фигуры необходимо сгруппировать с помощью узла Separator.

Узел Separator работает как контейнер, он может содержать любые другие узлы, и основным его предназначением является именно ограничение области действия узлов типа Translation и Material.

Сравните следующий пример с предыдущим:

Хотя в примере описано три кубика, мы видим только два, так как второй и третий совпадают.

Вообще говоря рекомендуется всегда и везде использовать узел Separator. Он не только избавит от ошибок, связанных с относительностью координат, но и сделает VRML-код более простым и понятным.

Вращение

Для вращения фигур вокруг осей координат применяется узел Rotation.

Первые три цифры определяет будет ли осуществлен поворот вокруг соответственно осей x, y и z, а четвертая задает угол вращения в радианах. В приведенном выше листинге поворот осуществляется вокруг оси y на 90 градусов.

Углы в градусах Радианы
30 0.52
45 0.78
60 1.04
90 1.57
180 3.14
270 4.71

Составим букву T из двух цилиндров. По умолчанию цилиндр ориентирован вертикально (см. рисунок). Поэтому для успешного выполнения задачи повернем его вокруг оси z на 90 градусов.


Масштабирование

Узел Scale масштабирует фигуры по одному или нескольким измерениям. Три цифры, стоящие после параметра scaleFactor определяют коэффициенты масштабирования относительно осей x,y и z.

следующем примере, узел Scale сжимает сферу по оси x, и из сферы получается эллипсоид.

Определение собственных объектов

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

Объект описывается одним из способов:

Для того, чтобы вставить в VRML-файл ранее определенную фигуру, используется команда USE

Создадим VRML-файл, описывающий стул, при этом ножку стула опишем как объект LEG:

Как видите, нам не понадобилось описывать каждую ножку в отдельности — в результате объем VRML-кода стал меньше, а сам код более читабельным.

Еще один способ уменьшить размер VRML-файла — вставлять фигуры из другого файла.

Это позволяет делать узел WWWInline:

Параметр name — это путь к файлу, параметры bboxSize и bboxCenter не обязательны и показывают пользователю размеры и положение вставляемого объекта, пока объект подгружается.

Вместо заключения , хочется обратить Ваше внимание на две особенности VRML, незнание которых сильно затруднит создание VRML-документов вручную.

1. Все описания узлов и параметров в VRML регистрозависимы. Если Вы используете буквы неправильного регистра — то VRML-браузер просто проигнорирует такое описание.

2. В VRML имеет огромное значение порядок описания узлов.

Этот виртуальный мир

VRML привносит трехмерное действо на плоские страницы Web-презентаций Intranet, но инструментарий и стандарты по-прежнему неустойчивы. Марк Гиббс Рождение стандарта Структура VRML Пишем на VRML Взгляд на мир Скалы в виртуальном

VRML привносит трехмерное действо на плоские страницы Web-презентаций Intranet, но инструментарий и стандарты по-прежнему неустойчивы.

Сутью intranet всегда будет предоставление людям информации самым действенным и эффективным образом. Но приходится признать, что зачастую страницы Web могут быть скучны. Но не стоит огорчаться — язык описания виртуальной реальности VRML (Virtual Reality Markup Language) делает многообещающую заявку как средство превращения сетей intranet в информационные трехмерные миры.

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

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

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

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

Однако, сегодня VRML находится во младенчестве и далек от повсеместного использования в intranet, но дайте срок.

Рождение стандарта

VRML — это одна из множества выдвигавшихся спецификаций описания трехмерных сред. Стандарт VRML 1.0, основаный на подмножестве формата OIF (Open Inventor File) компании Silicon Graphics, Inc. (SGI) был опубликован Консорциумом World-Wide Web (WC3) в ноябре 1994 года.

WC3 и некоторые другие специальные группы остановились на OIF, потому что он соответствовал главным критериям: платформной независимости, приспособленности к скоростям передачи 14.4 кБит/с и расширяемости, позволяя в дальнейшем контролировать добавление к формату новых возможностей.

И самое главное, для кодирования данных OIF использовал обычный ASCII-текст. Это замечательно отвечает пожеланиям, поскольку роднит его с HTML, основным стандарту форматов Web.

Хотя VRML по-видимому является лучшим из известных средством моделирования, было разработано множество конкурирующих систем. Многие из них, такие как CDF (Cyberspace Description Format) разработки Autodesk, Inc. и созданный в Англии Манчестерским Университетом Manchester Scene Description Language, напоминают VRML, но предлагают собственные возможности.

Главным недостатком VRML является то, что он не принимает в расчет физику реального мира; он позволяет только отображать объекты — их цвет, текстуру и так далее. Максимум того, что текущий стандарт позволяет делать при помощи VRML — это двигать объекты. VRML 1.0 не поддерживает определение столкновений, траектории, поведение объектов, звук или гравитацию. Эти возможности появятся в грядущем стандарте VRML версии 2.

Структура VRML

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

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

Синтаксис VRML позиционирует его как нечто среднее между простым HTML и сложными языками программирования вроде Perl и C++. Короче, изучение VRML — задача не из легких. Хотя вы и можете набивать простые слова в элементарном текстовом редакоре, для конструирвания сложных миров VRML вам понадобятся специальные инструменты.

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

Узлы можно неоднократно использовать при помощи техники, именуемой интансингом, — дав им имена и указав в их определении, что они могут быть использованы где угодно в виртуальном мире. Это дает возможность создавать объекты, в основе которых лежат измененные в соответствии с задачей спецификации их прототипов.

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

Пишем на VRML

Программные файлы VRML, использующие по договоренности расширение .wrl, начинаются со строки:

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

Эта спецификация VRML создает матовый зеленый куб. Узел Separator группирует все нижележащие узлы таким образом, что аттрибуты узла, в частности, материал, из которого он изготовлен, будут перенесены на все младшие узлы в этой группе. Узел WWWAnchor, которому подчиняются все узлы в этом мире, задает ссылку на URL; дважды щелкните кнопкой мыши на объект, который он представляет, и (броузер поддерживает это), вы отправляетесь по этому адресу.

Вы также можете создать в одном месте множество объектов с различными взаимосвязями и использовать получившийся мир как пересадочную станцию между другими мирами и страницами Web.Вы можете найти множество интересных примеров использования этой техники, заглянув на http://www.sdsc.edu/SDSC/Partners/vrml/examples.html .

Более сложные спецификации, ставшие возможными благодаря нестандартным расширениям VRML 1.0, могут одевать объекты в сложную текстуру и даже видео клипы. Однако, большинство программ просмотра не поддерживают эти возможности.


На практике попытка построения чего-нибудь кроме простейшего мира без достаточно сложного редактора VRML — это верное средство испытать стресс вкупе с сильным разочарованием. Сейчас доступно множество средств разработки различной степени завершенности. Как и ожидалось исходя из исторической связи между SGI и VRML разработка компании Open Inventor — один из самых изощренных инструментов. К другим, заслуживающим уважения продуктам относятся Pioneer и Pioneer Pro компании Caligari Corp., Virtual Home Space Builder разработки ParaGraph International, StudioPro (Strata, Inc.) и Walk-Through (Virtus, Inc.).

Когда дело доходит до действительной работы в созданных при помощи VRML мирах, вам понадобится далеко не самый простой компьютер. Для того чтобы достичь самого элементарного уровня производительности, необходима машина Pentium-класса с как минимум 16 Мбайт оперативной памяти. Исходя из тенденции движения к Internet-устройствам минимальной конфигурации VRML для того, чтобы не остаться в стороне, возможно придется «похудеть».

Взгляд на мир

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

Сегодня гонки начались. Лидеры заезда — это Microsoft Corp. c бесплатными расширениями VRML для браузера Internet Explorer и Netscape Communications Corp. с модулем расширения Live3D для программы Navigator 3.0.

Не удивительно, что стандарт VRML 2.0 принятый комитетом в работу в феврале, стал полем боя. Microsoft предлагает технологию Active VRML, использующую программы, вложенные в код VRML. Многие другие производители одобряют поддерживаемый SGI и Sony план под названием Moving Worlds, предполагающий использование внешних программ на языке Java, предоставляющих необходимую интеллектуальность для поддержки большего числа сложных атрибутов таких как физика.

Интересно, что многие эксперты по VRML считают Active VRML более достойной и всеобъемлющей технологией чем Moving Worlds.

Не смотря на это похоже на то, что в этом августе на конференции Siggraph»96 Moving Worlds будет принята за основу VRML 2.0. Это, конечно, не заставит MIcrosoft отказаться от продвижения Active VRML; похоже многие другие производители будут продолжать использование собственных расширений, чтобы решить проблемы, не затронутые новым стандартом. И судя по всему большинство производителей, если они хотят быть основными игроками, будет вынуждено предложить значительную интероперабельность на уровне, превосходящем элементарный, вне зависимости от того, чье предложение победит.

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

Некоторые производители, такие как Vream, Inc., предлагают комплексную выдержаную в авиационном стиле панель управления, приспособленую для работы с мышью. Netscape и другие используют мышь в сочетании с простым меню режимов работы, позволяющим выбрать режимы ходьбы, указки или других видов взаимодействия. Мы можем ожидать, что в этой области будет проделан значительный объем работы.

Скалы в виртуальном мире

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

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

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

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

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

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

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

Другой трехмерной технологии, позволяющей делать такие вещи, не существует. . Одна из бед VRML была в том, что на нем пытались мультфильмы делать, всяческие entertainment, а надо было гайки и болты рисовать — с этого и денег больше, и делать проще [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 происходит от Extensible 4 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. Для знакомства со второй половиной публикации все это пригодится.

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

Илон Маск рекомендует:  Атрибут abbr в HTML
Понравилась статья? Поделиться с друзьями:
Кодинг, CSS и SQL