• Игры
  • Отрасль
  • Ресурсы
  • Сообщество
  • Обучение
  • Поддержка
Услуги разработчиков
Движок Unity
Создавайте 2D и 3D игры для любой платформы
ЗагрузитьТарифы и цены
Монетизация
Встроенная покупка (IAP)
Откройте и управляйте IAP в разных магазинах
Mediation
Максимизируйте доход и оптимизируйте монетизацию
Качество рекламы
Защитите пользовательский опыт вашего приложения
Tapjoy
Создавайте долгосрочную лояльность пользователей
Все продукты монетизации
Привлечение пользователей
Привлечение пользователей
Будьте замечены и привлекайте мобильных пользователей
Unity Vector AI
Соединяйте игроков с подходящими играми
Aura - реклама на устройстве
Достигайте пользователей на устройстве в пиковые моменты вовлеченности
Все продукты для роста
Примеры использования
3D сотрудничество
Создавайте и просматривайте 3D проекты в реальном времени
Иммерсивное обучение
Обучение в иммерсивных средах
Пользовательские опыты
Создавайте интерактивные 3D опыты
Все отраслевые решения
Отрасли
Производство
Достигнуть операционного совершенства
Торговля
Преобразовать опыт в магазине в онлайн-опыт
Автомобильная отрасль
Повысить инновации и опыт в автомобиле
Все отрасли
Техническая библиотека
Документация
Официальные руководства пользователя и ссылки на API
Инструменты для разработчиков
Версии релизов и трекер проблем
План развития
Обзор предстоящих функций
Глоссарий
Библиотека технических терминов
Дополнительная информация
Истории успеха
Истории успеха из реальной жизни
Руководства по лучшим практикам
Советы и хитрости от экспертов
Все ресурсы
Что нового
Блог
Обновления, информация и технические советы
Новости
Новости, истории и пресс-центр
Сообщество
Обсуждения
Обсуждать, решать проблемы и соединяться
События
Глобальные и местные события
Истории сообщества
Made with Unity
Показ Unity-креаторов
Прямые трансляции
Присоединяйтесь к разработчикам, креаторам и инсайдерам
Награды Unity
Празднование Unity-креаторов по всему миру
Для каждого уровня
Unity Learn
Освойте навыки Unity бесплатно
Профессиональное обучение
Повышайте уровень своей команды с тренерами Unity
Не использовали Unity раньше
С чего начать
Приступите к обучению
Основные пути Unity
Не использовали Unity раньше? Начните свое путешествие
Практические руководства
Практические советы и лучшие практики
Образование
Для студентов
Запустите свою карьеру
Для преподавателей
Улучшите свое преподавание
Лицензия Education Grant
Принесите мощь Unity в ваше учебное заведение
Программы сертификации
Докажите свое мастерство в Unity
Варианты поддержки
Получить помощь
Помогаем вам добиться успеха с Unity
Планы успеха
Достигайте своих целей быстрее с помощью экспертов
FAQ
Ответы на часто задаваемые вопросы
Связаться с нами
Свяжитесь с нашей командой
Тарифы и цены
Язык
  • English
  • Deutsch
  • 日本語
  • Français
  • Português
  • 中文
  • Español
  • Русский
  • 한국어
Соцсети
Валюта
Купить
  • Продукты
  • Unity Ads
  • Подписка
  • Unity Asset Store
  • Торговые посредники
Образование
  • Студенты
  • Преподаватели
  • Образовательные учреждения
  • Сертификация
  • Learn
  • Программа развития навыков
Загрузить
  • Unity Hub
  • Архив загрузок
  • Программа бета-тестирования
Unity Labs
  • Лаборатории
  • Публикации
Ресурсы
  • Платформа обучения
  • Сообщество
  • Документация
  • Unity QA
  • FAQ
  • Статус услуг
  • Истории успеха
  • Made with Unity
Unity
  • Наша компания
  • Новостная рассылка
  • Блог
  • События
  • Вакансии
  • Справка
  • Пресса
  • Партнеры
  • Инвесторы
  • Партнеры
  • Безопасность
  • Отдел Social Impact
  • Инклюзия и разнообразие
  • Связаться с нами
