Skip to content

Engine ru RU

𝐒𝐈𝐌𝐏 𝐀𝐈 edited this page Sep 29, 2026 · 12 revisions

Основные изменения

  • Полностью рабочий x64
  • Обновлён LuaJIT до версии 2.1
  • Обновлён Luabind
  • Все модули движка линкуются статически, поэтому оставлен только DX11 рендер
  • Интегрирован аллокатор памяти общего назначения mimalloc.
  • Добавлен внутриигровой редактор погоды и звуковых зон на базе ImGui - включается в игре по двойному нажатию Shift + F10.
  • Перенесена большая часть правок оригинального OGSE, X-Ray Extensions, а также из X-Ray Engine by Alpet & KD.
  • Вырезано огромное кол-во устаревшего и ненужного API, в т.ч. сетевого и мультиплеерного.
  • Движок поддерживает ogf-модели, экспортированные через SDK 0.7
  • Сделано автоопределение RU и WW архивов игры.
  • Работает режим игры от третьего лица, чтобы можно было стрелять по направлению камеры, курсор прицела не скрывается, фонарик светит куда надо и тп.
  • Адаптирована консоль из Anomaly с подсказками при вводе команд, а также с подсказками по возможным значениям этих команд.
  • Добавлена поддержка множества форматов AI-сеток и больших level.hom для больших локаций типа "Живой Зоны".
  • Ускорение загрузки игры - добавлена асинхронная загрузка формы объектов и кэш шейдеров в новом виде.

Рендер

  • Побеждена многолетняя проблема с солнцем на старых локациях! Эта проблема появилась более 10 лет назад, когда впервые появилась возможность включить правильные тени от солнца. Суть проблемы была в том, что солнце, когда находится низко по отношению к горизонту, светит сквозь землю в бункере Сидоровича, сквозь стены в Баре, сквозь холмы на Свалке и тд и тп. Нам удалось исправить это, поправив рендер теней. Теперь солнце светит правильно и правки локаций не требуются. Для управления добавлена консольная команда r_smap_2side (по умолчанию ВКЛ). Если вы используете современные локации, в которых нету проблем с солнцем - лучше выключить это.

  • Для лампочек тоже можно включить 2-side куллинг консолькой r_smap_lights_2side, но я видел лампочки в модах, которым это вредит. Так что включайте это только если вы понимаете что делаете и зачем вам это надо.

  • Добавлена поддержка чтения позиций солнца из конфига sun_positions.ltx, для погодных паков из Anomaly типа Atmospherics. Если этот конфиг есть, то будет использоваться именно он, независимо от того, включен ли где-либо dynamic_sun_movement.

  • Добавлены отладочные консольные команды для отключения отображения или обработки различных объектов:

r2_disable_hom -- отключить обработку HOM-ов. Можно использовать на кривых локациях, в которых часто наблюдаются баги из-за них.
r2_disable_particles -- отключить отображение партиклов.
r2_disable_dynamic -- отключить отображение динамических объектов.
r2_disable_light -- отключить отображение света от лампочек.
r2_disable_sectors -- отключить обработку секторов. Можно использовать на кривых локациях, в которых часто наблюдаются баги из-за них.

r2_disable_static_normal -- отключить отображение статических объектов
r2_disable_static_progressive
r2_disable_static_lod -- отключить отображение LODов
r2_disable_static_tree -- отключить отображение деревьев
r2_disable_static_tree_progressive

Многопоточность

  • Для удобной работы с потоками и асинхронными задачами была интегрирована библиотека TaskThreadPool.
  • С помощью вышеупомянутой библиотеки были реализованы асинхронные расчёты дождя r_mt_rain, солнца r_mt_sun, партиклов r_mt_particles и света r_mt_lights.
  • Добавлена многопоточная загрузка текстур r_mt_texload.
  • D3D11 Deferred Contexts для каскадов теней

