CarX Street выходит на ПК с предложением симуляции уличных гонок, максимально использующим движок Unity. Проект выделяется не только геймплеем, но и технической составляющей, нацеленной на визуальный реализм в ночных городских условиях. Ключ к его эстетике кроется в использовании Screen Space Reflections (SSR) для создания динамических отражений на кузовах автомобилей в сочетании с тщательно проработанным точечным освещением, имитирующим фонари, неоновые вывески и светофоры.
SSR, SpeedTree и Simplygon в пайплайне Unity 🏎️
Отражения в реальном времени с помощью SSR позволяют каждому автомобилю отражать меняющуюся городскую среду без необходимости использования статических cubemap. Однако эта техника требует больших вычислительных затрат. Чтобы компенсировать это, команда использовала Simplygon для уменьшения количества полигонов в моделях автомобилей и удаленных зданий, сохраняя качество на переднем плане. Кроме того, хотя игра городская, в ней присутствует растительность, созданная с помощью SpeedTree, которая генерирует деревья и кустарники с эффективным LOD. Для инди-разработчиков, стремящихся к подобным результатам, рекомендуется отдавать приоритет количеству источников света в реальном времени над качеством теней и использовать SSR только на металлических поверхностях или окраске автомобилей.
Уроки для инди, желающих гонять ночью 🌃
CarX Street доказывает, что Unity может визуально конкурировать в гоночном жанре при применении правильных инструментов оптимизации. Главный урок — не злоупотреблять отражениями: выборочное применение SSR (только на автомобилях и лужах) экономит ресурсы. Аналогично, сочетание Simplygon для высокополигональных ассетов и SpeedTree для органических деталей позволяет поддерживать живой город без потери кадров. Для инди-разработчика начало с фиксированного цикла день-ночь (только ночь) снижает сложность освещения и позволяет сосредоточиться на качестве городских отражений.
Учитывая, что CarX Street на ПК использует отражения SSR в реальном времени, как Unity справляется с вычислительной стоимостью этих отражений вместе с динамическим ночным освещением, не жертвуя частотой кадров в плотной городской среде?
(P.S.: Оптимизация для мобильных устройств — это как пытаться запихнуть слона в Mini Cooper)