© Unity Technologies, 2025
  • Правовая информация
  • Политика конфиденциальности
  • Cookie-файлы
  • Использование персональных данных

Unity, логотипы Unity и другие торговые знаки Unity являются зарегистрированными торговыми знаками компании Unity Technologies или ее партнеров в США и других странах (подробнее здесь). Остальные наименования и бренды являются торговыми знаками соответствующих владельцев.

Hero background image

Советы по оптимизации мобильных приложений для технических художников - Часть I

Эта веб-страница была переведена с помощью машинного перевода для вашего удобства. Мы не можем гарантировать точность или надежность переведенного контента. Если у вас есть вопросы о точности переведенного контента, обращайтесь к официальной английской версии веб-страницы.
Нажмите здесь.

Что вы получите с этой страницы: Советы по оптимизации художественных ресурсов для разработчиков мобильных игр, работающих в Unity. Это первая из двух статей по оптимизации искусства для мобильных игр.

Вы можете найти много других советов по оптимизации мобильных приложений в этом обширном электронном учебнике и этом курсе Unity Learn по оптимизации 3D-искусства для мобильных приложений.

  • Сосредоточьтесь на силуэте
  • Используйте уровни детализации (LOD)
  • Объединяйте меши и скрывайте объекты
  • Импорт моделей
  • Размеры текстур и цветовое пространство
  • Запекайте детали в текстуру
  • Текстуры с оттенками серого
  • Фильтрация текстур
  • Размеры текстур и цветовое пространство
  • Сжимайте текстуры
  • Используйте каналы текстур для упаковки нескольких текстур в одну
  • UV-развёртка
3D-рендеринг персонажа-робота

Сосредоточьтесь на силуэте

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

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

Примеры LOD

Используйте уровни детализации (LOD)

Когда объекты удаляются на расстояние, Уровень детализации (LOD) может регулировать или переключать их на использование более простых сеток с более простыми материалами и шейдерами для улучшения производительности GPU.

Больше советов по подготовке LOD

  • Удаляйте больше полигонов на плоских участках и не используйте плотные области треугольников на объектах с более низким LOD.
  • LOD также может применяться к сложности шейдеров. Шейдер и материал могут быть оптимизированы для 3D объектов, которые находятся дальше. Например, вы можете уменьшить количество текстур, которые использует объект, по мере его удаления от камеры.
  • Часто стоит уменьшить количество треугольников между каждым уровнем LOD на 50%.
  • Проверьте, как выглядит LOD на разных расстояниях от камеры.
  • Чистая топология необходима для персонажей и объектов, которые деформируются или анимируются.
  • Не зацикливайтесь на идеальной топологии. Игрок или конечный пользователь не увидит каркас 3D модели, как только вы примените текстуру и материал.

Когда не использовать LOD

LOD не подходит для каждой ситуации. Например, избегайте его использования в приложении, где как вид камеры, так и объекты статичны, или где объект уже использует низкое количество полигонов. LOD имеет накладные расходы по памяти и больший размер файла, потому что данные сетки должны быть сохранены, чтобы их можно было использовать в реальном времени.

Окклюзия в Unity

Объединяйте меши и скрывайте объекты

Вы можете объединить несколько сеток в одну, чтобы уменьшить количество вызовов отрисовки, необходимых для рендеринга. Чтобы применить эту технику, создайте пустой GameObject в иерархии и сделайте его родителем мешей, которые вы хотите объединить, затем прикрепите скрипт, реализующий метод Mesh.CombineMeshes(), к родительскому GameObject.

Используйте Occlusion Culling

Объекты, скрытые за другими объектами, все еще могут рендериться и потреблять ресурсы. Используйте Occlusion Culling, чтобы исключить их.

Хотя отсечение фрустрации вне поля зрения камеры происходит автоматически, отсечение окклюзий — это запеченный процесс. Просто отметьте ваши объекты как Static Occluders или Static Occludees, затем запеките через диалог Window > Rendering > Occlusion Culling . Хотя это не обязательно для каждой сцены, отсечение может улучшить производительность во многих случаях. Посмотрите учебник Работа с Occlusion Culling для получения дополнительной информации.