Графика

  • Добавлены следующие виды сглаживания:
    • SMAA
    • TAA
    • AMD NativeAA на базе AMD FSR3
    • Nvidia DLAA на базе Nvidia DLSS
  • Добавлен Contrast Adaptive Sharpening
  • Адаптирован Screen Space Shaders addon.
    • Отражения на воде (SSR)
    • Лужи на террейне
    • Terrain Parallax + лужи
    • Parallax Occlusion Mapping для стен
    • Оптимизированные тени от травы
    • DOF
    • Интерактивная трава, реагирующая на различные действия (ходьба НПС, оружие, взрывы, монстры, аномалии и т.п.)
    • Bloom
    • Различные исправления
  • Адаптирован ENHANCED SHADERS (PBR) + Enhanced Color Grading
  • Добавлен Peak Volumetric
  • Добавлены следующие виды Ambient Occlusion: SSDO, GTAO.
  • Добавлены новые типы солнечных лучей: Volumetric, Screen Space (OGSE) и Screen Space (mrmnwar), комбинированные виды (Volumetric + Screen Space).
  • Реализованы шейдерные флары от солнца. Шейдерные флары учитывают цвет солнца из настроек погоды. Включаются командой r_lens_flare.
  • Старые флары можно включить консолькой r_lens_flare_mode old_style_flare, если они кому-то нужны.
  • Управление шейдерными макросами USE_ACES, SSFX_SHADOWS, SSFX_SSS перенесено в движок, теперь их можно переключать из консоли: ssfx_use_aces, ssfx_shadows_enable, ssfx_sss_enable.
  • Добавлена консольная команда ssfx_inter_branches, чтобы отключать отдельно от травы взаимодействие актора / нпс с кустами / ветками. По умолчанию - выкл для экономии fps.
  • По умолчанию поддержка бампов для травы отключена. Если у вас трава с бампами и вы понимаете, для чего они вам нужны, заменяйте шейдеры с папки _bumped_grass. Там оставлена версия шейдеров с поддержкой бампов
  • Добавлена консольная команда r_alphatest_threshold: можно немного подрегулировать "пышность" растительности (но без фанатизма, используйте это только если вы понимаете что делаете.) В некоторых случаях может быть полезно.
  • Добавлена консольная команда ssfx_hud_raindrops on/off для отключения эффекта капель дождя на оружии. По умолчанию - вкл.

Звук

  • Звуковой движок OpenAL 3D на базе библиотеки OpenAL Soft.
  • Поддержка EFX (OpenAL).
  • Поддержка стерео звуков.
  • Поддержка звуков с частотой дискретизации выше 44100 Гц.
  • Звук теперь воспроизводится в 32-битном формате WAVE_FORMAT_IEEE_FLOAT. Вкл/выкл можно консольной командой snd_enable_float_pcm (по умолчанию вкл.)
  • Добавлен редактор для звуковых зон (запускается как и редактор погоды по SHIFT + F10) После редактирования настройки зон сохранятся в текстовом формате senvironment.ltx и после этого двиг будет читать только этот конфиг вместо senvironment.xr. Просто распаковать senvironment.xr можно, активировав консольную команду senvironment_xr_export.
  • Добавлена консольная команда dbg_lalib_dump для дампа в лог текущего ELightAnimLibrary. Редачить его в тексте смысла нету - проще в SDK, но каждый раз искать, что там - напряжно.

Библиотеки, интеграции

  • Поддержка Discord Rich Presence.
  • Добавлена поддержка ASAN
  • Добавлена поддержка отладки рендера с помощью RenderDoc.
  • Добавлена поддержка профилирования производительности движка и скриптов с помощью Tracy.
  • Из скриптов теперь можно вызвать __debugbreak(), чтобы можно было отладить скрипт с просмотром переменных и т. п. в Visual Studio, используя LuaDkmDebugger.

Текстуры

  • Использование устаревших D3DX библиотек заменено на DirectXTex, DirectXMesh, DirectXMath. Благодаря этому движок теперь поддерживает современные форматы сжатия текстур типа BC7 и не требует наличия в системе d3dx*.dll.
  • Возвращена поддержка textures.ltx, включая настройки parallax в стиле OGSE. Отключаемо дефайном USE_TEXTURES_LTX через конфиг сборки движка.
  • Теперь можно использовать несколько textures.ltx. Например, textures1.ltx, textures2.ltx, ... . Они будут грузиться по возрастанию и дополнять друг друга. Можно для всяких текстурных паков это использовать.
  • Добавлена поддержка ЗП формата для файлов описания текстур texture_desc. Они удобнее, т.к. можно кучу текстур описать в одном файле. Также добавлена автозагрузка описаний по пути ui\textures_descr\*.xml

Шейдеры

  • Добавлена поддержка кастомных шейдерных параметров без пересборки движка. Их можно использовать для написания простых шейдеров. Добавить их можно в секцию [shader_params_export] в файле external.ltx:
[shader_params_export]
shader_param_1
shader_param_2
shader_param_3

Параметр с названием, добавленным в эту секцию, будет экспортирован в шейдеры для чтения, а также будет добавлен в виде консольной команды с таким же названием для самостоятельного изменения значений.

  • Добавлено кэширование ui_shader для ускорения работы UI.
  • Экспорт в шейдеры fog_params.y --> fog_near, fog_params.z --> fog_far. Может когда-то пригодятся.
  • Добавлена поддержка шейдерных тепловизоров на базе аддона Heatvision со своими доработками.
  • Добавлена поддержка шейдерных ПНВ на базе аддона Beef's Shader Based NVGs со своими доработками.

Спавн, бинарные файлы

  • Добавлена поддержка Anomaly-style распакованных партиклов. Добавляем в fsgame.ltx:
$game_particles$        = true|     false|  $game_data$|        particles\

Пишем в консоли particles_export - двиг распакует все загруженные партиклы в текстовый формат. После этого двиг будет всегда читать распакованные партиклы из этой папки вместо файлов particles*.xr, если эта папка не пуста. Можно после редактирования распакованных партиклов, используя конс. команду particles_import, упаковать их обратно в один particles_cop.xr файл в ЗП-формате (это важно, партиклы в ЗП-формате должны быть названы именно так, т.к. имеют отличия от ТЧ-формата партиклов и читаются немного по-другому). Стоит заметить, что запуск двига с распакованными партиклами происходит немного дольше.

  • Добавлена поддержка распаковки shaders.xr. Чтобы распаковать, в консоли должна быть активирована команда shaders_xr_export. После запуска двига, двиг распакует этот файл в текстовый shaders.ltx и после этого будет читать только этот конфиг вместо .xr файлов. Распакуется как shaders.xr, так и shaders_cop.xr (ЗП-вариант, если он есть).
  • Добавлена поддержка спавн файлов со встроенным гейм графом, как в ЗП. Собрать спавн в таком виде можно через универсальные компиляторы с дополнительным ключом -insert_graph. Такие спавны не требуют глобального game.graph и локальных level.gct, level.graph. При отсутствии данного чанка (с графами) в файле спавна, игра будет загружать game.graph и спавн, как раньше.
  • Добавлена поддержка чтения patrol_path из ltx файлов напрямую, вместо all.spawn. Формат файлов такой же, как выдает ACDC при распаковке. Для подключения, добавить куда-нибудь в system.ltx:
[engine_custom_spawn]
waypoints_file = <name_of_file.ltx> ; путь к файлу в $game_config$

При загрузке, пути из файла будут заменять пути из all.spawn с таким же именем. Можно вообще убрать пути из своего all.spawn и все перенести в ltx файлы, для удобства. Если переопределить путь пустой секцией, то этот путь будет удаляться.

Фиксы

  • HQ-Geometry fix от Shoker. Модели теперь выглядят более качественно.
  • Исправлена работа консольных команд r__tf_mipbias и r__tf_aniso - теперь они работают правильно, их значения не сбрасываются.
  • Фикс переполнения rsDVB_Size - он увеличен.
  • Скрины будут в формате png по умолчанию. Для скринов в формате jpg оставлен ключ запуска -ss_jpg.
  • Прозрачные элементы на png скриншотах теперь отображаются корректно.
  • Работают скриншоты в оконном режиме.
  • Фикс отображения на худе прозрачных поверхностей.
  • Добавлен ограничитель FPS от Shoker. Режимы ограничения переключаются консольной командой r_fps_lock (nofpslock, fpslock60, fpslock120, fpslock144, fpslock240).
  • Фикс растянутого неба.
  • Изменен диапазон значений для r__geometry_lod: от 0.5 до 3.
  • Расширенная регулировка дальности, плотности и высоты травы.
