Что такое мягкие частицы в сталкере
Прежде всего разберемся с настройками игры, которые помогают нам существенно увеличить FPS (количество кадров в секунду) без заметного снижения качества картинки.
Сразу оговоримся, что значит слабое, среднее и сильное влияние на производительность:
- Слабое влияние на производительность – 1-3 FPS.
- Среднее влияние на производительность – 5-7 FPS.
- Сильное влияние на производительность – 10 и более FPS.
- Дальность видимости. Среднее влияние на производительность.
- Детализация объектов. Практически нет влияния на производительность. Разница может оказаться заметна на старых видеокартах.
- Качество текстур. Есть влияние на производительность, если мало видеопамяти и «железо» поддерживает только DX8.
- Фильтрация текстур. Практически нет влияния на производительность.
- Сглаживание (выбор 2x-4x-8x). Сильное влияние на производительность. Лучше установить на минимум.
- Сглаживание (ползунок-полоска). На производительность не влияет.
- Плотность травы. Влияние на производительность по экспоненте. Отключаем.
- Дистанция травы. Среднее влияние на производительность.
- Высота травы. Влияние на производительность ниже среднего. Низкие и средние значения на производительности почти не скажутся, а высокие – скажутся заметно.
- Тень от солнца. Сильное влияние на производительность. Лучше выключить.
- Тень травы. Влияние на производительность ниже среднего.
- Дальность освещения. Влияние на производительность ниже среднего.
- Качество теней. Среднее влияние на производительность.
- Свет фонариков NPC. Для современных карт влияние на производительность отсутствует.
- Детальный рельеф. Для современных карт влияние на производительность отсутствует.
- Steep parallax. Для современных карт влияние на производительность отсутствует.
- Качество солнца. Влияние на производительность ниже среднего.
- Солнечные лучи. Среднее влияние на производительность.
- Интенсивность блеска. Отсутствует влияние на производительность.
- Режим SSAO. Среднее влияние на производительность. Для AMD рекомендуется HDAO, для NVIDIA – HBAO.
- Качество SSAO. Среднее влияние на производительность.
- Мягкая вода. Отсутствует влияние на производительность.
- Мягкие частицы. Рекомендуется отключить. Могут возникать артефакты графики.
- Глубина резкости. Отсутствует влияние на производительность.
- Объемный свет. Отсутствует влияние на производительность.
- Намокание плоскостей. Слабое влияние на производительность.
- Вертикальная синхронизация. Влияние на производительность зависит от старости видеокарты.
- Частота 60 Гц. Отсутствует влияние на производительность.
Параметры r1_* (для режима DirectX 8)
Вкл./Выкл. свет от вашего фонарика. Не рекомендую его выключать, а то ночью слишком страшно будет 🙂
Возможно, это влияет на дальность освещения вашим фонариком.
Установка числа источников света. Не сильно влияет на качество графики и на ФПС.
Регулирует величину линейной интерполяции освещения модели. Короче, при повышении значения возрастёт качество графики некоторых моделей, например, вашего оружия.
Регулирует основной Уровень Детализации (LOD), чем выше величина, тем больше детализация и видимость объектов на расстоянии, но за счет легкого падения FPS.
Установка подобна предыдущей, но управляет детализацией некоторых объектов на карте. Снова, чем выше значение, тем меньше ФПС.
Управляет чёткостью текстур на расстоянии. При уменьшении значения текстуры будут более чёткие, но за это придется платить незначительным падением ФПС. Повышение параметра сделает текстуры размытыми, но может чуть-чуть поднять ФПС.
Параметры r2_* (для режима DirectX 9)
Эта опция включает т.н. псевдосглаживание. Это не является настоящим антиальясингом, а просто немного размазывает картинку на экране. Если у вас ЖК монитор, вы можете получить похожий эффект нахаляву, поставив разрешение экрана чуть меньше родного 🙂 При его включении немного падает ФПС. Если включить эту опцию в DX10-режиме, это может привести к появлению артефактов.
Регулирует величину псевдосглаживания. Чем выше значение, тем сильнее размытие. Значение 0.300 даёт разумную величину размытия.
Эта опция регулирует расстояние, на котором действует псевдосглаживание. Вы можете сами подобрать удобное вам значение, но их увеличение не обязательно означает прирост качества. Например, значение r2_aa_break 0.000000,1.000000,0.000000 даст чёткие закрытые помещения и размытые открытые пространства.
Этот параметр нужен для более точного управления псевдосглаживающим эффектом. Чем выше значения, тем сильнее смазывание.
При включении опции частично будет использоваться DX8 освещение. Вроде бы, производительность должна подняться, но на деле может быть наоборот…
Эта фича регулирует величину постфильтра Depth of Field. Но всё же, лучше менять значения рассмотренных ниже опций r2_dof_*.
Эта настройка управляет расстоянием, на котором включается DoF. Это не относится к временному повышению DoF (при перезарядке оружия), а действует постоянно. Понижение опции с значения 600 по-умолчанию увеличит размытость картинки.
Чем ниже значение этой величины (по дефолту 1.4), тем меньшая часть вашего поля зрения будет «в фокусе». Это будет особенно заметно при изменении значений r2_dof_far и r2_dof_near.
Эта опция регулирует общий уровень DoF. При установке 0, DoF не будет заметен вообще, а более высокие числа повышают его уровень.
Уровень размытия приближенных к игроку предметов (например, ваша пушка). По умолчанию значение -1.25.
Уровень DoF применительно к небу. По умолчанию 30, и чем выше оно, тем более размытое небо.
Вкл/выкл более реалистичный метод освещения «Global Illumination», при котором свет может отражаться с поверхностей и освещать другие поверхности. Включение этой опции сильно бьёт по производительности. Опция не работает в двух режимах «Улучшенное полное динамическое освещение».
Настройка расстояния действия Global Illumination.
Настройка глубины теней.
Опция регулирует уровень Global Illumination. Значения должны быть кратны 8.
Регулирует отражающий эффект поверхностей.
Чем больше значение этого параметра, сильнее блестят глянцевые поверхности.
Эта опция включает усиленную форму Bloom’a, но не заменяет HDR Bloom’ом. При включении картинка будет слишком яркой и смазанной, на ФПС почти не влияет. Вам не нужно включать эту опцию, чтобы использовать другие параметры r2_ls_bloom_*.
Управляет уровнем размытия Bloom’a, чем больше величина, тем сильнее засветка от источников света.
Регулирует яркость Bloom’a, чем больше значение, тем менее яркость Bloom’a, использующегося вместе с HDR. В результате, при значении 1, картинка будет как на DX8. Можете попробовать значение 0.350, чтобы блум был более красивым.
Регулятор дальности вида источников света. Низкие значения увеличивают глубину и границу источника, повышение параметра может практически полностью удалить источники света. Оптимально значение по умолчанию.
Аналогичная предыдущей установка.
Настройка качества теней.
Регулирует смазывание при движении. Отлично смотрится со значением 0.1, причём это не влияет на ФПС. Чтобы активировать это, недостаточно изменить параметр в конфиг-файле, нужно запустить игру с параметром –mblur. Открываете свойства ярлыка игры, и в пути к запускающему экзешнику дописываете –mblur через пробел. Получится примерно так: «D/Supergames/STALKER/XR_3DA.exe» –mblur. Опция не работает в двух режимах «Улучшенное полное динамическое освещение».
Вкл./выкл. Parallax Mapping
Эта опция должна управлять Parallax Mapping’ом, но никаких визуальных изменений не наблюдается.
Настройка дистанции освещения.
Регулирует Уровень Детализации (LOD) для мира игры, чем выше величина, тем больше детализация и видимость объектов на расстоянии, но за счет легкого падения FPS.
Опция подобна предыдущей, но управляет детализацией объектов.
Вкл/выкл Солнце как источник света. Если выкл, деревья и дома не будут отбрасывать тени. Если опция включена, можно поиграться с параметрами r2_sun_depth_*
Эти параметры регулируют r2_sun, если оно включено. Это управление уровнем детализации теней и границей солнечного света и теневых областей. Оптимальны значения по умолчанию.
Контролирует качество солнечного света на близких к игроку поверхностях.
Контролирует качество солнечного света на далёких от игрока поверхностях.
Определяет яркость Солнца, с величинами ниже нуля выключает Солнце :).
Регулирует яркость предметов, которые освещены Солнцем.
Регулирует общую яркость всех предметов.
Определяет, насколько чёткими будут текстуры на расстоянии. При уменьшении значения текстуры будут более чёткие, но за это придется платить незначительным падением ФПС. Повышение параметра сделает текстуры размытыми, но может чуть-чуть поднять ФПС. Не работает в DX10-режиме.
Вкл/выкл Tone Mapping. Включение сделает HDR более качественным без падения производительности. Следующие опции r2_tonemap_* позволяют его настраивать.
Опция указывает время адаптации зрения к изменению уровня освещения.
Эта установка регулирует Tone Mapping’а в темных областях. Чем выше эта установка, тем темнее HDR.
Эта установка имеет наиболее сильное влияние на HDR, и если её поднять, эффект HDR будет более богатый. Например, попробуйте величину 1.2, чтобы HDR в С.Т.А.Л.К.Е.Р.е выглядел, как в Oblivion’е.
Экспериментальная опция, включение непротестированных шейдеров. Скорее всего, приведёт к снижению производительности или артефактам.
Вкл./выкл. мягкие частицы.
Вкл./выкл. мягкую воду.
r2_ssao st_opt_high [off,high]
r2_sun_quality st_opt_high [low,high]
r2_sun_shafts st_opt_high [off,high]
Солнечные лучи, сильно влияют на ФПС. Поэтому их можно выключить, ФПС хорошо поднимется, а качество упадёт несильно.
Параметры r3_* (для режима DirectX 10)
Эта фича контролирует расстояние, на котором видны мокрые поверхности. Значение по умолчанию 30, чем оно выше, тем дальше видны мокрые поверхности.
Эта фича контролирует расстояние, на котором видны мокрые поверхности рядом с игроком. Значение по умолчанию 10, чем оно выше, тем менее детализированы близкие к игроку мокрые поверхности.
Настройка разрешения карт мокрых поверхностей. Изначально стоит 256, если его повысить, качество этих поверхностей возрастёт, но FPS уменьшится.
Вкл./выкл. специальную оптимизацию рендеринга под DX10. Включение может поднять FPS, но вызвать некоторые артефакты, а может и не вызвать 🙂
Это управление сглаживанием в DX10-режиме. Для сохранения изменений необходим перезапуск игры.
Параметры для всех режимов
Настройка сглаживания. Чтобы работало в DX10, вместе с этой опцией нужно включить r3_msa.
Настройка анизотропной фильтрации.
Настройка расстояния, на котором видны высокодетализированные текстуры. Чем выше значение, тем дальше их видно.
Время жизни таких эффектов, как следы от пуль, кровь и т.п. Выше значение – дольше они будут оставаться.
Уровень детализации объектов. Большие значения соответствуют лучшей детализации.
Уровень детализации травы. Большие значения соответствуют лучшей детализации.
Когда включено, на экране будет показана всякая техническая статистика, в т.ч. число кадров в секунду – FPS.
Вкл/выкл аппаратное ускорение звука.
Настраивает, сколько оперативной памяти используется для кэширования звуков, чтобы предотвратить заедания. При этом используется в два раза больше памяти, то есть, если вы поставите 16, будет использовано 32 МБ. Желательно ставить максимальное значение (32), чтобы предотвратить подгрузки звука во время игры.
Опция определяет число одновременных источников звука, повышение отрицательно влияет на производительность при слабой (читай-встроенной) звуковой карте. На слабых звуковухах лучше ограничиться значением 24.
Настройка разрешения экрана, здесь можно выставить разрешение, которого нет в меню игры.
Вкл\выкл тени от объектов, освещаемых фонарями.
По умолчанию, когда вы жмёте Вперёд, игрок бежит, если эту опцию выключить, он будет идти шагом.
Уровень детализации удалённых текстур. Чем ниже значение, тем лучше текстуры.
Вертикальная синхронизация. Рекомендую отключить это.
Настройка дальности видимости.
Рендеринг частиц
Код шейдера, который используется для отрисовки частиц находится в файле SoftDiffuseColoredShader.js. Давайте разберемся как он устроен.
Основная идея поиска пересечения геометрий частицы и сцены состоит в сравнении значения текущей глубины фрагмента с сохраненным значением из карты глубины.
Сравнение различных значений коэффициента “мягкости” частиц:
Рендеринг
Что такое мягкие частицы в сталкере
На начальных этапах выгоднее всего начинать улучшение с повышения надёжности ствола. Если это возможно, то стоит также уменьшать вес оружия. Такие апгрейды позволят нам экономить деньги на первых локациях при ремонтах, а также брать больше хабара для продажи торговцам. В итоге наш капитал будет существенно и быстро расти.
Для пистолетов обязательно апгрейдим величину магазина, точность и скорострельность. Для прицельной стрельбы на ближних и средних дистанциях точность и скорострельность имеют важное значение, иначе наша пистолетная стрельба будет малоэффективна.
Для дробовиков такие параметры как настильность и удобность совершенно не нужны, их оставляем сразу. Тем более для дроби не нужна точность, ведь дробовик как раз нужен нам из-за его огромного разлёта дроби при выстреле, чтобы уверенно поражать группы целей. Поэтому в дробовиках улучшаем ёмкость магазина, отдачу и скорострельность. Скорострельность особо важна, потому что у дробовиков она низкая.
Для снайперских винтовок приоритетом в апгрейдах будут настильность и точность, это важные параметры для стрельбы на большом расстоянии. Если винтовка стреляет одиночными выстрелами, то отдачу можно вообще не улучшать. Для автоматической стрельбы очередями нужно поработать и над уменьшением отдачи. Также очень поможет улучшение темпа стрельбы, ведь снайперки обычно стреляют медленно.
Что такое мягкие частицы в сталкере
Свет фонариков NPC
Вертикальная синхронизация
Ограничение FPS - 0
Качество текстур: Максимум
Детализация объектов (LOD): Максимум
Значения MIP-текстур: Максимум
Фильтрация текстур: Максимум
Сглаживание: 4x
SMAA: Высоко
Детальный рельеф
Steep parallax
Тесселяция
Дальность освещения: 0.5
Качество теней: Максимум
Тень от игрока
Интенсивность блеска: 2.5
Тень от солнца
Качество солнца: Высоко
Режим солнечных лучей: Screen Space
Качество солнечных лучей: Высоко
Основная интенсивность лучей: 0.5
Базовая интенсивность лучей: 0.5
Режим SSAO: HBAO
Качество SSAO: Высоко
Объемный свет
Мягкая вода
Мягкие частицы
Глубина резкости
Размытие движений
Величина размытия движений: Минимум
Намокание поверхностей
Объемный дым
Мягкие частицы
Так что такое эти мягкие частицы? Вы можете помнить что во многих старых играх (времен Quake 3 и CS 1.6) эффекты дыма и взрывов имели очень четкие плоские границы на пересечении частиц с другой геометрией. Все современные игры уже не имеют подобных артефактов благодаря использованию мягких частиц — то есть частиц с размытыми, “мягкими” краями вокруг прилегающих объектов.
Оптимизация отрисовки спрайтов
В этой сцене мелкие пылинки отрисовываются как точечные спрайты (примитивы типа GL_POINTS). Этот режим удобен тем что он автоматически создает готовую квадратную геометрию частицы с текстурными координатами. Однако, они имеют и недостатки, которые делают их использование неуместным для крупных частиц клубов тумана. Прежде всего, они отсекаются плоскостями отсечения матрицы камеры по координатам центра спрайта. Это приводит к тому что они резко исчезают из вида на краях экрана. Также, квадратная форма спрайта не очень оптимальна для фрагментного шейдера так как он вызывается и в тех местах где текстура частиц пустая, что вызывает заметную излишнюю перерисовку. Мы используем оптимизированную форму частицы — с обрезанными краями в тех местах где текстура полностью прозрачна:
Мягкие частицы в WebGL и OpenGL ES
Системы частиц это одни из самых простых способов сделать 3D сцену визуально богаче. В одном из наших Android приложений 3D Buddha Live Wallpaper достаточно простая сцена, которой было бы неплохо добавить чуть больше деталей. И когда мы думали как добавить разнообразия изображению то самым очевидным решением заполнить пустое пространство вокруг статуи Будды стало добавление клубов дыма или тумана. Благодаря использованию мягких частиц мы достигли довольно хорошего результата. В этой статье мы детально опишем реализацию мягких частиц на чистом WebGL / OpenGL ES без использования сторонних библиотек и готовых 3D-движков.
Разница между старым и обновленным приложением даже превзошла наши ожидания. Простенькие частицы дыма существенно улучшили сцену, сделали ее богаче и полнее. Клубы дыма это и дополнительные детали за которые “цепляется глаз”, а также способ сделать переход между основными объектами и фоном более плавным:
Рендеринг карты глубины
Для рендеринга карты глубины сцены, сперва нам потребуется создать текстуры для карты глубины и цвета и назначить их определенному FBO. Это делается в методе initOffscreen() в файле BuddhaRenderer.js.
Сам рендеринг Actual объектов сцены в карту глубины выполняется в методе drawDepthObjects(), который отрисовывает статую Будды и плоскость пола. Однако, тут есть одна хитрость для улучшения производительности. Поскольку на данном этапе рендеринга нам не нужна информация о цвете, а лишь глубина, рендеринг в цветовой буфер отключается вызовом gl.colorMask(false, false, false, false), а затем включается снова вызовом gl.colorMask(true, true, true, true). Функция glcolorMask() может выключать и выключать запись красного, зеленого синего и альфа компонента по отдельности, так что для того чтобы полностью отключить запись в буфер цвета мы ставим всем компонентам флажок false, а затем включаем их для рендеринга на экран, выставляя их все в true. Результат рендеринга в текстуру глубины можно увидеть, раскомментировав вызов drawTestDepth() в методе drawScene(). Поскольку текстура карты глубины имеет только один канал, она воспринимается как только красная, синий и зеленый каналы равно нулю. Визуализация карты глубины нашей сцены выглядит так:
Читайте также: