Для каждой продвинутой игры очень важна настройка качества графики. В этой статье мы покажем пример настройки качества графики и покажем, как будет изменятся сцена при изменении настроек игры.
Как Вы знаете, качество графики в игре влияет на FPS и на на качество картинки! FPS – с англ. frames per second, – частота кадров в секунду, то есть величина, и показывающая количество кадров, сменяющихся за 1 секунду. Чем больше кадров в секунду будет в Вашей игре, тем плавнее и четче будет итоговая картинка, но тем больше ресурсов потребуется для такой прорисовки. И чтобы учесть возможности разных игроков с разной мощностью устройств, в игре следует делать несколько уровней настроек графики. Тогда каждый пользователь вашего приложения сможет выбрать для себя оптимальный уровень графики, то есть такой, при котором Ваша игра у него не будет лагать и подвисать.
Например, игра Witcher 3 имеет довольно высокие требования к ПК и если игрок со слабым компьютером попытается поиграть на высоком уровне графики, то у него могут возникнуть проблемы с картинкой. Ниже приведён пример отображения сцены с низким и высоким количеством FPS.
Как Вы смогли убедится – чем больше FPS тем плавнее будет картинка и меньше “фризов”. Стоит отметить, что настройки графики актуальнее настраивать именно для 3D игр. В них часто используются высокополигональные модели, требующие четкой прорисовки. А в 2D играх, в большинстве случаев, используются спрайты, которые мало нагружают устройство и эти параметры там будут не столь критичны. Но в конечном итоге всё зависит от вашей игры, чем она требовательнее, тем нужнее настройка качества графики в ней!
Для того чтобы открыть настройки Quality заходим в Project Settings -> Quality.
Для создания нового уровня графики жмём Add Quality Level и вводим ему имя в поле Name.
Для выбора дефолтного уровня графики (уровня по умочанию), жмём на значок вниз и выбираем имя нужного уровня графики.
Ниже будут описаны настройки уровня графики.
Rendering
Pixel Light Count | Количество пиксельных источников. |
Texture Quality | Низкое или высокое качество отображения текстур |
AntiAliasing | Уровень сглаживания |
Soft Particles | Использование частицами мягкого смешивания |
Shadows
Shadow resolution | Разрешение теней, влияющее на их качество |
Shadow Projection | Проецирования теней. Close Fit тень рендерится в высоком разрешении. Stable Fit тень рендерится в низком разрешении. |
Shadow Cascades | Многопоточность теней. Чем больше потоков теней, тем больше качество самих теней |
Shadow Distance | Расстояние, больше которого тени не будут обрабатываться |
Other
Blend Weights | Количество костей, которые влияют на отдельно взятую вершину анимации |
VSync Count | Синхронизация с частотой обновления монитора, которое может избавить пользователя от артефактов и разрывов изображения |
LOD Bias | Детализация моделей. Чем больше число, тем модели становятся более детализированные |
Maximum LOD Level | Наибольший уровень LOD, который может быть в игре |
Particle Raycast Budget | Использование метода столкновения частиц |
Различие настроек графики
Как видно в приведенном примере, с увеличением уровня графики растёт качество текстур, теней, освещения, моделей и уровня сглаживания. Если на самом маленьком уровне настройки графики качество теней и дальность их прорисовки низкая, текстуры мыльные и модели не имеют сглаживания, то на высоком уровне графики тень отрисовывается максимально далеко и чётко. Модели имеют сглаживание и свет, выглядит реалистичнее.
Но нельзя забывать, что чем более высокий уровень графики настроен, тем больше игроку требуется ресурсов компьютера для стабильного FPS. Так что не лишним будет дать возможность игроку выбирать тот уровень, который ему подходит.
Выбор качества графики во время игры
После настройки уровней качества графики, надо дать возможность пользователю нашей игры выбрать качество графики самостоятельно. Для этого будем использовать Dropdown, который может вмещать в себя все наши уровни графики и нам не придётся делать много кнопок для выбора определенного уровня графики.
Создаём dropdown, нажимаем на + и вводим названия уровня графики.
Следующий шаг:
Далее создадим скрипт, который будет менять уровень графики в зависимости от нашего выбора. Для получения значения dropdown будем использовать UnityEngine.UI. Создаем переменную с типом Dropdown. Далее прикрепляем скрипт к объекту в редакторе и привязываем к скрипту Dropdown.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//Обязательно импортируем для работы с UI
public class qualty : MonoBehaviour
{
public Dropdown dropdown;
}
Для того, чтобы наш скрипт смог определить изменения dropdown, в dropdown жмём на + в поле On value changed и добавляем туда объект с нашим скриптом, где создадим функцию, которая меняет уровень графики с помощью функции QualitySettings. SetQualityLevel, где первый аргумент – это номер уровня графики, а второй аргумент это его активация, если true – активация уровня графики, а false – деактивация этого уровня графики.
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;//Обязательно импортируем для работы с UI
public class qualty : MonoBehaviour
{
public Dropdown dropdown;
public void checkdropdown()
{
QualitySettings.SetQualityLevel(dropdown.value, true);//Изменяем уровен графики
}
}
Теперь игрок может выбрать уровень графики. Вот как это выглядит:
В этой статье мы кратко пробежались по основным опциям в настройках уровней качества графики 3D игры и увидели, как меняется картинка при разных настройках FPS игры, а также рассмотрели простой способ, как настроить возможность выбора уровня качества графики для игрока.
Всё работает, только жаль что нету сохранение графики в скрипте(
Я считал, что строка должна дорисовать кадр до конца кадр, а только потом появится новый кадр, а тут кадры друг на друга лезут.