Case study - Looking through holes in your reality (Пример использования. Взгляд сквозь отверстия в реальности)

когда люди думают о смешанной реальности и о том, что они могут делать с Microsoft HoloLens, они обычно зависят от таких вопросов, как «какие объекты можно добавить в мою комнату?» или «что можно поверх моего пространства?». Мне хотелось бы выделить другую область, которую можно рассмотреть — по сути, с помощью той же технологии, которая просматривает реальные физические объекты.

Технический

Если вы фаугхт пришельцы по мере того, как они переходили через стены в робораид, разблокировали появление стены во фрагментахили оказались достаточно счастливыми, чтобы увидеть УНСК бесконечности Хангар в е в E3 в 2015, то вы видели, о чем я говорю. В зависимости от вашего воображения Эта визуальная хитрость может использоваться для помещения временных отверстий в дривалл или для скрытия миров в свободной флурбоард.

RoboRaid adds three-dimensional pipes and other structure behind your walls, visible only through holes created as the invaders break through.

Робораид добавляет трехмерные каналы и другую структуру позади стен, видимую только через отверстия, созданные в качестве инвадерсного перерыва.

используя одну из этих уникальных голограмм на HoloLens, приложение может предоставить иллюзию содержимого за пределами стен или через пол точно так же, как реально представляется в фактическом окне. Переместитесь влево, и вы увидите, что находится в правой части. Придвиньтесь ближе, и вы увидите все, что можно сделать. Основное отличие заключается в том, что реальные бреши позволяют вам, тогда как упорно этажа не позволит прокрутить это Magical. (Мы добавим задачу в невыполненную работу.)

Сопутствующие ресурсы

Этот прием является сочетанием двух эффектов. Во-первых, с помощью «пространственных привязок» в мире закреплено содержимое. Использование привязок для того, чтобы сделать содержимое «мирово заблокированным», это значит, что вы ищете, не визуально отменяют физические объекты рядом с ним, даже если вы перемещаете или базовая система пространственных сопоставлений обновляет свою трехмерную модель комнаты.

Во-вторых, самое сложное содержимое визуально ограничено конкретным пространством, так что вы можете видеть только это отверстие в реальности. Это перекрытия необходимо для того, чтобы проанализировать логическое отверстие, окно или двери, которое продает прием. Без какой-либо блокировки большей части представления, взлом в секретном Журассик измерении может просто выглядеть как плохо размещенный динозавр.

This is not an actual screenshot, but an illustration of how the secret underworld from MR Basics 101 looks on HoloLens. The black enclosure doesn’t show up, but you can see content through a virtual hole. (When looking through an actual device, the floor would seem to disappear even more because your eyes focus at a further distance as if it’s not even there.)

Это не собственно снимок экрана, но иллюстрация того, как секретный код в « MR» 101 выглядит на HoloLens. Черный корпус не отображается, но содержимое можно просматривать через виртуальное отверстие. (При взгляде на фактическое устройство пол кажется еще больше, так как ваши глаза сосредоточены на других расстояниях, как если бы это не так.)

Блокировка мира — holographic-содержимое

В Unity, что привело к тому, что мы не так просто добавим компонент Ворлданчор:

myObject.AddComponent<WorldAnchor>();

Компонент Ворлданчор постоянно регулирует расположение и вращение его GameObject (и, таким же, что-то еще в этом объекте в иерархии), чтобы обеспечить стабильность его работы относительно соседних физических объектов. При создании содержимого создайте его таким образом, чтобы корневая Сводная таблица объекта выровнять по центру этого виртуального отверстия. (Если сведение объекта находится на глубокой стенке, его небольшие изменения в положении и повороте будут гораздо более заметными, а отверстие может показаться нестабильным.)

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

Существует множество способов выборочного блокировки представления на содержимое, которое скрыто в стены. самый простой из них использует преимущества того, что HoloLens использует аддитивный экран, что означает, что полностью черные объекты отображаются невидимыми. Это можно сделать в Unity, не выполняя никаких специальных построителей шейдеров или материалов — просто создайте черный материал и назначьте его объекту, содержащему содержимое. Если вы не хотите выполнять трехмерное моделирование, просто используйте множество объектов по умолчанию и пересекает их немного. Этот подход имеет ряд недостатков, но это самый быстрый способ получить что-то, который работает, и получение качественного подтверждения концепции с низким уровнем точности является великолепной задачей, даже если вы считаете, что хотите выполнить рефакторинг позже.

