В первой части статьи было общее описание ENBSeries, было рассказано об изменении её основных настроек, включении-отключении визуальных эффектов и настройке горячих клавиш. Вторая часть статьи сосредоточена исключительно на настройке эффектов. Рассматривается точная настройка отражений, эффектов bloom и SSAO. Читать сразу вторую часть, конечно, можно, но чтобы наиболее полно воспринять информацию, ознакомьтесь также с первой частью.
Точная настройка эффектов ENBSeries
В данном материале продолжен разбор файла enbseries.ini, начатый в первой части статьи. Этот файл содержит все настройки графического мода ENBSeries и именно грамотная работа с ним поможет добиться желаемых результатов. Каждый эффект или нововведение ENBSeries имеют свой раздел в файле enbseries.ini, например, настройки отражений находятся в разделе [REFLECTION]. Каждый раздел содержит ряд параметров, например, ReflectionPower; после каждого параметра идет знак «=» и указывается числовое значение. Числовое значение — это, например, 0 или 1 в смысле «выключено» и «включено» соответственно, или от 0 до 100 (и больше) — цифры, которые будут указывать на интенсивность использования какого-то эффекта.
Настройка отражений
ENBSeries, как было упомянуто в первой части статьи, где были приведены основные сведения о возможностях библиотеки, может добавлять на модели транспортных средств отражения. В оригинальной игре уже есть отражения на транспорте, однако они сделаны иным путем — там это подвижная статичная текстура, которая создает иллюзию того, что на поверхности машины что-то отражается. В то же время отражения, которые добавляет ENBSeries — настоящие, динамические, и в них отражается окружающий мир. Отражения настраиваются в разделе [REFLECTION]. Разберем параметры, доступные для настройки отражений. ReflectionPower — это уровень интенсивности отражения; параметр определяет то, насколько заметны будут отражения и имеет значения от 0 до 100. Ниже вы можете увидеть, как параметр влияет на отражение.
Кликните по картинке чтобы увидеть анимацию.
ChromePower — отвечает за отражение стальных частей автомобиля (значение от 0 до 100), отключен в текущих версиях ENBSeries и пока не имеет никакой ценности. UseCurrentFrameReflection — определяет, будет ли использоваться каждый кадр для создания отражения, или же нет. Если параметр включен (значение: 1), в отражении будет точь в точь то, что находится в кадре, если же параметр выключен (значение: 0), то отражение может немного отставать от настоящей картины, что для многих пользователей покажется несущественным, ведь отключение опции хотя и делает отражения менее точным, дает серьезный прирост производительности на слабых компьютерах. ReflectionQuality — уровень качества. Значения — от 0 (максимальное качество) до 2 (минимальное). Субъективно разница может быть не слишком заметна, однако значение 2 дает ощутимый прирост скорости по сравнению со значением 0. ReflectionSourceSpecular — процент использования (значения: от 0 до 100) в качестве отражений цвета материала specular, то есть, как сильно будут отражаться части модели транспорта, текстуры которых наложены как specular-текстуры, то есть, как текстуры с «поддельными» отражениями (или бликами). ReflectionSourceTFactor — уровень отражаемости (значения: от 0 до 100) текстуры типа factor, глобального цвета, подобного vertex color. В инструкции к программе замечается, что на некорректно смоделированных машинах детали могут быть отражающими и наоборот; во всяком случае по-умолчанию предлагается значение 50. UseAdditiveReflection — добавление отражений к цвету машин (значение: 1) или же мягкое смешивание отражений с цветом машин (значение: 0), при значении 1 могут незначительно изменяться цвета транспортных средств. ReflectionDepthBias — «сдвиг геометрии отражения относительно оригинальной машины в сторону камеры, необходимо для некоторых видеокарт и драйверов», значения — от 0 до 1000, рекомендуемое указанное в инструкции — 100. UseLowResReflection — используются (при включении, значение — 1, выключение — 0) отражения низкого разрешения. Размытые отражения низкого разрешения выглядят иначе — возможно, кому-то покажется это более реалистичным, ведь отражение будет матовым и не таким интенсивным. Кроме того, включение этой опции дает серьезный прирост производительности. При включенной функции оригинальное «поддельное» отражение, между прочим, будет отображаться совместно с новым (при выключенной же новое отражение совсем заменяет старое).
Кликните по картинке чтобы увидеть анимацию.
ReflectionSinglePass — обработка отражений в один проход, значение 1 дает более хорошее качество, значение 0 отключает функцию. UseEnvBump — определяет (0 — выключен, 1 — включен), будут ли отражения деформироваться, изменяться в зависимости от рельефа текстуры автомобиля; при включенном параметре отражение будет выглядеть лучше, однако выключение дает небольшое прибавление скорости. EnvBumpAmount — этот параметр (со значениями от 0 до 1000) определяет уровень изменения отражений согласно рельефу. EnvBumpOffset — отвечает (мощность задается параметром от 0 до 1000) за направление и величину объема. Большие значения параметра сделают мелкие детали на текстуре более выпуклыми и заметными. IBLAmount — параметр (значения: от 0 до 1000), вероятно, обозначающий интенсивность эффекта Image-based lighting, в данном случае это освещение машин от неба в качестве источника света. Эта особенность появилась в ENBSeries начиная с версии 0.076 и пока что не отмечена в инструкции к библиотеке. Визуально этот параметр делает отражение более ярким. IBLPower — отвечает за силу вышеуказанного эффекта, значения также задаются цифрами от 0 до 1000.
Настройка эффекта bloom
Bloom — эффект освещения, который имитирует передержку камерой, когда яркий свет как будто бы частично просачивается в темные части сцен. Слишком интенсивное использование этого эффекта может быть и красиво, но нереалистично (в реальной жизни, в наших глазах, так сказать, изображение не выглядит никогда передержанным), в то же время при умеренном использовании эффект добавляет какой-то «живости» изображению, подчеркивает яркость света в солнечный день и т.д. Настройки блума находятся в секции [BLOOM] файла enbseries.ini. Кстати, эффект выглядит по-разному в зависимости от яркости экрана, которая выставлена в настройках самой игры, так что обращайте внимание и на это — порой стоит просто понизить яркость в настройках самой игры и изображение, которое казалось до того чрезмерно ярким, приобретает нормальный вид. BloomPowerDay — определяет мощность эффекта в дневное время суток; значения — от 0 до 100.
Кликните по картинке чтобы увидеть анимацию.
BloomFadeTime — время адаптации эффекта к изменениям яркости в игре. Значения — от 0 до 100000 миллисекунды. При слишком низких значениях блум может становиться мощнее или слабее резко, в то же время слишком высокие значения делают так, что смена интенсивность блума незаметна. На мой взгляд, вполне оптимальное значение — 500. BloomConstantDay — как и BloomPowerDay, отвечает за мощность блума, но без учета времени адаптации блума и смены его яркости; значения — от 0 до 100. BloomQuality — качество обработки эффекта, 0 — максимальное, 2 — минимальное. BloomScreenLevelDay — уровень средней яркости отображаемого на экране, который будет восприниматься ENBSeries как дневная яркость (тесно связан с параметром BloomPowerDay); значения — от -10 до 10. BloomCurveDay — коррекция гаммы для блума в дневное время суток. Значения — от -10 (мутное изображение) до 10 (яркое и насыщенное).
BloomPowerNight, BloomConstantNight, BloomCurveNight, BloomScreenLevelNight — параметры, аналогичные BloomPowerDay, BloomConstantDay, BloomCurveDay и BloomScreenLevelDay, однако, в отличие от них, отвечают уже за ночное время суток, а не за дневное. Значения указываются в том же диапазоне, что и указанные для дневных вариантов параметров. BloomAdaptationScreenLevel — уровень средней яркости (от 0 до 100), по превышении которого блум будет отключаться; автор библиотеки рекомендует вводить большее, чем у BloomScreenLevelDay, значение. BloomAdaptationMultiplier — параметр, тесно связанный с вышеуказанным и отвечающий за процент, который будет браться от дневной яркости блума когда превышается яркость, веденная в BloomAdaptationScreenLevel. Значения — от 0 до 100. На мой взгляд, оптимальное значение — 20. BloomAllowOversaturation – определяет, будет ли блум (если значение 0) мягко накладываться, или же (при значении 1) будет создать впечатление перенасыщенной яркости. BloomMaxLimit — максимально возможная интенсивность блума, от 1 от 100.
Настройка SSAO
В разделе [SSAO] одноименного эффекта, создающего более продвинутые тени (имитирующего взаимное затенение объектов, которые находятся поблизости друг от друга), находятся параметры его настройки. UseFilter — отвечает за то, будет ли использоваться фильтр шума, который производит эффект. Когда параметр включен (1) тени будут выглядеть лучше, но и нагрузка на видеокарту возрастет (отключение — 0). OcclusionQuality — качество эффекта; 0 — максимальное, 2 — минимальное. Пока что этот параметр не работает и никакой разницы от его изменений не будет. FilterQuality — качество фильтрации шума, от 0 до 2; тесно связан с первым параметром. DarkeningLevel — отвечает за затенение щелей, которые производит эффект, фактически визуально тени становятся контрастнее. Значения — от 0 до 100. См. скриншот ниже: при значении 20 окклюзии едва ли видны, зато при значении 90 результат уже ощутим.
BrighteningLevel — отвечает за осветление «ребер» теней, значения — от 0 до 100. IlluminationLevel — уровень (от 0 до 100) освещения теней, которые вычислены при включенной опции ненаправленного освещения. AdditiveIlluminationLevel — параметр, схожий с верхним, отвечает за темные области; значения те же. UseAmbientOcclusion — будет ли вычисляться взаимное затенение объектов, 0 — выключено, 1 — включено. FadeDistance — неуказанный пока в официальной документации параметр, скорее всего отвечает за расстояние, на котором тени, созданные при помощи эффекта, будут плавно исчезать. UseIndirectLightning — будет ли вычисляться ненаправленное освещение. 1 — будет, 0 — нет. Связанные с этим параметры смотрите выше. Кстати, при желании можно располагать параметры в любом порядке в файле с настройками, так что можете для себя переместить его по соседству с IlluminationLevel и AdditiveIlluminationLevel. UseForAlphaTest и UseForAlphaBlend — неизвестные параметры; отвечают, возможно, за что-то, связанное с прозрачностью или же альфа-каналом текстур.
* * *
Настройка других эффектов рассмотрена в третьей части статьи.