Nocturning Studio Project X - NSPX Engine
Платформа: Тень Чернобыля 1.0006
Категория: Моды - правки configs, scripts, anims
Автор: Deathman
Nocturning studio project X - мод, направленный на улучшение графической, звуковой, геймплейной, технической части игры S.T.A.L.K.E.R: Shadow of Chernobyl, а так-же являющийся легкой в использовании платформой для собственных проектов, добавляющей огромный функционал направленный на облегчение работы с графикой и ее отладки.
Особенности проекта
Добавлено огромное количество новых технологий, а также была произведена огромная работа над шейдерами и сделаны изменения в исходном коде игры.
Добавлен продвинутый тип второго рендера по аналогии с другими частями серии - Улучшенное полное динамическое освещение (R2.5). Теперь только этот рендер использует DX9.0c, остальные используют вторую шейдерную модель, то есть DX9.0a
В игре присутствуют семь пресетов графики, работа которых оптимизирована под конкретные видеокарты:
Минимальный пресет - На Nvidia Geforce 8500GT при улучшенном полном динамическом освещении на разрешении 1280*1024 в среднем 23 кадров в секунду.
Низкий-средний пресеты графики рассчитаны на Nvidia Geforce 8600-9800 .
Высокий пресет - На Nvidia Geforce GTX260 OC при улучшенном полном динамическом освещении на разрешении 1280*1024 в среднем 30 кадров в секунду.
Экстремальный пресет рассчитан на Nvidia Geforce GTX460 и выше.
Ультра пресет рассчитан на Nvidia Geforce GTX560 и выше.
Добавлены FXAA и DLAA сглаживания, а также режим принудительного детектирования границ объектов для DLAA с целью увеличения четкости картинки.
Добавлены технологии самозатенения в лице SSAO, HDAO, HBAO и также экспериментального GTAO.
Добавлено трехступенчатое шумоподавление эффекта самозатенения на основе двух проходов глубинно-ориентированного фильтра с диагональной выборкой, аппаратной фильтрации и обработки квадратным фильтром.
Добавлена поддержка пред-рассчитанных карт самозатенения для всех текстур - добавить свою карту самозатенения можно сохранив ее в папке с текстурой, с ее именем и приставкой _ao в конце. wpn_mp5.dds -> wpn_mp5_ao.dds
За рассчитанные Baked AO карты спасибо Никите Тимонину.
Добавлены новые алгоритмы создания рельефа для всех текстур текстур:
Nomal (Bump) Mapping - минимальный рельеф, максимальная производительность
Parallax mapping - рельеф среднего качества, средняя производительность
Steep parallax mapping - рельеф высокого качества, большая требовательность к мощности видеокарты
Добавлен рельеф от детальных текстур - текстур царапин, трещин и мелких неровностей, может быть рассчитан всеми тремя алгоритмами.
Улучшен рельеф на земляных поверхностях (террейне) и также может быть рассчитан всеми тремя алгоритмами расчета.
Добавлена глубина резкости в прицеле, при перезарядке, при открытии инвентаря, входе в зону аномалии и при открытии окна перехода на уровень.
Глубина резкости может работать без заполнения секций для аномалий или оружия, при помощи константных значений в коде движка игры, для лучшей совместимости с другими проектами и простоты работы.
Глубина резкости имеет четыре настройки качества, влияющих на производительность алгоритма и выразительность самого эффекта.
Добавлен Motion blur. Эффект смазывания картинки в динамике
От зова Припяти перенесена и улучшена продвинутая система расчета теней от солнца - солнечных каскадов.
Качество теней регулируется отдельной настройкой и от него зависит детализация, разрешение теней, а также плавность уменьшения качества теней на удалении от камеры - количество каскадов.
При максимальном качестве солнечных теней используется 22 каскада для достижения максимальной детализации и наиболее плавного перехода качества.
Отдельной настройкой добавлена степень размытия солнечных теней.
Перенесена мягкая вода - при включении этого параметра вода использует отражение неба, мягкий переход к берегу, пену и эффект Френеля для изменения видимости дня водоема с изменением угла взгляда на него.
Реализован мягкий туман - при этом параметре туман использует цвет неба для плавного перехода, но является недоработанным и экспериментальной опцией.
Добавлен эффект Виньетирования - плавного затемнения углов экрана, для имитации кинокамеры и увеличения мрачности окружения
Добавлен эффект цветовых аббераций - эффекта имитации линзы, при котором ввиду ее кривизны цвета спектра подвергаются дисперсии и немного расходятся друг от друга.
Добавлен эффект Френеля для блеска на поверхностях - при взгляде на объект, точки с большим углом относительно камеры будут больше отбрасывать свет.
Также модели оружия теперь используют актуальную текстуру неба, а не sky_5_cube.
Возвращен эффект Bloom - эффект, улучшающий яркость и насыщенность сцены, а также имитирующий эффект следов Эйри для имитации неидеальности линзы камеры.
Технические изменения
Отладочные надписи в логах убраны в отладочный режим сборки игры, для компактности и понятности логов. Убраны такие надписи как Can't convert dik name, blender doesn't support blender и другие.
Добавлена консоль от зова Припяти, огромное спасибо VAX.
Добавлена многопоточная загрузка текстур, в дальнейшем появится многопоточная загрузка моделей.
Добавлено кеширование шейдеров.
Изменена дата создания проекта в алгоритме расчёта номера билда.
Исправлена вертикальная синхронизация и ограничение количества кадров в секунду.
Исправлены анимации главного героя от третьего лица.
Звуковые изменения
Обновлена библиотека xrSound, спасибо Maks0 за помощь, перенесена от чистого неба, что дает использовать стерео звуки, использовать любую частоту звуков, при учете использования этой частоты у всех звуков, а также изменять средство воспроизведения звука.
В составе файлов движка находятся полностью рабочие soft_oal.dll и wrap_oal.dll, с рабочим позиционированием звука относительно камеры, а также намного более лучшим звучанием, спасибо v2v3v4
Исправлен и полностью работает EAX, спасибо v2v3v4
Для всех уровней сделаны Sound occlusion model на основе геометрии Hierahical occlusion model, а также в параметрах материалов игры перенастроены параметры звукопоглощения.
Добавлена регулировка общей громкости игры.
От Зова Припяти перенесена система фоновых звуков.
Игровые изменения
HUD можно отключить отдельным параметром в настройках игры.
Ключ консольного вида от третьего лица сзади -psp включается отдельным параметром в настройках игры, но является экспериментальным и в будущем будет дорабатываться.
Добавлено больше 200 погодных эффектов ветра, которые можно отключить в настройках игры.
Наполовину перенесен формат погоды чистого неба и зова Припяти, а также из циклов динамической погоды зова Припяти сделаны отдельные погодные циклы для каждого уровня со своей атмосферой и звуковым окружением. В будущем формат погоды чистого неба и зова Припяти будет перенесен полностью.
Добавлено изменение разброса оружия при прицеливании, регулируемое параметром zoom_fire_dispersion_base в секции оружия.
Фразы в диалогов можно выбирать по их номеру прямо с клавиатуры.
Косметические или авторские изменения:
Главное меню игры заменено на вариант 2571-2588 билдов.
Добавлено неиспользуемое оружие - ТОЗ, полноценная БМ-16 и ХПСС
За модель ТОЗ спасибо OLR 2.5
За адаптацию модели полноценной БМ-16 от 2205 билда к анимациям и рукам обреза спасибо Ивану Панкову
Для МП-5 используются анимации Водилы.
Интро заменены на более качественные из открытых источников.
Не удалось реализовать
В первой версии проекта не получилось добавить:
PCSS, ввиду сложной его адаптации к DX9
Объемный свет - эффект объемного света солнца не рассчитывается правильно и не выводится на экран
В планах
В дальнейшем планируется:
Полный перенос формата погоды чн и зп, вместо частичного переноса как сейчас.
Перенос формата и системы оружия от чистого неба и зова Припяти
Добавление инверсной кинематики для ног актеров
Приведение рендеров в схему работы по аналогии с чистым небом и зовом Припяти, а также перенос xrAPI для подготовки к переносу DX10 рендера от зова Припяти.
Функционал для разработчиков
Переписано около 60% шейдера с ноля, с добавлением нового, более понятного и легкодоступного функционала, а также гибкости изменения пайплайна шейдеров.
На данный момент переписаны все шейдеры пайплайна создания геометрического буфера, переписаны эффекты и мелкие детали.
Шейдеры обоих рендеров стали отдельным проектом Visual studio со своими фильтрами и подгруппами, вдохновленными xRay 2.0
В логи выводятся все предупреждения, возникающие при компиляции шейдеров
Добавлены новые команды для отладки рендера, сцены и отдельных аспектов графики.
r2_debug_render - позволяет выбрать нужный слой кадра и вывести его на экран отдельно. После ввода нужного значения необходимо вызвать команду vid_restart
r2_debug_textures - позволяет менять текстуры на всех поверхностях
r2_debug_textures uv_cheker - позволяет просматривать UV сетку всех поверхностей и объектов, заменяя на UV cheker все текстуры на них
r2_debug_textures white - позволяет оценить графику, освещение и внешний вид без текстур, заменяя их на белую.
От разработчика
Я делал этот проект полгода, если не считать проект, из которого он вылился, в одиночку, за исключением некоторых коммитов.
Несмотря на прямую помощь иногда и поддержку знакомых и друзей я не могу продолжать разработку проекта в одиночку, потому ищу постоянную помощь от людей, обладающих навыком владения с++ больше меня, так как не смотря на мои нынешние навыки я не могу совершать большие или фундаментальные действия с движком, намного больше я способен работая с графикой. Потому судьба дальнейшей разработки проекта зависит от внешней постоянной помощи со стороны.
Огромная благодарность за помощь и поддержку VAX, Maks0, LVutner, Mihan323, Никите Тимонину и другим.
Известные проблемы и баги
1. Алгоритм самозатенения GTAO, данный мне и спасибо за который LVutner, не дописан, и имеет множество проблем, в дальнейшем будет либо заменен, либо исправлен.
2. Каскадные тени имеют артефакты - дальние каскады еле заметно фризят, а при низком разрешении между каскадами заметна однопиксельная полоса перехода - природа проблемы одна и на данный момент неизвестна.
3. Так как Steep parallax mapping, как и другие алгоритмы расчета рельефа избегает полумер и рассчитывается для абсолютно всех поверхностей очень заметны его проблемы, которые в дальнейшем исчезнут, из-за смены или переписи алгоритма. Из таких "езда UV по поверхностям" - при некотором движении вектора взгляда относительно поверхности можно заметить то, что отдельные текстуры меняют све положение. "Уход луча под UV" - явление, когда луч алгоритма уходит дальше границы развертки текстуры на модели и появляется эффект "Вылезания" черных областей текстуры и подобных вещей.
4. Лампы по локациям могут быть "Погрызаны" - природа неизвестна.
5. Сталкеры могут "уронить" фонари утром - природа неизвестна.
Видео-демонстрация
Установка
Для установки и использования, достаточно поместить в корень папки с установленной игрой Тень Чернобыля, содержимое распакованного архива (папки bin и gamedata).
Так-же необходимо установить Visual C++ 2019 x86/x64 (в случае проблем запуска мода)
При установке стоит переименовать оригинальную папку bin и скопировать на её место папку из архива, запускается новый движок при помощи xrEngine.exe
Внимание: ожидайте | до открытия ссылки |
Комментарии