Импорт моделей в Unity

Импорт моделей

Вот несколько хороших советов, которые стоит учитывать при импорте ваших моделей.

  • Тип анимации: При импорте FBX Mesh, который не содержит данных анимации, установите тип анимации в None на вкладке Rig в настройках импорта. Когда вы помещаете свой меш в иерархию, эта настройка гарантирует, что Unity не создаст неиспользуемый компонент Animator.
  • Отключить риги и BlendShapes: Если вашему мешу не нужна скелетная анимация или анимация BlendShape, отключите эти опции, где это возможно.
  • Отключить нормали и тангенты: Если вы абсолютно уверены, что материал меша не будет нуждаться в нормалях или тангентах, снимите отметку с этих опций для дополнительной экономии.
  • Настройки импорта: Если ваша модель не изменяется во время выполнения, отключите опцию Read/Write Enabled на вкладке Model в настройках импорта, чтобы предотвратить создание копии в памяти.
  • Статическая/Динамическая пакетировка: Статическая батчинг - это общая техника оптимизации, которая уменьшает количество вызовов отрисовки. Она идеальна для объектов, состоящих из большого количества вершин, которые не движутся, не вращаются и не масштабируются во время рендеринга. Проверьте статический режим в инспекторе, содержащем Mesh Renderer вашей целевой модели.
Сравнение сжатия текстур

Размеры текстур и цветовое пространство

Текстуры могут быть разного размера. Снижение размера текстур, которые требуют меньшей детализации, поможет уменьшить пропускную способность. Например, диффузная текстура может быть установлена на 1024 x 1024, а связанная карта шероховатости/металличности может быть установлена на 512 x 512. Старайтесь избирательно уменьшать размер текстуры и всегда проверяйте, ухудшилось ли качество визуализации после этого.

Большинство программного обеспечения для текстурирования работает с текстурами и экспортирует их, используя цветовое пространство sRGB.

Мы рекомендуем использовать диффузные текстуры в цветовом пространстве sRGB. Текстуры, которые не обрабатываются как цвет, не должны находиться в цветовом пространстве sRGB. Примеры таких текстур включают металлические, шероховатые и нормальные карты, так как карты используются как данные, а не как цвет. Использование sRGB в этих картах приведет к неправильному визуальному отображению материала.

Примечание. Убедитесь, что настройка sRGB (цветная текстура) в окне инспектора не имеет отметок рядом с шероховатостью, спекулярными, нормальными картами или подобными элементами.

Детали текстуры на крыше черепицы

Запекайте детали в текстуру

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

Демонстрация текстуры с оттенком серого

Текстуры с оттенками серого

Когда это возможно, используйте текстуры в градациях серого, которые позволяют окрашивание в шейдере. Это экономит память текстуры за счет создания пользовательского шейдера для выполнения окрашивания. Будьте избирательны с этой техникой, потому что не все объекты выглядят хорошо с использованием этого метода. Применять это легче к объекту, который имеет однородный цвет.

Сравнение фильтрации текстур: билинейная и трилнейная

Фильтрация текстур

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

  • Ближайшая/Точечная фильтрация: Это самая простая и наименее вычислительно интенсивная форма фильтрации текстур, хотя при близком рассмотрении эта фильтрация может сделать текстуры квадратными.
  • Билинейная фильтрация: Билинейная фильтрация выбирает и усредняет соседние тексели для окраски пикселей в текстуре. В отличие от ближайшей фильтрации, билинейная фильтрация приводит к менее квадратным пикселям, так как пиксели имеют плавный градиент. Побочным эффектом билинейной фильтрации является то, что текстуры будут выглядеть размытыми при близком просмотре.
Атлас спрайтов в редакторе Unity

