ym88659208ym87991671
Дополнительные советы по настройке графики | Документация для разработчиков

Дополнительные советы по настройке графики

Обновлено 8 декабря 2025

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

Соответствие сцены требованиям

Основные параметры включают:

  • Полигонаж: до 50 000 треугольников.
  • Материалы: использование Lit и Simple Lit — от 5 до 10 материалов.
  • Текстуры: общий объем не должен превышать 250 МБ на сцену, включая lightmap.
  • Освещение: отсутствие реального времени (рилтайм) для источников света.
  • Drawcalls: менее 100.
Настройка грaфики

На скриншоте выше видно, что в сцене используется 9 материалов. Часть из них без текстур, например, экран, пластик, стекло и черный unlit-материал для маскировки. Все требования, за исключением полигонажа (183 000 треугольников), соблюдены.

Тестирование на VR-шлеме показало, что сцена достаточно оптимизирована. Это позволяет превысить лимит полигонов без падения FPS ниже 90 кадров в секунду. Таким образом, требование в 50 000 треугольников не является абсолютным — ключевым критерием остается стабильная производительность на конечном устройстве.

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

При создании геометрии важно использовать логичные названия файлов на латинице, отражающие их содержимое, например, smallChair.fbx, longPassage.fbx. Все меши должны быть размещены в отдельной папке Models.

Запекание Lightmaps

Для Lightmaps нет строгих ограничений, кроме общего объема текстур. Использование Directional lightmap оправдано только в случае необходимости, так как это увеличивает объем данных.

Для мешей, использующих тайловые текстуры, необходимо включать Generate UV. Настройки подбираются индивидуально для каждой сцены. В большинстве случаев стандартные настройки работают хорошо, но для сложных органических форм может потребоваться ручная настройка UV во втором канале, чтобы избежать видимых швов.

При запекании Lightmaps важно правильно разместить Lightprobes на сцене, чтобы они корректно учитывали границы света и тени, а также препятствия (например, стены). Это предотвращает ситуации, когда персонаж внутри помещения оказывается ярко освещен из-за ближайшего «уличного» Lightprobe.

Для большинства локаций достаточно стандартных настроек запекания.

Проблемы с Lightmaps из-за отсутствия геометрии

Проблемы с Lightmaps

На примере выше показана пикселизация Lightmaps (обведена зеленым), вызванная наличием «открытых» участков в модели (отмечены красным). Эти участки были удалены для экономии полигонов, так как они не видны пользователю. Однако при запекании Lightmaps лучи трассировки попадают в эти отверстия, что приводит к артефактам. Это важно учитывать при оптимизации геометрии.

Примеры материалов

Для реалистичного отображения материалов в VR наиболее эффективным оказалось использование URP-шейдера Simple Lit Metallic с картами:

  • Albedo (обычно Diffuse);
  • Specular;
  • Normal.

Использование Specular в Metallic-шейдере позволяет добиться более насыщенных материалов. Для экономии текстуры можно использовать черную карту Metallic размером 8 x 8 пикселей, а Specular-карту разместить в альфа-канале Albedo (Diffuse).

Пример фотореалистичного шейдера для стены

Используются три текстуры: RGBA Albedo + Specular, Normal и 8 x 8 пикселей Grey Metallic карта.

Шейдер для стены

Пример фотореалистичного шейдера для поручня

Аналогично, но Metallic-карта белая, а Specular-карта содержит горизонтальные полосы, имитирующие полировку металла, что дополняется Normal-картой.

Шейдер �для поручня

Оптимизация текстур

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

Использование Specular без источников света

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

Экономия Drawcalls

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

Рекомендации по созданию материалов

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

В сцене ниже только 5 материалов являются уникальными (дерево, кожа, металл, стена, бетонный пол), остальные — безтекстурные или используют одну текстуру шума с разным тайлингом.

Шейдер для поручня

Организация файлов

  • Материалы: должны иметь логичные названия с префиксом mat_ (например, mat_whiteWall, mat_allLogos) и храниться в папке Materials.
  • Текстуры: должны копировать имя материала с указанием типа текстуры (например, whiteWall_A.tga — albedo, allLogos_N.png — normal map). Текстуры хранятся в папке Textures.

Создание коллайдеров

Коллайдеры для горизонтальных стен должны быть смещены на ~15 см от стены, чтобы предотвратить возможность «заглядывания» через стену в VR. Рекомендуется создавать коллайдеры вручную в 3D-редакторе или использовать простые 3D-боксы в Unity, что улучшает производительность и предотвращает застревания.

Коллайдр

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

Коллайдеры в Unity должны иметь префикс collider_ и описание на латинице (например, collider_curtains, collider_column).

Дополнительные рекомендации

Для тестирования производительности без VR-шлема можно использовать интегрированную видеокарту, например, Intel HD Graphics 530. Это даст приблизительное представление о FPS в VR.

Заметили ошибку?

Выделите текст и нажмите Ctrl + Enter, чтобы сообщить нам о ней

ПАО Сбербанк использует cookie для персонализации сервисов и удобства пользователей. Вы можете запретить сохранение cookie в настройках своего браузера.