Я увидел сцену OutlineExamples
в пакете примеров МРТК и воссоздал ее в своем собственном проекте.
Обводка работает, если я остаюсь в единстве в режиме игры. Но если я разверну его на HoloLens, объект не получит эффекта контура.
OutlineExamples
сцена из MRTKHub-project
работает на HoloLens, как и ожидалось!
Итак, я думаю, что я что-то пропустил в своем собственном проекте, но я не могу его найти. Несколько раз сравнивал настройки, но разницы не нашел. И я также использовал самый простой объект (куб) из примера сцены.
Настройка для куба
(на скриншоте слева показан мой проект, а справа mrtkhub-проект):
Единственное, что мне пришлось настроить после добавления компонентов, помеченных как «добавленные», — это материал для компонента MeshOutline
.
Есть ли что-то еще, что кто-то должен настроить, чтобы увидеть контурный шейдер на HoloLens?
Моя установка:
Что еще я проверил?
Управление подключаемыми модулями XR настраивается таким же образом.
--РЕДАКТИРОВАТЬ
Я заметил кое-что странное, и я думаю, это поможет тем, кто больше разбирается в шейдерах!
Я запустил свое приложение на HoloLens, схватил куб и поставил перед окном в своей комнате. Ставя куб перед окном, я увидел контур! Но как только я перемещаю его за пределы области окна, контур исчезает! Другой аспект заключается в том, что я использую пространственное картографирование от МРТК. Это означает, что окно не зацепляется, только стены. И я предполагаю, что у стен есть собственный шейдер, верно?
Таким образом, шейдер пространственной сетки и шейдер контура «не нравятся друг другу». Это возможно?
Пользователь derHugo дал мне подсказку, которая привела к решению! Я перешел к материалу, который использую на кубе, и изменил свойство Render Queue Override
под Advanced Options
на более высокое значение, чем у материала MRTK_Occlusion
, который используется для пространственного отображения.
So the spatial mesh shader and the outline shader "dont like each other". Is this possible?
-> да, абсолютно! Это зависит от порядка рендеринга. Возможно, шейдер стены отображается поверх контура. Не уверен, как МРТК делает контур, но часто вы делаете так: 1) сделать объект немного больше в целевом цвете контура 2) сделать объект нормальным поверх него => выглядит как контур вокруг объекта ... возможно, что шейдер для вашего пространственного отображения появляется после первого прохода