Одним из основных недостатков в случае «черного ящика» является то, что он не подходит для фотографий. несмотря на то, что ваш результат может показаться идеальным при отображении HoloLens, все снимки экрана будут показывать большой черный объект, а не то, что остается на стене или этаже. Это связано с тем, что физическое оборудование и снимки экрана имеют разные составные голограммы и реальность. Давайте взглянем на несколько подложных математических вычислений...

Фиктивное математическое предупреждение! Эти числа и формулы предназначены для иллюстрации точки, а не для какой-либо точной метрики.

Что вы видите в HoloLens:

( Reality * darkening_amount ) + Holograms

Что отображается на снимках экрана и видео:

( Reality * ( 1 - hologram_alpha ) ) + Holograms * hologram_alpha

на английском языке: то, что вы видите в HoloLens, представляет собой простое сочетание затемненной реальности (например, через своему солнцезащитных очков) и всех голограмм, которые приложение хочет показать. Но при создании снимка экрана изображение камеры смешивается с голограммами приложения в соответствии со значением прозрачности для каждого пикселя.

Одним из способов обойти это является изменение материала "черного ящика" на запись только в буфер глубины и сортировка со всеми другими непрозрачными материалами. Например, ознакомьтесь с файлом виндовокклусион. Shader в микседреалититулкит на GitHub. Соответствующие строки копируются здесь:

"RenderType" = "Opaque"
"Queue" = "Geometry"
ColorMask 0

(Обратите внимание, что строка «offset 50, 100» связана с несвязанными проблемами, поэтому, вероятно, имеет смысл покинуть ее.)

Реализация невидимого перекрытия материала, такого как, позволит приложению нарисовать поле, которое выглядит правильно в дисплее и в снимках экрана смешанной реальности. В премиальных баллах вы можете попытаться повысить производительность этого окна, добавив в него еще меньше невидимых пикселов, но это может быть дебряхо и, как правило, не требуется.

Here is the secret underworld from MR Basics 101 as Unity draws it, except for the outer parts of the occluding box. Note that the pivot for the underworld is at the center of the box, which helps keep the hole as stable as possible relative to your actual floor.

Ниже приведена секретная информация по принципу MR 101 , так как Unity рисует его, за исключением внешних частей поля окклудинг. Обратите внимание на то, что в центре бокса находится сводная таблица, которая позволяет максимально стабильное отверстие относительно фактического основания.

Попробуйте сами

у вас есть HoloLens и вы хотите испытать результат? самый простой способ (код не требуется) — установить бесплатное приложение для просмотра 3d-файлов, а затем загрузить файл. fbx, который я предоставил в GitHub , чтобы просмотреть модель с цветовым пространством в комнате. загрузите его на HoloLens, и вы увидите иллюзию на работе. Когда Вы находитесь перед моделью, вы можете видеть только небольшое отверстие — все остальное невидимо. Взгляните на модель с любой другой стороны и полностью исчезает. Используйте элементы управления перемещение, вращение и масштабирование 3D-просмотра, чтобы разместить виртуальное отверстие на любой вертикальной поверхности, чтобы создать некоторые идеи.

Viewing this model in your Unity editor will show a large black box around the flowerpot. On HoloLens, the box disappears, giving way to a magic window effect.

При просмотре этой модели в редакторе Unity будет отображаться большой черный прямоугольник вокруг фловерпот. в HoloLens это поле исчезает, что дает возможность волшебному экрану.

Если вы хотите создать приложение, использующее этот прием, ознакомьтесь с руководством по MR 101 в учебниках по смешанной реальности. Глава 7 заканчивается развертыванием в цехе, которое открывает скрытую подсветку (как показано на рисунке выше). Кто, о которых пришлось скучные учебники?

Ниже приведены некоторые идеи, в которых можно взять эту идею.

  • Подумайте о том, как сделать содержимое внутри виртуального отверстия интерактивным. Предоставление пользователям какого бы то ни было негативного воздействия за пределы их стен, в действительности, может повлиять на то, что этот прием может помочь.
  • Подумайте о способах просмотра объектов в известных областях. Например, как можно разместить holographic-отверстие в таблице кофе и видеть свое основание под ним?

Об авторе

Picture of Eric Rehmeyer Рехмэйер
Старший инженер программного обеспечения @Microsoft

См. также раздел