Дополнительные советы по настройке графики
Ниже представлены примеры готовых локаций для SaluteJazz, рассмотрены особенности используемых технологий, а также даны подробные рекомендации по созданию сцен. Кроме того, описаны случаи, когда допустимо отступление от установленных правил.
Соответствие сцены требованиям
Основные параметры включают:
- Полигонаж: до 50 000 треугольников.
- Материалы: использование Lit и Simple Lit — от 5 до 10 материалов.
- Текстуры: общий объем не должен превышать 250 МБ на сцену, включая lightmap.
- Освещение: отсутствие реального времени (рилтайм) для источников света.
- Drawcalls: менее 100.
На скриншоте выше видно, что в сцене используется 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 лучи трассировки попадают в эти отверстия, что приводит к артефактам. Это важно учитывать при оптимизации геометрии.
Примеры материалов
Для реалистичного отображения материалов в 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-картой.