Размеры текстур и цветовое пространство

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

  • Уменьшите максимальный размер: Используйте минимальные настройки, которые дают визуально приемлемые результаты. Это неразрушающее и может быстро уменьшить вашу память текстур.
  • Используйте степени двойки (POT): Unity требует размеры текстур в степенях двойки для мобильных форматов сжатия текстур (PVRCT или ETC).
  • Атлас ваших текстур: Размещение нескольких текстур в одной текстуре может уменьшить количество вызовов отрисовки и ускорить рендеринг. Используйте Unity Sprite Atlas или сторонний TexturePacker для создания атласа ваших текстур.
  • Отключите опцию "Чтение/Запись включено": При включении эта опция создает копию как в памяти, доступной для ЦП, так и для ГП, удваивая объем памяти текстуры. В большинстве случаев оставляйте это отключенным. Если вы генерируете текстуры во время выполнения, обеспечьте это через Texture2D. Примените, передав makeNoLongerReadable установленный на true.
  • Отключите ненужные мипмапы: Мипмапы не нужны для текстур, которые остаются постоянного размера на экране, таких как 2D спрайты и графика пользовательского интерфейса. Оставьте мипмапы включенными для 3D моделей с изменяющимся расстоянием от камеры.
  • Используйте билинейную фильтрацию: Это поможет достичь баланса между производительностью и визуальным качеством.
  • Используйте трилнейную фильтрацию выборочно: Это требует большей пропускной способности памяти, чем билинейная фильтрация.
  • Используйте билинейную и 2x анизотропную фильтрацию: Выбирайте эти вместо трилнейной и 1x анизотропной, чтобы улучшить как внешний вид, так и производительность.
  • Держите уровень анизотропии низким: Используйте уровень выше 2 только для критически важных игровых активов.
Сравнение сжатых текстур

Сжимайте текстуры

Используйте адаптивное масштабируемое сжатие текстур (ATSC) как для iOS, так и для Android. Подавляющее большинство игр в разработке, как правило, нацелены на минимальные устройства, поддерживающие сжатие ATSC. Единственные исключения:

  • игры для iOS, нацеленные на устройства A7 или ниже (например, iPhone 5, 5S и т. д.): Используйте PVRTC
  • игры для Android, нацеленные на устройства до 2016 года: Используйте сжатие текстур Ericsson (ETC2)
Каналы текстур

Используйте каналы текстур для упаковки нескольких текстур в одну

Упаковка каналов текстур помогает сэкономить память текстур, так как вы можете поместить три карты в одну текстуру. Это означает меньшее количество выборок текстур. Этот подход обычно используется для упаковки шероховатости, гладкости и/или металлического блеска в одну текстуру. Он также может быть применен к любой маске текстуры. Например, вы также можете хранить альфа-маску. Изображения с прозрачностями могут занимать больше памяти, так как требуют 32-битного формата, но, используя свободный канал для хранения альфа-маски, вы можете сохранить диффузную текстуру в 16-битном формате и эффективно уменьшить размер файла вдвое.

Используйте зеленый канал для хранения самой важной маски. Зеленый канал обычно имеет больше бит, так как наши глаза более чувствительны к зеленому и менее чувствительны к синему.

Ручная UV текстура в Probuilder

UV-развёртка

UV-карта проецирует 2D текстуры на поверхность 3D модели. UV-раскрытие — это процесс создания UV-карты.

  • Лучшей практикой является сохранение UV-островов, отдельных единиц неразвернутой текстуры, как можно более прямыми, чтобы упростить упаковку UV-островов и уменьшить потери пространства. Прямой UV также помогает предотвратить эффект лестницы на текстурах.
  • На мобильных платформах пространство текстур ограничено. Таким образом, размер текстуры обычно меньше, чем на консоли или ПК. Хорошая упаковка UV обеспечивает максимальное разрешение ваших текстур.
  • Рассмотрите возможность слегка искаженного UV, сохраняя UV прямым для текстур лучшего качества.
  • В некоторых случаях вам нужно будет преувеличить и выделить края и тени, чтобы улучшить читаемость формы. Поскольку мобильные платформы обычно используют меньшие текстуры, может быть трудно захватить все необходимые детали в этом небольшом пространстве.
  • Для мобильных приложений используйте меньше текстур и объединяйте любые дополнительные детали в одну текстуру. Это важно, потому что некоторые детали лучше всего запекать на саму диффузную текстуру, чтобы убедиться, что эти детали видны на маленьких мобильных экранах.