Рендер:
- Адаптирован SCREEN SPACE SHADERS Addon v18.1
- Адаптирован ENHANCED SHADERS (PBR) + Enhanced Color Grading v1.10
- Добавлен шейдер GTAO by Doenitz
- Теперь шейдеры в OGSR:GA и здесь будут общие. Соотв. корректная работа этих шейдеров на тч-погоде не гарантируется. Она должна работать, но если наблюдаются какие-то визуальные проблемы с погодой/освещением, рекомендуем использовать зп-погоду, например эту или любую другую.
- Теперь двиг должен правильно выбирать самый мощный GPU из имеющихся (актуально на ноутах с несколькими GPU)
- Использование устаревших D3DX библиотек заменено на DirectXTex, DirectXMesh, DirectXMath. Благодаря этому двиг теперь поддерживает современные форматы сжатия текстур типа
BC7
и не требует наличия в системе d3dx*.dll
Оптимизация:
- Добавлено кэширование визуалов для уменьшения лагов при приближении к большим скоплениям объектов. Для этой же цели переделан механизм загрузки звуков для НПС. Вкл/выкл консольной командой
g_prefetch
.
- Добавлено кэширование
ui_shader
для ускорения работы UI
- Добавлена оптимизация для расчетов инверсной кинематики из Anomaly
- Фикс лагов из-за партиклов если застрять на машине в кустах
Многопоточность:
- Интегрирован TaskThreadPool для удобной работы с потоками и асинхронными задачами
std::packaged_task
- Добавлен асинхронный расчет дождя (конс. команда
r_mt_rain
)
- Добавлен асинхронный расчет травы (конс. команда
r_mt_details
)
- Добавлен асинхронный расчет солнца (конс. команда
r_mt_sun
)
- Переделана асинхронная загрузка текстур (конс. команда
r_mt_texload
)
UI:
- Переделана система шрифтов и парсер текста для корректной поддержки
UTF-8
. Шрифты с поддержкой UTF-8
можно генерировать используя Fonts_generator. Обратная совместимость с ANSI
-символами, детект UTF-8 BOM
и прочие нюансы учтены.
- Чтобы не создавать кучу текстур шрифтов для разных размеров текста, можно создать одну текстуру большого размера и уменьшать через конфиг до нужной величины, например:
[ui_font_bender]
shader = font
texture = ui\ui_font_bender ;Текстура сгенерированного шрифта большого размера
scale_x = 0.5 ;Уменьшаем в два раза высоту
scale_y = 0.5 ;Уменьшаем в два раза ширину
interval = 1, 0.75 ;Можно регулировать интервал между буквами сверху и сбоку.
- Добавлена поддержка выравнивания текста по двум сторонам (
alJustified
для скриптов, align="j"
для xml)
- Сделаны отключаемыми кринжовые статики кубиков в ПДА (
a_static
, anim_static
)
- Поддержка рандомных загрузочных экранов (
intro_l01_escape_1.dds
, intro_l01_escape_2.dds
, 3
, 4
, ...
)
- Название валюты вынесено в xml:
ui_st_money_descr
Оружие:
- Добавлена поддержка управления костями пулемётной ленты
bullet_bones = bullet_1, bullet_2, bullet_3, bullet_4, bullet_5, bullet_6, bullet_7, bullet_8, bullet_9, bullet_10, bullet_11, bullet_12
- Добавлена опция в конфиг оружий
dont_interrupt_shot_anm
(по умолчанию выкл.) - давать ли доиграть анимацию выстрела после выстрела. Не на всех оружиях это хорошо выглядит, только для стволов из Gunslinger подходит отлично
- Можно отключить шейдерное авторастягивание прицельной сетки добавив в конфиг предмета
scope_texture_autoresize = false
, например для широкой текстуры бинокля
Всё остальное:
- Добавлен внутриигровой редактор погоды на базе ImGui - включается в игре по
Shift
+ F10
- Добавлена поддержка полупрозрачного cплэша в формате
png
- Клавиши скрытия/показа худа теперь можно настроить в опциях, т.к. стандартные
NUM+
/NUM-
есть не на каждой клавиатуре
- При скрытии худа теперь будет скрываться весь UI, включая окно новостей и курсор, что бы было удобнее делать скриншоты
- Адаптация #432 : Добавлена поддержка спавн файлов со встроенным гейм графом, как в ЗП. Собрать спавн в таком виде можно через универсальные компиляторы с дополнительным ключом
-insert_graph
. Такие спавны не требуют глобального game.graph
и локальных level.gct
, level.graph
. При отсутствии данного чанка (с графами) в файле спавна, игра будет загружать game.graph
и спавн, как раньше.
- Фикс багов физики - зафиксированные физ. объекты теперь не должны со временем менять своё положение в некоторых случаях
- Добавлен каллбек, который вызывается перед поднятием предмета ГГ (нужен для анимации подбора предметов)
[engine_callbacks]
; Если вернуть false - движок не будет поднимать предмет
actor_on_item_before_pickup = ogsr_actor_animation.on_item_before_pickup
- Добавлен метод
level.iterate_nearest
и каллбеки on_footstep
, on_actor_land
, on_actor_jump
из Anomaly
- Вытащена из дебага в релиз консольная команда
dbg_draw_skeleton
- OpenAL Soft обновлён до версии
1.23.1
- Mimalloc обновлён до актуальной версии
- Генератор рандомных чисел (
CRandom
) теперь использует std::mersenne_twister_engine
и работает намного лучше
- ...Множество прочих мелких фиксов и изменений...