VR-тренажеры все чаще используются для онбординга сотрудников, поскольку сокращают время и расходы на обучение в зависимости от уровня погружения и узнаваемости объектов окружения. Но так как сами по себе VR-шлемы слабые, а подключение через ПК подразумевает рендер картинки на два монитора, требование к технической стороне графики очень строги.
Привет, Хабр, меня зовут Аким, я дизайнер в IT-компании SimbirSoft. В этой статье я расскажу, как создавать 3D-модели с нужными для VR-тренажеров параметрами с помощью фотограмметрии, и составлю универсальный пайплайн для этого процесса.
Материал будет интересен тем, кто работает с 3D-моделями, а также заказчикам проектов для VR-тренажеров.
Что такое фотограмметрия
3D-фотограмметрия — это метод переноса физического объекта в цифровое пространство. Метод используется для съемки любых объектов — от людей и исторических артефактов до самолетов, построек и ландшафта.
Идея фотограмметрии возникла в конце 1400-х годов, за четыре столетия до изобретения фотографии. Леонардо да Винчи разработал принципы перспективной и проективной геометрии, которые являются основополагающими столпами фотограмметрии.
Геометрическая перспектива — это метод, позволяющий иллюстрировать 3D-объект в 2D-поле, создавая точки, демонстрирующие глубину. Такие аспекты, как геометрия, затенение и освещение, являются фундаментальными блоками реалистичных 3D-визуализаций.

В каких сферах используют фотограмметрию
Архитекторы используют фотограмметрию для планирования участка, контроля строительства и визуализации.
Художники могут документировать или преобразовывать существующий фрагмент произведения искусства, скульптуры или природы во что-то новое.
Археологи могут виртуально картировать и исследовать неизведанные районы суши и океанов.
Дизайнеры и инженеры могут провести обратную разработку существующего объекта или установить на него новые детали.
Разработчики игр могут сэкономить время на проектирование реквизита и окружения, используя фотограмметрию в сочетании с полуавтоматическими рабочими процессами 3D-моделирования.
Палеонтологи могут захватывать окаменелости и костные пласты и определять наилучшие подходы к эксгумации, покрытию и сохранению, а также документировать и делиться своими находками. Подробные 3D-карты участка могут легче выявлять местонахождения окаменелостей.
Для картографов, геологов, геодезистов и топографов фотограмметрия радикально ускоряет процесс создания карт.
Криминалисты могут снимать места преступлений в трех измерениях, чтобы получить более полное представление о таких вопросах, как траектории полета пуль, автокатастрофы и линии обзора свидетелей, а также для создания виртуальных учебных сред.
Терапевты и другие медицинские специалисты могут сканировать части тела пациента для индивидуального подбора протезов и ортопедических изделий, обуви и слуховых аппаратов.
В области культурного наследия предметы и памятники теперь могут быть сохранены навсегда и фактически реконструированы и отреставрированы.
Фотограмметрия в играх и VR
Говоря о создании графики в VR-тренажерах, нужно рассмотреть ее в плоскости разработки графики в играх, потому что это один и тот же пайплайн работы.
Фотограмметрию в играх используют для статичного окружения, к примеру постройки, здания, интересные ландшафтные объекты или скульптуры.
Главная проблема использования фотограмметрии в играх – оптимизация топологии. После начального этапа, когда мы только преобразовали фотографии в модель, она будет содержать очень много полигонов. Например, в компьютерной игре Call of Duty: Modern Warfare (2019) окружение почти полностью было выполнено при помощи пайплайна фотограмметрии. Если изначально модель машины содержала 50 млн полигонов, то после проведения ретопологии она представляла объект с 50 тысяч полигонов. То есть игровой ассет выглядел очень реалистично и детально, но по размеру был как обычный AAA 3D ассет.

Одним из ярких примеров фотограмметрии можно считать Quixel Megascans. Внутри этой библиотеки 18 тысяч готовых моделей и текстур, каждая из которых содержит в себе четыре уровня детализации модели:
Уровень 0 (Raw). Сцены для кино и реалистичные ролики.
Уровень 1 (High). AAA игры в 4K
Уровень 2 (Medium). Инди-игры и модели для заднего фона
Уровень 3 (Low). Мобильные игры

