В этом примере показано, как создать простой виртуальный мир с помощью редактора 3D World Editor. В примере не показано все, что можно сделать с редактором. Однако в примере показано, как выполнить некоторые основные задачи для начала работы.
Этот пример предполагает, что Вы установили своего редактора по умолчанию быть 3D Мировым Редактором. Дополнительные сведения см. в разделе Установка редактора по умолчанию.
В этом примере описаны шаги по созданию упрощенной версии виртуального мира, если ввести эту команду в окне команд 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.
Из окна «Библиотека» перетащите блок VR Sink на схему Simulink. Затем можно закрыть окно обозревателя библиотек.
Следующей задачей является создание виртуального мира, который будет связан с блоком VR Sink. См. раздел Открытие нового виртуального мира.
Необходимо создать виртуальный мир для подключения к модели Simulink для визуализации сигналов.
Эта процедура открывает новый виртуальный мир, в который добавляются узлы для визуализации сигналов модели. vrtut3. Соединение между виртуальным миром и моделью Simulink требует, чтобы модель включала блок VR Sink, как описано в разделе Добавление блока Simulink 3D Animation.
Запустите редактор 3D World Editor с пустым виртуальным миром. В окне «MATLAB Toolstrip» на вкладке «Apps» в разделе «Simulation Graphics and Reporting» выберите «3D World Editor».
Редактор 3D World отображает:
На левой панели виртуальное дерево сцен только с ROOT узел
На правой панели пустой виртуальный мир
На нижней панели - пустая панель для редактирования объектов
Вы можете сохранить виртуальный мир в любой момент. Сохранить виртуальный мир как vrtut3.wrl в той же рабочей папке, где vrtut3 файл находится. Не закрывайте редактор 3D World Editor.
Следующие две задачи создают виртуальный мир для использования с vrtut3 модель:
Определение объектов виртуального мира включает в себя определение иерархии узлов. В этом примере показано, как определить Transform узлы под ROOT узел, с каждым Transform узел, включающий иерархию children, Shape, Appearance, Geometryи специфическая форма (в данном случае Box) узлов.
В дереве на левой панели щелкните ROOT (самый верхний элемент).
Добавить Transform , используя следующую последовательность выбора меню.

Это Transform узел для поля B1. Для присвоения имени Transform узел:
Щелкните правой кнопкой мыши Transform узел.
Выберите пункт меню «Изменить имя».
В поле редактирования слева от 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 теперь отображает поле на панели отображения виртуального мира.

Уменьшите размер поля, отредактировав его size свойство:
Выберите size имущества Box узел.
В объекте свойства редактируют стекло у основания 3D Мирового Редактора, входят 0.3 в первом столбце, и 1 во втором и третьем столбцах.
Нажмите кнопку «Применить».
Коробка становится меньше.

Переместите поле вправо, изменив translation(SFVec3f) имущества B1(Transform) узел. На панели редактирования свойств объекта задайте для первого столбца значение 3 и оставьте для второго и третьего столбцов значение 0.

Добавьте второе поле, аналогичное первому.
Под ROOT узел, добавить Transform узел (см. шаг 2) и присвойте ему имя B2 (см. шаг 3).
Копировать Shape узел. Под B1 Transform щелкните правой кнопкой мыши узел Shape узел в B1 Transform и выберите пункт меню Copy.
Вставьте скопированный узел Shape в B2 Transform узел. Под B2 Transform узел), щелкните правой кнопкой мыши children и выберите пункт меню Вставить узел > Вставить.
С помощью B1 узел свернут, и B2 узел развернут, редактор 3D World Editor выглядит следующим образом.

Переместите созданное поле влево, изменив translation имущества B2(Transform) узел. На панели редактирования свойств объекта задайте для первого столбца значение -3 и оставьте для второго и третьего столбцов значение 0.

Следующая задача - добавить сферу между двумя полями. В этом разделе предполагается, что выполнены задачи, описанные в разделе Добавление узлов.
Чтобы помочь сосредоточить стекло древовидной структуры на узлах, которые Вы хотите добавить, упадите в обморок B1(Transform) и B2(Transform) узлы.
В дереве на левой панели щелкните ROOT узел.
Добавить Sphere узел. Редактор 3D World Editor включает библиотеку объектов для построения виртуального мира, включая Sphere объект.
Добавить Sphere объект библиотеки с использованием следующей последовательности выбора меню.

В списке папок библиотеки компонентов выберите Shapes и затем выберите Sphere.wrl файл.
Выберите Transform узел и присвойте ему имя S.
С помощью S Transform узел полностью развернут, а другой Transform узлы свернуты, редактор 3D World Editor выглядит следующим образом.

Чтобы сделать сферу синей, под Material выберите узел, diffuseColor собственность. На панели редактирования свойств объекта измените значение первого столбца на 0.2, второй столбец в 1и третий столбец в 1.

Сохраните файл виртуального мира.
Следующей задачей является подключение выходных данных модели к блоку Simulink 3D Animation в модели Simulink. См. раздел Связь с моделью Simulink.
После создания виртуального мира и модели Simulink с блоком VR Sink определите связи между сигналами модели и виртуальным миром.
Примечание
В этой процедуре используется модель vrtut3 в качестве примера. Предполагается, что вы открыли модель и добавили блок VR Sink, а также создали виртуальный мир под названием vrtut3.wrl. См. учебное пособие, начинающееся с добавления блока анимации Simulink 3D.
Откройте диалоговое окно «Параметры блока приемника VR». В редакторе Simulink дважды щелкните на блоке VR Sink.
Рядом с полем редактирования Исходный файл (Source file) нажмите кнопку Обзор (Browse).
Выбрать vrtut3.wrlи нажмите кнопку Открыть.
На панели «Вывод» выберите «Открыть средство просмотра» автоматически. Этот флажок указывает, что средство просмотра для виртуального мира запускается при запуске модели.
Для параметра «Описание» введите vrtut3.
В диалоговом окне VR Sink нажмите Apply.
На панели древовидной структуры установите флажки B1 трансляция, B2 трансляция и шкала S в качестве узлов, которые необходимо подключить к сигналам модели. Нажмите кнопку ОК.
Появляется блок VR Sink с соответствующими входами.
Удалите три блока Scope и связанные с ними входные сигнальные линии.
Подключите входные линии от двух блоков расширения сигнала VR и S Scaling in XYZ к соответствующим портам в блоке приемника VR.

Дважды щелкните на блоке VR Sink.
Появится средство просмотра.
В окне просмотра выберите «Моделирование» > «Параметры блока». Откроется средство просмотра по умолчанию, которое отобразит виртуальный мир. Дополнительные сведения об изменении средства просмотра по умолчанию см. в разделе Настройка средства просмотра по умолчанию.
В диалоговом окне «Параметры блока приемника VR» нажмите кнопку «Вид».

В редакторе Simulink выберите «Моделирование» > «Выполнить».
В окне просмотра по умолчанию отображается 3-D анимация сцены. С помощью элементов управления Viewer можно наблюдать за действием из различных точек.
Когда ширина сферы уменьшается до 0,4 от ее первоначального размера, моделирование прекращается.

В этом примере показано, как создать и использовать простую модель виртуальной реальности. Таким же образом можно создать более сложные модели для решения конкретных задач.
vredit | vrgetpref | vrjoystick | vrlib | vrsetpref | vrspacemouse