В этом примере показано, как создать простой виртуальный мир с помощью 3D World Editor. Пример показывает не все, что можно сделать с редактором. Однако в примере показано, как выполнить некоторые основные задачи, чтобы начать.
Этот пример предполагает, что редактор по умолчанию был настроен как 3D World Editor. Для получения дополнительной информации смотрите Задать редактор по умолчанию.
В этом примере описываются шаги по созданию упрощенной версии виртуального мира, которую вы видите, если ввести эту команду в MATLAB® командное окно:
edit(vrworld('vrdeform.wrl'))
Предположим, что вы хотите моделировать и визуализировать в виртуальной реальности деформацию сферы. В вашем виртуальном мире вы хотите иметь две коробки, представляющие жесткие пластины (B1, B2) и упругую сферу (S) между ними. Все три объектов выровнены по центру вдоль оси X. Коробки B1 и B2 двигаются к S с одинаковыми скоростями, но они движутся в противоположных направлениях. Когда они достигают сферы S, они начинают деформировать его, уменьшая его размерность x и растягивая как его размерности y, так и z.
Вот как выглядит этот виртуальный мир:
В следующей таблице перечислены положения и размерности объектов, которые вы создаете для этого примера.
Объект | Положение по центру | Размерности |
---|---|---|
|
|
|
|
|
|
|
|
|
Simulink® 3D Animation™ продукт включает учебную модель vrtut3
. Эта упрощенная модель моделирует деформацию эластичной сферы. После столкновения с твердыми блоками размерность x сферы уменьшается в 1 - 0,4 раза. Кроме того, размерности y и z расширяются, чтобы сохранить объем деформированного сферически-эллипсоида постоянным. Дополнительные блоки в модели подают векторы правильного размера в блок Simulink 3D Animation. Симуляция останавливается, когда сфера деформируется до 0,4 ее первоначального размера в направлении x.
Ваша первая задача - открыть модель Simulink и добавить блок Simulink 3D Animation к вашей модели.
Эта процедура использует модель Simulink vrtut3
чтобы показать, как добавить блок Simulink 3D Animation к модели. Модель генерирует значения положения B1, положения B2 и размерностей S (как описано в разделе Задать задачу).
Откройте Tutorial #3
. пример.
В верхней части открывшейся страницы выберите Open Model.
Сохраните vrtut3
файл в рабочую папку MATLAB.
В MATLAB смените текущую папку на рабочую папку MATLAB.
В Командном Окне MATLAB введите:
vrtut3
Окно Simulink открывается моделью, которая содержит блоки Simulink 3D Animation VR Signal Expander, но не VR Sink блок для записи данных из модели в Simulink 3D Animation. Вместо этого эта модель использует блоки Scope, чтобы временно контролировать соответствующие сигналы.
В Командном Окне MATLAB введите
vrlib
Откроется библиотека Simulink 3D Animation.
Из окна Library перетащите блок VR Sink в схему Simulink. Затем можно закрыть окно браузера библиотек.
Ваша следующая задача - создать виртуальный мир, который вы будете связывать с блоком VR Sink. Смотрите Открыть новый виртуальный мир.
Вы должны создать виртуальный мир, чтобы соединиться с моделью Simulink для визуализации сигналов.
Эта процедура открывает новый виртуальный мир, в котором вы добавляете узлы для визуализации сигналов модели vrtut3
. Связь между виртуальным миром и моделью Simulink требует, чтобы модель содержала блок VR Sink, как описано в Add a Simulink 3D Animation Block.
Запустите 3D World Editor с пустым виртуальным миром. На панели инструментов MATLAB, на вкладке Apps, в разделе Simulation Graphics and Reporting, нажмите 3D World Editor.
В 3D World Editor отображаются:
На левой панели виртуальной сцены дерево с только ROOT
узел
На правой панели - пустой виртуальный мир
На нижней панели пустая панель для редактирования объектов
Вы можете спасти виртуальный мир в любой точке. Сохраните виртуальный мир как vrtut3.wrl
в той же рабочей папке, где вы vrtut3
файл находится. Не закрывайте 3D World Editor.
Ваши следующие две задачи создают виртуальный мир, который можно использовать с vrtut3
модель:
Определение объектов виртуального мира включает в себя определение иерархии узлов. В этом примере показано, как определить Transform
узлы под ROOT
узел, с каждым Transform
узел, включающий иерархию children
, Shape
, Appearance
, Geometry
, и определенная форма (в данном случае a Box
) узлы.
В дереве на левой панели нажмите ROOT
(самый верхний элемент).
Добавление Transform
узел, используя следующую последовательность выбора меню.
Этот Transform
узел предназначен для поля B1. Как назвать Transform
узел:
Щелкните правой кнопкой мыши по Transform
узел.
Выберите Edit Name меню элемента.
В поле редактирования слева от Transform
узел, тип B1
.
Добавление Shape
узел:
Разверните B1 Transform
узел.
Выберите children
узел.
Добавление Shape
узел, используя следующую последовательность выбора меню:
Добавление Appearance
узел для узла Shape:
Под Shape
узел, выберите appearance (SFNode)
узел.
Добавление Appearance
узел, используя следующую последовательность выбора меню.
Добавление Material
узел к Appearance
узел:
Разверните (Appearance)
Узлом и выберите material(SFNode)
узел.
Добавление Material
узел, используя следующую последовательность выбора меню.
Добавление Box
узел к geometry
узел:
Выберите geometry(SFNode)
узел (Shape)
узел.
Добавление Box
узел, используя следующую последовательность выбора меню.
Теперь, когда все узлы развернуты, 3D World Editor отображает рамку на панели virtual world display.
Уменьшите коробку путем редактирования ее size
свойство:
Выберите size
свойство Box
узел.
На панели object properties edit в нижней части редактора 3D World Editor введите 0.3
в первом столбце и 1
во втором и третьем столбцах.
Нажмите Apply.
Коробка становится меньше.
Переместить ящик вправо путем изменения translation(SFVec3f)
свойство B1(Transform)
узел. На панели object properties edit установите в первом столбце значение 3
и оставьте второй и третий столбцы установленными на 0
.
Добавьте второй блок, аналогичный первому блоку.
Под ROOT
узел, добавить Transform
узел (см. шаг 2) и назовите его B2
(см. шаг 3).
Скопируйте Shape
узел. Под B1 Transform
узел, щелкните правой кнопкой мыши по Shape
узел в B1 Transform
Узлом и выберите Copy меню элемента.
Вставьте скопированный узел Shape в B2 Transform
узел. Под B2 Transform
узел), щелкните правой кнопкой мыши по children
Узлом и выберите Paste Node меню Paste > элемент.
С B1
узел свернут, и B2
узел развернут, 3D World Editor выглядит как следующая графика.
Переместить созданный вами прямоугольник влево путем изменения translation
свойство B2(Transform)
узел. На панели object properties edit установите в первом столбце значение -3
и оставьте второй и третий столбцы установленными на 0
.
Ваша следующая задача - добавить сферу между двумя коробками. В этом разделе предполагается, что вы завершили задачи, описанные в Add Nodes.
Чтобы упростить фокусировку панели tree structure на узлах, которые вы хотите добавить, сверните B1(Transform)
и B2(Transform)
узлы.
В дереве на левой панели нажмите ROOT
узел.
Добавление Sphere
узел. В состав 3D World Editor входит библиотека объектов для создания виртуального мира, включая Sphere
объект.
Добавление Sphere
объект библиотеки с помощью следующей последовательности выбора меню.
Из списка Component Library папок выберите Shapes
папка, а затем выберите Sphere.wrl
файл.
Выберите Transform
узел и назовите его S
.
С S Transform
узел полностью развернут, а другой Transform
узлы свернуты, 3D World Editor выглядит как следующая графика.
Сделать сферу синей, под Material
узел, выберите diffuseColor
свойство. На панели object properties edit измените значение первого столбца на 0.2
, второй столбец для 1
, и третий столбец для 1
.
Сохраните виртуальный файл привязки.
Ваша следующая задача - соединить выходы модели с блоком Simulink 3D Animation в вашей модели Simulink. См. Ссылка на модель Simulink.
После того, как вы создали виртуальный мир и модель Simulink с блоком VR Sink, задайте связи между сигналами модели и виртуальным миром.
Примечание
Эта процедура использует модель vrtut3
в качестве примера. Это предполагает, что вы открыли модель и что вы добавили блок VR Sink, и что вы создали виртуальный мир под названием vrtut3.wrl
. Смотрите руководство, начиная с Add a Simulink 3D Animation Block.
Откройте диалоговое окно VR Sink Параметров блоков. В редакторе Simulink дважды кликните блок VR Sink.
Рядом с Source file полем редактирования нажмите Browse.
Выберите vrtut3.wrl
, а затем нажмите Open.
На панели Output выберите Open Viewer automatically. Этот флажок задает, что средство просмотра для виртуального мира запускается, когда вы запускаете модель.
Для параметра Description введите vrtut3
.
В диалоговом окне VR Sink нажмите Apply.
На панели tree structure установите флажки B1 translation, B2 translation и S scale в качестве узлов, которые вы хотите соединить с сигналами модели. Нажмите OK.
Появляется VR Sink блок с соответствующими входами.
Удалите три блока Scope и связанные с ними входные сигналы строки.
Соедините входные линии из двух блоков VR Signal Expander и S Scaling in XYZ
блокируйте соответствующие порты в блоке VR Sink.
Дважды кликните VR Sink блок.
Появится средство просмотра.
В средстве просмотра выберите опцию Simulation > Block Parameters. Ваше средство просмотра по умолчанию откроется и отобразит виртуальный мир. Дополнительные сведения об изменении средства просмотра по умолчанию см. в разделе «Установка средства просмотра по умолчанию».
В диалоговом окне VR Sink Параметров блоков нажмите кнопку View.
В редакторе Simulink выберите Simulation > Run.
В средстве просмотра по умолчанию вы видите 3-D анимацию сцены. С помощью элементов управления средство просмотра можно наблюдать действие из различных точек.
Когда ширина сферы уменьшается до 0,4 от ее исходного размера, симуляция прекращает вращаться.
В этом примере показано, как создать и использовать модель простой виртуальной реальности. Используя тот же метод, можно создать более сложные модели для решения конкретных задач, с которыми вы сталкиваетесь.
vredit
| vrgetpref
| vrjoystick
| vrlib
| vrsetpref
| vrspacemouse