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

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

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

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

VRML

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

VRML предоставляет открытую и гибкую платформу для создания интерактивных трехмерных сцен (виртуальных миров). Несколько VRML97-enabled браузеров доступны на нескольких платформах. Кроме того, вы можете выбрать из нескольких инструментов разработки 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 гарантирует, что изменения, внесенные в виртуальный мир, отражены в интерфейсах MATLAB и Simulink. Если вы меняете точку зрения в вашем виртуальном мире, это изменение происходит в vrworld свойства объекта в интерфейсах MATLAB и Simulink.

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

Примечание

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

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

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

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

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

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

Полный список VRML97 узлов см. в спецификации VRML97.

Виртуальная мировая система координат

Учитывайте системы координат, когда необходимо:

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

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

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

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

Система координат VRML отличается от систем координат MATLAB и Aerospace Blockset™. 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), а некоторые - узлами группировки, используемыми для хранения дочерних узлов. Вот некоторые примеры узлов:

  • Box - Представляет прямоугольник в сцене.

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

  • Material - Соответствует материалу в сцене.

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

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

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

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

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

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

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

#VRML V2.0 utf8
# This is a comment line
WorldInfo {
  title "Bouncing Ball" 
}
Viewpoint {
  position 0 5 30
  description		"Side View"
}
DEF Floor Box {
  size 6 0.2 6
}
DEF Ball Transform {
  translation		 0 10 0
  children Shape {
    appearance Appearance {
      material Material {
        diffuseColor 1 0 0
      }
    }
    geometry Sphere {
    }
  }
}

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

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

При отображении в Инструмент просмотра VRML вы видите пол и красный мяч.

Похожие примеры

Подробнее о