Уровень графики в VR и его влияние на восприятие окружения
Проблема VR-продуктов заключается в очень высоких требованиях к оптимизации, так как изображение рендерится на каждый экран внутри очков отдельно. Если обычные ПК-приложения и игры могут быть воспроизведены с частотой 30 кадров в секунду, то в VR при таком фреймрейте человека начнет тошнить, и у него закружится голова. Минимально допустимое количество кадров в секунду, при котором человек чувствует себя комфортно, — 70. Поэтому у большинства проектов VR примитивная графика, чаще всего они представлены в виде развлекательных игр. Однако если говорить о VR-тренажерах, то несмотря на графику, они помогают сократить количество часов обучения специалистов в разных сферах на 20-40%.

На восприятие и погружение влияет реалистичность и бесшовность картинки, хорошие показатели которых достигаются с помощью технологий Lightmapping, Anti-aliasing и Reflection probe. Если добавить окружение с моделями, сделанных фотограмметрией, можно добиться лучших результатов пользовательского опыта.
Пайплайн фотограмметрии для VR
В этой части статьи я расскажу, как составить пайплайн.
1. Фотографирование объекта.
В первую очередь нужно сфотографировать его со всех сторон и в нескольких осях. Важную роль в этом процессе играют освещение, блики или засветы, будущие артефакты на модели. Если фотографируете объект на улице, то подойдет облачная погода, а если в помещении, то лучше использовать искусственные источники света, а объект расположить на белом матовом фоне.
Для этого примера я взял специальный архив с фотографиями для практики из интернета:

2. Создание 3D-модели объекта.
Я использую бесплатную программу Meshroom. Загружаем в него фотографии:

Экспортируем результат в 3D-редактор. В этой статье я не буду подробно рассказывать о работе в MeshRoom, здесь говорим про целый пайплайн.
3. Оптимизация геометрии 3D-модели.
После построения модели, ее нужно почистить и оптимизировать геометрию под нашу цель. В нашем случае нужна низкополигональная модель с реалистичной текстурой:

Изначально у модели более 500 тысяч точек. Далее мы проводим ретопологию. Ретопология — это процесс создания оптимизированной сетки на базе высокополигональной модели. Если в модели до ретопологии преобладают n-гоны и треугольники, то в оптимизированной модели преобладают полигоны. Если говорить про standalone-тренажеры, которые запускаются непосредственно на самих очках без подключения в ПК, то пороговое значение для плавной картинки составляет 500 тысяч точек.
На этом этапе объекту присваивается второй план, благодаря чему пользователь получает доступ к объекту и может покрутить его в руках. Поскольку это не ключевой объект тренажера, на них обычно выделяют 1000-5000 точек. Устанавливаем значение в программе, корректируем направляющие и получаем результат. Изначальный объект содержал в себе более 500 тыс. точек, конечный — 2700 точек.

4. «Запекание» 3D-модели
Когда наша низкополигональная модель готова, нужно перенести на нее текстуру с высокополигональной модели, этот процесс называется «запекание». Таких текстур как минимум две — цвет и нормали (информация о векторах отражения света). Я делаю это в Blender.

Сложно отличить, где модель с детальной сеткой в 500 тыс. точек с текстурой 4096х4096, а где модель с 2,7 тыс. точек и текстурой 1024х1024.
Спойлер: слева — неоптимизированная модель, а справа — оптимизированная.
Подведем итог
В этой статье я на конкретном примере показал, как фотограмметрия решает вопрос реалистичности картинки, а пайплайн оптимизации и ретопологии позволяет вставлять такие модели в окружение. Важно отметить, что фотограмметрия существенно экономит время создания таких ассетов. В моем случае для модели с готовыми фотографиями процесс занял около часа, когда если бы обычным игровым пайпланом на данную модель ушло до 8 часов, не считая багов, которые могли бы возникнуть.
Спасибо за внимание!
Больше авторских материалов для дизайнеров от моих коллег читайте в соцсетях SimbirSoft – ВКонтакте и Telegram.