r__detail_scale ;регулирует высоту травы.
r__no_scale_on_fade ; вроде как включает и выключает регулировку высоты травы для нее, когда она ресуется в меньшем размере на расстоянии, прежде чем перестать рисоваться.
  • Расширена регулировка плотности травы. Теперь диапазон r__detail_density: [0.06, 1.0].
  • Включен фикс виртуального радиуса ламп.
  • Включен фикс "мигающих поинт-ламп".
  • Убрана обработка секции [reduce_lod_texture_list].
  • Починен R_occlusion - мерцание теней от источников света на худе, предупреждения по переполнению RENDER [Warning]: Too many occlusion queries were issued(>1536)!!! и прочие глюки этой системы.
  • Работает levelmap / cubemap screenshot ( #298 )
  • Починен и теперь работает дебаг-рендер на DX11 (для g_zones_dbg, g_vertex_dbg и тп.)
  • Добавлен шейдерный эффект для шлемов. Добавлены команды r2_visor_refl и r2_visor_refl_control (шейдер включается при включении этих 2х команд). Также добавлены команды r2_visor_refl_intensity - для настройки силы эффекта и r2_visor_refl_radius - соответственно для изменения радиуса эффекта. По умолчанию шейдер выключен консольными командами поскольку для нормальной его работы нужен скрипт который будет отслеживать надетый костюм и уже в зависимости от этого включать\выключать шейдер.
  • Добавлен новый Raindrops эффект (подходит для шлемов). Настраивается консольными командами:
r2_rain_drops -- глобальная команда для включения эффекта через меню.
r2_rain_drops_control -- команда для включения эффекта из скриптов (типа сняли шлем - выключили, одели - включили. При переключении этой командой эффект перезапускается сначала.)
r2_rain_drops_intensity -- Интенсивность эффекта. Чем больше - тем более "ярко выраженнее" будут капли.
r2_rain_drops_speed -- Скорость стекания капель.
  • Консольная команда ai_use_torch_dynamic_lights будет управлять объемным светом фонарей нпс, если он включен для них. Ранее эта команда не работала вообще.
  • Фикс тумана для шейдера models\transparent
  • Добавлен специальный шейдер для коллиматоров models_lfo_light_dot_weapons
  • Тесселяция теперь может работать на худовых моделях
  • Скрины для сохранений делаются в более высоком качестве

Прочие изменения

  • Добавлена поддержка полупрозрачного cплэша в формате png. Можно заменить сплэш, положив в папку с движком splash.png. Разрешение сплэша - 804х538.
  • С ключом -multi_instances можно отключить ограничение на запуск нескольких движков одновременно
  • Добавлен ключ запуска -prefetch_weather_textures, а то из-за того что текстуры неба в OGSR загружаются отложено, при замене погоды, чтоб увидеть в логе недостающую текстуру, надо было ждать когда соотв. погода применится. А так на первом запуске будет видно чего не хватает. Для -dev_reference_copy и -dev_gamedata_unused тоже активировал это.
  • Показ инфы в режиме demo_record теперь по клавише F1.
  • user.ltx переименован в user_ogsr.ltx, чтобы по ошибке не использовались конфиги от других движков
  • Добавлены новые консольные команды:
r__smap_size -- настройка разрешения карт теней.
r__actor_shadow -- включить тень от ГГ.
g_console_show_always -- для рендеринга лога консоли всегда
rs_always_active -- включить режим, в котором игра не будет вставать на паузу при переключении на другие окна.
g_zones_dbg -- Включить визуальную отладку рестрикторов, аномалий, переходов, лестниц и прочих зон игре.
g_vertex_dbg -- Включить визуальную отладку АИ-сетки в игре.
g_crosshair_dbg -- Принудительный показ перекрестья прицела, для настройки прицеливания, например.
g_music_tracks -- Включить музыкальный эмбиент. В последних версиях движка не требует перезапуска игры.
g_ammunition_on_belt -- Включить использование патронов только с пояса
g_spawn <section_name> -- Спавн предмета по имени секции на землю
g_spawn_to_inventory <section_name> -- Спавн предмета по имени секции в инвентарь актора
hud_draw -- Показать/скрыть худ.
hud_adjust_mode -- Настройка прицеливания для оружия. Вот видео, как ей пользоваться: https://www.youtube.com/watch?v=kIcXzWVR2xI
show_wnd_rect -- Визуальная отладка UI в игре
show_wnd_rect_all -- Визуальная отладка UI в игре
show_wnd_rect_names -- Показывать имена UI статиков в отладке
jump_to_level <level_name> -- быстрый переход на нужный уровень
time_factor -- Команда для перемотки времени. Заоблачные цифры выставлять не рекомендую, движок может заклинить
hud_crosshair_build -- включить круглый курсор, как в билдах.
rs_hw_stats --показ статистики нагрузки CPU
set_weather --команда для изменения погоды
input_exclusive_mode --команда для настройки режима захвата клавиатуры/мыши. По умолчанию должно быть включено. Выключать только тем, кому надо чтобы после запуска движка не блокировались мультимедийные клавиши на клавиатуре. Но при отключении может возникнуть множество различных проблем на системах с несколькими мониторами и не только из-за недозахвата управления. Здесь, в отличие от ЗП, значение этой команды сохраняется в user.ltx.
g_camera_collision -- Вкл/выкл псевдо-коллизию камеры
g_font_scale_x -- Ширина шрифтов
g_font_scale_y -- Высота шрифтов
dbg_draw_skeleton -- Визуальная отладка скелетов объектов в игре
dbg_string_table_error_msg -- Отладочная команда для вывода непереведённых строк в лог
r_font_shadows -- Вкл/выкл тени от шрифтов
particle_update_mod -- Управление плавностью партиклов
level_env_mod_export -- автораспаковка файлов `level.env_mod` в `ltx`.
give_info_portion -- выдать инфопоршень актору
disable_info_portion -- отобрать инфопоршень у актора

Clone this wiki locally