VisionOS: сократить время сборки пакета rkassets

у нас есть новый проект VisionOS, сборка нашего пакета Reality Composer Pro из чистой сборки занимает более 10 минут.

Мы следуем всем рекомендациям Apple, чтобы обеспечить хорошую производительность приложения . К сожалению, нам не удалось найти каких-либо рекомендаций по настройке проекта и повышению производительности.

Какой подход лучше всего подойдет для ускорения строительства? Является ли модульность хорошим вариантом? Вы нашли какой-нибудь трюк, чтобы сделать это быстрее?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
3
0
220
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Время создания, время загрузки и производительность AR/VR-активов

Многие факторы могут повлиять на время сборки, время загрузки и производительность вашего приложения. Однако главное правило: чем больше ваше приложение, тем больше времени потребуется на его компиляцию. На скорость загрузки и компиляции приложения, несомненно, влияет количество сцен RCP, полигональная геометрия высокого разрешения, варианты Pixar USDZ, шейдеры PBR, текстуры, анимация активов, физика, пространственные звуки, освещение, частицы, видео и т. д. Разработчики всегда хотят «повернуть все ручки на максимум» в AR-приложении, но им всегда необходимо поддерживать баланс между визуальным представлением AR-сцены и реальными возможностями аппаратного и программного обеспечения. Ниже я хочу перечислить несколько важных моментов, на которые нужно обратить внимание при создании ресурсов для приложений iOS, VisionOS и macOS в RealityKit 4.0.

Вариант Ценить Максимальное количество полигонов в сцене RealityKit. iOS 100 000 / видениеOS 200 000 Какой формат файла загружает модели быстрее? .reality, (в меньшей степени .usdz) Приемлемое разрешение текстур JPG и PNG 2048 x 2048 (лучше 1024 x 1024) Приемлемое количество шейдеров MaterialX в сцене как можно меньше Приемлемое количество шейдеров PBR в сцене как можно меньше Хорошо ли использовать прозрачность в текстурах? да, если очень умеренно Какой тип тени лучше всего подходит для RealityKit? фальшивые и запеченные тени Какой кодек лучше всего подходит для видео RGBA в AR? HEVC с альфой Сколько анимации персонажей должна содержать сцена? умеренное количество Сколько физики твердого тела должна содержать сцена? умеренное количество

Честно говоря, не меняя ничего из вышеперечисленного в вашем приложении, вы мало что можете сделать, чтобы ускорить время сборки (если вы создаете его на Mini или на Air). Вам обязательно понадобится Mac Pro для разработки многоуровневых игр высокого разрешения, потому что количество итераций сборки будет неисчислимым. Нет смысла сравнивать топовый Mac Pro и слабый ноутбук — время компиляции на Mac Pro будет значительно быстрее. Кроме того, на время компиляции отрицательно влияет небольшой объем оперативной памяти, и вам не следует компилировать в режиме отладки. Однако в случае, если время компиляции на вашей машине M1 составляет 10 минут, стоит начать с текстур. Задайте себе несколько вопросов:

  • сколько моделей в вашем проекте используют варианты USDZ?
  • сколько текстур в проекте?
  • какое у них разрешение?
  • каждая текстура имеет разрешение 72 ppi?
  • лучше ли использовать запекание текстур для шейдера Unlit в сцене?
  • какая глубина цвета у ваших текстур – 8-битная или 16-битная?
  • текстуры используют сжатие?
  • используют ли они одно и то же цветовое пространство и профиль?
  • ты используешь процедурные текстуры?
  • там в основном квадратные текстуры?
  • вы используете 3-канальные или 4-канальные текстуры?
  • можно ли избежать использования alpha там, где это применимо?
  • какой формат файлов используют текстуры?
  • можно ли объединить несколько текстур в одну?
  • в разрешении текстур используется принцип power of 2?

Спасибо, Энди, но я говорю не о производительности приложения, а о времени сборки и времени компиляции rkassets. На моем M1 мне требуется целая вечность, чтобы создать сборку и запустить проект.

Andre 26.06.2024 18:28

Прочтите эту Средняя история, хотя она написана для разработчиков Unity. Есть несколько мыслей, которые будет интересно узнать разработчикам RealityKit. Конечно, используя активы в RCP 2.0, практически невозможно применить то, что описано в статье, но рекомендации, которые я вам дал, позволят вам хоть как-то сократить время сборки.

Andy Jazz 29.06.2024 09:44

Привет, Энди Джаз. Не могли бы вы отправить мне сообщение? У меня был вопрос, конечно, спасибо.

Mike 30.06.2024 08:20

Привет, Майк, какой у тебя вопрос?

Andy Jazz 30.06.2024 08:43

Другие вопросы по теме