Привет, Хабр!
Эта статья является продолжением статьи Опыт использования VR в проектной организации.
Меня зовут Максим Тимофеев, и я работаю в МТ-инжиниринг, где мы уже более 3-х лет применяем VR.
Как было сказано в предыдущей статье, Blender – отличный и довольно простой инструмент для просмотра 3d моделей в VR.
Здесь я расскажу о том, как использовать Blender 3d для VR и делать это более эффективно. Я опишу конкретные шаги и рекомендации на основе собственного опыта. В статье я буду ориентироваться на начинающих пользователей этой программы.
Blender 3D – профессиональное свободное и открытое программное обеспечение для создания трёхмерной компьютерной графики. Blender имеет большое количество Add-On для различных целей и в том числе для VR.
Подготовка
Для начала работы вам нужно скачать дистрибутив и установить саму программу Blender 3d. На этом шаге, думаю, проблем не возникнет. Я буду использовать версию программы 4.0.2.
Далее вам необходимо установить дополнения (Add-Ons). Для этого в главном меню перейти во вкладку Edit -> Preferences и выбрать в левой части окна Add-Ons. Для установки соответствующего дополнения вам нужно поставить галочку, либо установить его через кнопку Install в верхней части окна, выбрав заранее загруженный файл с расширением zip.
Устанавливаем Add-On VR Scene Inspection

Далее устанавливаем Add-Ons для импорта моделей
По умолчанию Blender уже предлагает несколько форматов для импорта.

В зависимости от формата файлов ваших моделей, вы можете устанавливать различные дополнения.

Доступно множество форматов, в том числе и для импорта DXF.
Отдельно нужно остановиться на формате ifc. Это наиболее распространённый формат в BIM проектировании и возможно единственный корректный способ передачи моделей из таких программ, как Autodesk Revit или Tekla Structures. Для импорта ifc можно установить дополнение BlenderBIM.

Также вы можете установить последнюю версию BlenderBIM, скачав zip файл непосредственно с сайта разработчика.

После установки вам необходимо подключить VR шлем. В сети имеется много видео о том, как это сделать для конкретного типа оборудования.
Теперь у вас всё готово для VR.
Hello VR world
Запускаем Blender и видим, что модель уже содержит стартовый объект – куб с размерами 2*2*2 м. Давайте на него посмотрим в VR шлеме.

Для запуска VR нажимаем клавишу N на клавиатуре и справа получаем окно с настройками. Выбираем вкладку VR и нажимаем Start VR Session.
Чтобы видеть на экране монитора тоже самое, что и в шлеме (это полезно для сторонних наблюдателей), отмечаем Mirror VR Session.
Для перемещения или поворота в VR пространстве используйте контроллеры. У контроллеров HTC Vive есть особенность - в Blender нужно не нажимать, а только касаться круглых кнопок в соответствующих областях.

В Meta Quest 3 управление более привычное. Для перемещения или поворота необходимо отклонить джойстик в нужную сторону.

Для телепортации на большие расстояния используйте курок контроллера и направляйте луч на какую-либо поверхность.
Надеюсь, что у вас получилось рассмотреть кубик через VR и мы идём дальше.
Режимы отображения модели
В пространстве VR вы можете видеть всё в таком же виде, как и на экране монитора в Blender. В верхней части окна программы доступно 4 режима отображения модели: wireframe, solid, material preview и rendered.
Для демонстрации режимов я присвоил граням стандартного куба 3 материала: red, green и blue. Для каждого материала я назначил соответствующий цвет для отображения во Viewport и imаgе текстуру плитки.
Порядок работы с материалами такой: сначала создаём материал, а уже затем присваиваем его конкретной грани. После этого в режиме Shading можно назначить данному материалу текстуру.

Тема работы с материалами и текстурами очень обширна и выходит за рамки данной статьи.
Переходим в Layout и включаем режим Wireframe.

В этом режиме можно отображать или скрывать невидимые грани (кнопка Toggle X-Ray рядом с кнопкой выбора режима отображения).
Следующий режим отображения – Solid. Это наиболее универсальный режим отображения для VR, поэтому остановимся на нём подробнее. В данном режиме не требуется настраивать освещение, но он позволяет отображать материалы как цветом, так и с текстурами.


Также доступен режим X-Ray для включения прозрачности всей модели.
Следующий режим - material preview служит для отображения текстур материалов со всеми эффектами (отражение, преломление и т.д.).

Последний режим render даёт возможность получить сцену наиболее приближенной к реальности с учётом света и теней.

Для этого режима необходимо настраивать освещение. В VR этот режим работает при выбранном методе рендеринга в реальном времени EEVEE.
Теперь вы можете загрузить модель, назначить материалы и текстуры, а также просмотреть её в VR в разных режимах.
Идём дальше.
Что можно улучшить в VR сцене
Функция Cavity
При использовании режима отображения Solid, для большей реалистичности (выразительности), вы можете использовать опции Cavity и Shadow. Здесь же можно поиграть с типом шейдинга, выбрав World, Screen или Both.

Наложение граней
Важно избегать наложения элементов (грани элементов лежат «почти» в одной плоскости). При наложении начинается мерцание, которое сильно мешает просмотру.

В таком случае, нужно либо удалить/сместить одну из граней в Blender, либо попробовать изменить Clip Start на меньшее значение (нажатие клавиши N и в появившемся окне выбрать View).
Anti-Aliasing
Сглаживание служит для того, что бы рёбра объектов были более гладкими (убирает "зубцы" на рёбрах).
Настройки сглаживания располагаются в основном меню: Edit -> Preferences -> Viewport, раздел Quality.

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

Например, в каркасе здания можно выделить типовую раму и сохранить её в отдельном файле blend, а затем вставить через ссылку в файл общей сборки.

После вставки необходимо спозиционировать элемент в сцене и затем раскопировать ссылку нужное количество раз.
Данный метод позволяет работать с очень большими моделями и напоминает подход, реализованный в 3D CAD программах, например, в SolidWorks. Сборка состоит из деталей. При изменении одной из деталей, эта деталь в сборке также изменяется автоматически. При этом сборка - легковесная, а вся информация о построении деталей хранится в файлах деталей.
Добавьте немного деталей в сцену

Хорошо оживляет сцену наличие незначительных деталей, например, разметки пола в цеху, высотных отметок или фигур людей (можно отсканировать себя и членов своей команды).
Заключение
Мы рассмотрели всё, что нужно для VR старта с Blender. Надеюсь, данная информация будет полезна.
На данный момент в Blender VR не хватает инструмента для измерений. Очень жду его появления.
А ещё в Blender VR круто смотрятся физические анимации:

Справочную информацию по Add-on VR Scene Inspection вы можете почитать здесь.
Задавайте ваши вопросы и пишите в комментариях, о чём ещё рассказать по данной теме.