Рекомендуемые параметры для Unity
Unity предоставляет набор параметров по умолчанию, которые обычно являются средним вариантом для всех платформ. Однако Unity предлагает некоторые действия, относящиеся к смешанной реальности, которые можно переключать с помощью параметров проекта.
Настройка среды выполнения
Низкое качество параметров
Важно изменить параметры качества Unity на очень низкое , чтобы приложение выполнялось и хорошо работает в соответствующем кадре, особенно для разработки HoloLens. Для разработки на иммерсивных гарнитурах, в зависимости от спецификаций настольных компьютеров, энергопотребления виртуальной реальности, можно по-прежнему достичь кадровой скорости без самых низких параметров качества.
В Unity 2019 LTS+можно задать уровень качества проекта, перейдя в раздел "Изменить>проект Параметры> Quality" и установив значение default, щелкнув стрелку вниз на уровне **Очень низкое качество.
Параметры освещения
Как и параметры сцены качества, важно задать оптимальные параметры освещения для приложения Смешанная реальность. В Unity параметр освещения, который обычно будет иметь наибольшее влияние на вашу сцену, — это глобальное освещение в реальном времени. Вы можете отключить глобальное освещение, перейдя в окно>отрисовки>освещения Параметры> Realtime Global Lighting.
Существует еще один параметр освещения, выпеченное глобальное освещение. Этот параметр может предоставлять визуальные и визуальные результаты для иммерсивных гарнитур, но не применимо для разработки HoloLens. Запеченное глобальное освещение вычисляется только для статических gameObjects, которые не найдены в сценах HoloLens из-за характера неизвестной и изменяющейся среды.
Дополнительные сведения см. в статье "Глобальное освещение" из Unity .
Примечание.
Глобальное освещение в реальном времени устанавливается на сцену, поэтому разработчики должны сохранить это свойство для каждой сцены Unity в своем проекте.
Путь отрисовки с одним проходом
В приложениях Смешанная реальность сцена отображается дважды: один раз для каждого глаза. По сравнению с традиционными трехмерными разработками, это фактически удвоит объем работы, которую необходимо вычислить. Важно выбрать наиболее эффективный путь отрисовки в Unity, чтобы сэкономить время ЦП и GPU. Одно проходная отрисовка оптимизирует конвейер отрисовки Unity для приложений смешанной реальности; Рекомендуется включить этот параметр по умолчанию для каждого проекта.
Включение этой функции в проекте Unity
- Откройте openXR Параметры (перейдите к разделу "Изменение>проекта Параметры> XR Для управления подключаемыми модулями>OpenXR").
- В раскрывающемся меню "Режим отрисовки" выберите единый проход.
Дополнительные сведения см. в следующих статьях из Unity с помощью этого подхода к отрисовке.
- Максимизация производительности дополненной реальности и виртуальной реальности с помощью расширенной стереоскопической отрисовки
- Однопроходная отрисовка экземпляра
Примечание.
Одна из распространенных проблем при однопроходной отрисовке с использованием экземпляра возникает в тех случаях, если уже существующие пользовательские шейдеры не поддерживают создание экземпляра. После включения этой возможности разработчики заметят, что некоторые игровые объекты отрисовываются только для одного глаза. Это связано с тем, что соответствующие пользовательские шейдеры не имеют нужных свойств для создания экземпляров.
Включение общего доступа к буферу глубины
Чтобы обеспечить лучшую стабильность голограммы от восприятия пользователя, рекомендуется включить свойство "Общий доступ к буферам глубины" в Unity. Включив это, Unity предоставит общий доступ к карте глубины, созданной приложением, с платформой Windows Смешанная реальность. Платформа может оптимизировать стабильность голограммы специально для сцены для любого кадра, отрисовываемого приложением.
Включение этой функции в проекте Unity
- Откройте openXR Параметры (перейдите к разделу "Изменение>проекта Параметры> XR Для управления подключаемыми модулями>OpenXR").
- Выберите глубину 16 бит в раскрывающемся меню "Режим отправки глубины".
16-разрядный параметр буфера глубины особенно рекомендуется для разработки HoloLens. При выборе 16-разрядной версии по сравнению с 24-разрядными требованиями к пропускной способности значительно снижается, так как требуется переместить или обрабатывать меньше данных. Это сказало, оптимизация поставляется с определенной стоимостью. Убедитесь, что вы понимаете последствия, упоминание в полях "Важные".
Чтобы платформа Windows Смешанная реальность для оптимизации стабильности голограммы, она полагается на буфер глубины, чтобы быть точным и соответствовать любым отрисованным голограммам на экране. Таким образом, при совместном использовании буфера глубины важно, чтобы цвет отрисовки также отображал глубину. В Unity большинство непрозрачных или прозрачных материалов по умолчанию отрисовывает глубину, но прозрачные и текстовые объекты не отрисовывает глубину, хотя это зависит от шейдеров и других факторов.
При использовании шейдера Смешанная реальность набор средств уровня "Стандартный" для отображения глубины для прозрачных объектов:
- Выберите прозрачный материал, использующий шейдер MRTK Standard, и откройте окно редактора Инспектора
- Нажмите кнопку "Исправить сейчас " в предупреждении общего доступа к буферу глубины. Это также можно выполнить вручную, задав режим отрисовки настраиваемым. Затем установите для режима прозрачной и, наконец, установитедля параметра "Запись глубины" значение "Вкл.
Внимание
Разработчики должны остерегаться Z-боевых действий при изменении этих значений вместе с параметрами близкой или далекой плоскости камеры. Z-Fighting возникает, когда два игровых объекта пытаются отрисовки на один и тот же пиксель и из-за ограничений в точности буфера глубины (т.е. глубины z), Unity не может определить, какой объект находится перед другим. Разработчики заметят мерцание между двумя игровыми объектами, так как они борются за то же значение z-глубины. Это можно решить, переключившись на 24-разрядный формат глубины, так как для каждого объекта будет больше диапазон значений для каждого объекта, вычисляемого для их z-глубины с камеры.
Однако рекомендуется, особенно для разработки HoloLens, изменить ближайшие и дальние плоскости камеры на меньший диапазон вместо этого и сохранить 16-разрядный формат глубины. Глубина z нелинейно сопоставляется с диапазоном значений вдоль близких и дальних плоскостей камеры. Это можно изменить, выбрав "Основной Камера" в сцене и в разделе "Инспектор", измените значения "Близкое и далеко отсечение плоскости", чтобы уменьшить их диапазон (т. е. от 1000 до 100 м или другое значение x и т. д.).
Внимание
Unity не создает буфер элементов при использовании 16-разрядного формата глубины. Таким образом, некоторые эффекты пользовательского интерфейса Unity и другие эффекты, необходимые для набора элементов, не будут работать, если не выбран 24-разрядный формат глубины, который создаст 8-разрядный буфер наборов элементов.
Сборка для IL2CPP
Unity не рекомендуется поддерживать серверную часть скриптов .NET и поэтому рекомендует разработчикам использовать IL2CPP для сборок Visual Studio UWP. Хотя это дает различные преимущества, создание решения Visual Studio из Unity для IL2CPP может быть медленнее, чем старый метод .NET. Таким образом, настоятельно рекомендуется следовать рекомендациям по созданию IL2CPP , чтобы сэкономить время итерации разработки.
- Использование добавочного сборки путем создания проекта в один каталог каждый раз, повторно используя предварительно созданные файлы там.
- Отключение проверок программного обеспечения защиты от вредоносных программ для папок проекта и сборки
- Открытие защиты от вирусов и угроз в приложении параметров Windows 10
- Выберите "Управление Параметры" в разделе "Параметры защиты от вирусов и угроз"
- Выберите "Добавить или удалить исключения" в разделе "Исключения"
- Выберите "Добавить исключение " и выберите папку, содержащую код проекта Unity и выходные данные сборки
- Использование SSD для создания
Дополнительные сведения см. в статье "Оптимизация времени сборки для IL2CPP ".
Примечание.
Кроме того, может быть полезно настроить сервер кэширования, особенно для проектов Unity с большим объемом ресурсов (за исключением файлов сценариев) либо постоянно меняющимися сценами или ресурсами. Когда открывается проект, Unity сохраняет соответствующие ресурсы в формате для внутреннего кэша на компьютере разработчика. Измененные элементы нужно повторно импортировать и еще раз обработать. Этот процесс можно выполнить один раз и сохранить на сервере кэширования, а значит, и совместно использовать с другими разработчиками для экономии времени. При этом каждому разработчику не придется обрабатывать повторно импортированные измененные элементы локально.
Свойства публикации
Голографический экран-заставка
HoloLens имеет процессор мобильного класса и GPU, что означает, что приложения могут занять немного больше времени для загрузки. Пока приложение загружается, пользователи просто увидят черное, и поэтому они могут задаться вопросом, что происходит. Чтобы успокоить их во время загрузки, можно добавить голографический экран-заставку.
Чтобы переключить голографический экран-заставку, выполните следующие действия.
- Перейдите на страницу редактирования>проекта Параметры> Player
- Выберите вкладку Магазина Windows и откройте раздел "Изображение заставки"
- Примените изображение под свойством образа Holographic Holographic Holographic > Splash Image .
- Переключение параметра "Экран заставки Unity" включает или отключает фирменный экран-заставку Unity. Если у вас нет лицензии на Unity Pro, экран заставки с фирменной символикой Unity всегда будет отображаться.
- Если применяется изображение голографического заставки, оно всегда будет отображаться, включена ли или отключена проверка box экран-заставка Show Unity. Указание пользовательского голографического изображения-заставки доступно только разработчикам с лицензией Unity Pro.
Показать экран-заставку Unity | Изображение голографических заставок | Поведение |
---|---|---|
Вкл | нет | Отображение экрана заставки Unity по умолчанию в течение 5 секунд или до загрузки приложения, в зависимости от того, что больше. |
Вкл | Пользовательское | Отображение настраиваемого экрана-заставки в течение 5 секунд или до загрузки приложения, в зависимости от того, что больше. |
Выключено | нет | Показывать прозрачный черный (ничего) до загрузки приложения. |
Выключено | Пользовательское | Отображение настраиваемого экрана-заставки в течение 5 секунд или до загрузки приложения, в зависимости от того, что больше. |
Дополнительные сведения см . в документации по экрану-заставки Unity.
потеря слежения;
Гарнитура смешанной реальности зависит от просмотра среды вокруг нее для создания заблокированных в мире систем координат, которые позволяют голограммам оставаться в положении. Когда гарнитура не может найти себя в мире, гарнитура, как говорят , потеряла отслеживание. В таких случаях функциональные возможности зависят от систем координат, заблокированных в мире, таких как пространственные этапы, пространственные привязки и пространственное сопоставление, не работают.
Если происходит потеря отслеживания, поведение Unity по умолчанию заключается в том, чтобы остановить отрисовку голограмм, приостановить цикл игры и отобразить отслеживание потерянного уведомления, которое удобно следует пользователям взглядом. Пользовательские уведомления также могут быть предоставлены в виде изображения потери отслеживания. Для приложений, которые зависят от отслеживания всего опыта, достаточно разрешить Unity обрабатывать это полностью до тех пор, пока отслеживание не будет восстановлено. Разработчики могут предоставить пользовательский образ, отображаемый во время потери отслеживания.
Чтобы настроить потерянный образ отслеживания, выполните следующие действия.
- Перейдите на страницу редактирования>проекта Параметры> Player
- Выберите на вкладке Магазина Windows и откройте раздел "Изображение заставки"
- Примените изображение под свойством Образа потери потери данных в Windows Holographic > Tracking.
Отказ от автоматической приостановки
Некоторые приложения могут не требовать отслеживания (например , приложений, доступных только для ориентации, таких как 360-градусные видеозрители) или может потребоваться продолжить обработку без прерывания при потере отслеживания. Вы можете отказаться от потери поведения отслеживания по умолчанию, но вы несете ответственность за скрытие и отключение любых объектов, которые не будут правильно отображаться в сценарии отслеживания потери. В большинстве случаев единственное содержимое, которое рекомендуется отобразить в этом случае, является заблокированным текстом содержимого, центрируемым вокруг основной камеры.
Чтобы отказаться от автоматической приостановки, выполните следующие действия.
- Перейдите на страницу редактирования>проекта Параметры> Player
- Выберите вкладку Магазина Windows и откройте раздел "Изображение заставки"
- Измените поле "Приостановка потери" в Windows Holographic > On Tracking и show Image проверка box.
Отслеживание событий потери
Чтобы определить пользовательское поведение при потере отслеживания, обработайте глобальные события потери отслеживания.
Возможности
Чтобы приложение воспользовалось определенными функциями, оно должно объявить соответствующие возможности в манифесте. Объявления манифеста можно сделать в Unity, чтобы они были включены в каждый будущий экспорт проекта.
Возможности можно включить для приложения Смешанная реальность, выполнив следующие действия.
- Перейдите на страницу редактирования>проекта Параметры> Player
- Выберите вкладку Магазина Windows, откройте раздел "Публикация Параметры" и найдите список возможностей
Применимые возможности включения часто используемых API-интерфейсов для приложений Holographic:
Возможность | API, требующие возможности |
---|---|
SpatialPerception; | SurfaceObserver |
Веб-камера | PhotoCapture и VideoCapture |
PicturesLibrary / ВидеоLibrary | PhotoCapture или VideoCapture соответственно (при хранении захваченного содержимого) |
Микрофон | VideoCapture (при записи звука), ДиктацияRecognizer, GrammarRecognizer и KeywordRecognizer |
InternetClient | ДиктовкаRecognizer (и использование профилировщика Unity) |
См. также
- Обзор разработки в Unity
- Understanding performance for Mixed Reality (Основные сведения о производительности для Смешанной реальности)
- Рекомендации по производительности для Unity