Как включить RTX Remix в игре Killing Floor
Короткий ответ: поставить можно, пользоваться — нет. Рантайм прицепится к Killing Floor, и на нескольких закрытых внутренних картах вы получите геометрию с трассировкой пути. Всё остальное — небо, ландшафт, половина материалов и всё освещение — сломается, и причины заложены в том, как Unreal Engine 2.5 разговаривает с Direct3D. Эта страница объясняет механизм, даёт точные шаги установки для тех, кто хочет увидеть результат своими глазами, и называет цену доведения до нормального вида.
Что делает RTX Remix
Remix — не инжектор шейдеров. Он заменяет рендерер игры на границе API и пересобирает сцену с нуля:
d3d9.dll, положенный рядом с исполняемым файлом игры, перехватывает каждый вызов Direct3D 9. Для 32-битных игр клиентскийd3d9.dllпередаёт вызовы вNvRemixBridge.exe— 64-битный серверный процесс, который выполняет настоящий рендеринг в 64-битном адресном пространстве.- Рендерер (
dxvk-remix) хеширует каждую текстуру и меш, которые видит, и восстанавливает граф сцены из вызовов отрисовки. - Эта сцена рендерится полной трассировкой пути через Vulkan ray tracing, сверху добавляется DLSS.
- Remix Toolkit позволяет привязать к этим хешам замены: PBR-материалы, USD-меши с большим числом полигонов и расставленные вручную источники света.
Шаг 2 — это и есть вся суть. Remix может пересобрать сцену только если игра описывает её стандартными терминами — через fixed function pipeline, где геометрия, трансформации, материалы и источники света приходят как документированное состояние D3D, а не как непрозрачный байт-код шейдеров. Официальное руководство NVIDIA по совместимости говорит прямо: игры DirectX 8 и 9 на фиксированном конвейере, лучшие шансы у релизов 2000–2005 годов, «игры, вышедшие после 2010 года, как правило несовместимы, если их не дорабатывали», а игры на DirectX 9.0c «обычно почти полностью на шейдерах, поэтому скорее всего работать не будут». Поддержка вершинных шейдеров есть, но она экспериментальная и ограничена простыми случаями.
Требования к железу
| Минимум | Рекомендуется | |
|---|---|---|
| Видеокарта | Любая RTX | GeForce RTX 4070 |
| Видеопамять | — | 12 ГБ |
| Процессор | — | Intel i7-13700K / Ryzen 7 7700X |
| Оперативная память | — | 32 ГБ |
| Накопитель | — | 10 ГБ NVMe SSD |
| Система | Windows 10 | Windows 11 |
«Любая RTX» — это жёсткий порог, а не пожелание. Remix рендерит через аппаратную трассировку лучей, поэтому Pascal и более старые карты исключены полностью: у GTX 1080 Ti нет RT-ядер, и рантайм на ней не запустится вообще, сколько бы видеопамяти и оперативной памяти за ней ни стояло. Программного запасного пути нет.
Подходит ли Killing Floor?
Проверки на локальной установке (SteamLibrary\steamapps\common\KillingFloor\System):
- Тип машины в PE-заголовке
KillingFloor.exe—0x014C, то есть 32-битный x86. Хорошо: путь через мост рассчитан как раз на 32-битные игры. D3D9Drv.dll(Direct3D 9),D3DDrv.dll(Direct3D 8) иOpenGLDrv.dllлежат вSystem\. Две возможные точки входа для Remix.- Движок — Unreal Engine 2.5, релиз игры 2009 год: на четыре года позже окна, которое NVIDIA называет перспективным, и на кодовой базе 2002–2004 годов.
То есть API подходит и разрядность подходит. А описание сцены — нет, и именно оно решает исход.
Установка по шагам
Это самый быстрый способ увидеть результат самому. Заложите час. Сначала сделайте резервную копию System\KillingFloor.ini.
1. Скачайте рантайм. Загрузите архив релиза RTX Remix runtime. В нём есть d3d9.dll (перехватчик-мост) и папка .trex\ с NvRemixBridge.exe и вторым d3d9.dll (собственно рендерер dxvk-remix).
2. Скопируйте рядом с исполняемым файлом. И d3d9.dll, и целиком папка .trex\ кладутся в каталог игры System\ — тот, где лежит KillingFloor.exe, а не в корень игры:
SteamLibrary\steamapps\common\KillingFloor\System\
├── KillingFloor.exe
├── d3d9.dll <- клиент моста (32-бит)
├── rtx.conf
└── .trex\
├── NvRemixBridge.exe
└── d3d9.dll <- рендерер dxvk-remix (64-бит)
3. Добавьте d3d8to9, если идёте путём DirectX 8. d3d8to9 от crosire переводит вызовы D3D8 в D3D9 на фиксированном конвейере — именно так были собраны попытки с UT2004. Его d3d8.dll кладётся в ту же папку System\.
4. Укажите движку нужное устройство рендеринга. В KillingFloor.ini альтернативы уже есть, закомментированные, в секции [Engine.Engine]:
[Engine.Engine]
RenderDevice=D3D9Drv.D3D9RenderDevice
;RenderDevice=D3DDrv.D3DRenderDevice
;RenderDevice=Engine.NullRenderDevice
;RenderDevice=OpenGLDrv.OpenGLRenderDevice
Сначала попробуйте D3D9Drv — Remix нацелен на D3D9 напрямую. Если экран пустой или игра не запускается, переключитесь на старый D3DDrv (DirectX 8) вместе с установленным d3d8to9: драйвер DX8 сильнее опирается на фиксированный конвейер, а это то, что нужно Remix:
[Engine.Engine]
;RenderDevice=D3D9Drv.D3D9RenderDevice
RenderDevice=D3DDrv.D3DRenderDevice
Учтите: в файле несколько блоков вида [Engine.Engine] — правьте активный, остальные не трогайте.
5. Запустите игру и нажмите Alt + X. Если рантайм прицепился, поверх игры откроется меню графических настроек Remix. Это меню и есть вердикт: видимая геометрия, освещённая трассировщиком пути, означает, что конвейер захвата работает и есть с чем работать дальше. Чёрный экран, каша из геометрии или отсутствие меню означают, что Remix так и не получил пригодную сцену.
Что вы увидите на самом деле
Unreal Tournament 2004 работает на том же семействе рендереров Unreal Engine 2.5, что и Killing Floor, и сообщество уже проводило этот эксперимент с d3d8to9 и Remix. Итог по отчётам: часть внутренних карт играбельна, часть полностью сломана, ландшафты и небо отрисовываются некорректно. От Killing Floor ждите того же — закрытые коридорные карты частично работают, открытые непригодны.
Оригинальный Unreal Engine 1 через одни лишь обёртки показал себя не лучше. Даже с патчем OldUnreal 227f, дающим нативное устройство рендеринга D3D9, результат описывали как неиграбельный: большая часть текстур полупрозрачная или отсутствует, сильные артефакты.
Почему всё ломается
Четыре структурные причины, и ни одна не лечится конфигом.
Лайтмапы вместо источников света. Unreal Engine 2.5 просчитывает статическое освещение заранее, в текстуры-лайтмапы, и накладывает их на геометрию мира через вторую текстурную ступень. Набор источников света для этого освещения он в D3D не передаёт никогда. Поэтому Remix восстанавливает геометрически корректную сцену вообще без источников света, а трассировщик пути без света рисует чёрное. Каждый источник приходится расставлять руками в Toolkit, для каждой карты отдельно.
Загрязнённое альбедо. Запечённое освещение лежит внутри диффузных текстур. Скормите их трассировщику, который сам считает настоящие отражённые лучи, — и свет применится дважды, а в поверхности будут вписаны тени там, где освещение теперь динамическое. Лечится только ручной классификацией и перетегированием материалов и последующей отрисовкой чистого альбедо.
Шейдерные пути. Устройство рендеринга D3D9 в UE2.5 не держится фиксированного конвейера. Проекторы, декали, зеркальные материалы и пути скелетных мешей идут через шейдеры, и именно эти вызовы отрисовки Remix восстановить не может — они пропускаются или растеризуются вне трассируемой сцены.
Небо и ландшафт. И то, и другое рендерится особыми путями со своими трансформациями и обработкой координат — поэтому в UT2004 они ломаются первыми. Открытые карты Killing Floor зависят от обоих.
Единственный работающий подход
Для Unreal Engine 1 сообщество перестало бороться с обёртками и написало устройство рендеринга специально под Remix: D3D9DrvRTX с поддержкой Unreal Tournament, Unreal, Deus Ex, Rune, Undying и других. Список того, что ему пришлось сделать, — честная оценка стоимости любого порта в семействе Unreal:
- Преобразует источники света движка в физически корректные, с собственной формулой яркости, компенсирующей обрезание по радиусу в исходном рендерере (
light.brightness * pow((light.radius / LightRadiusDivisor), LightRadiusExponent) * LightMultiplier * brightnessSetting). - Запекает процедурно генерируемые текстуры в уникальные статические, потому что хеш процедурной текстуры меняется от кадра к кадру и Remix теряет замену.
- Добавляет отдельный рендеринг скайбокса и генерирует опорные меши, чтобы Remix мог стабильно привязываться в пространстве.
Это переписанный рендерер, а не настройка. Такое же лечение для Killing Floor означает портирование открытого устройства рендеринга Unreal Engine 2 со всем перечисленным выше — исходники D3D9Drv от Tripwire закрыты — а затем художественную работу. И вот она — большая цифра: свет и материалы делаются под каждую карту, а сервер со 165 картами умножает это на 165. Одна нормально сделанная карта — это десятки часов.
Мультиплеер и античит
Remix работает только на стороне клиента. Сервер видит обычного клиента, для остальных игроков ничего не меняется. Но вы кладёте подменный d3d9.dll в каталог игры и запускаете второй процесс, который владеет рендерингом. Графические обёртки обычно допускаются, но гарантии нет, а в Killing Floor включён VAC. На своих серверах решать вам; на публичных — оценивайте риск сами.
Что делать на не-RTX железе
ReShade с шейдером screen-space GI работает на Pascal и старее, ставится минут за пятнадцать, не трогает код движка и не может сломать геометрию карт. Он даёт заметную часть визуального скачка — приближение непрямого освещения, ambient occlusion, современный тонмаппинг — за смешную долю усилий. Апскейл текстур тоже не зависит от Remix и обрабатывается пакетно по существующим пакетам.
Статус проверки
Проверено локально: KillingFloor.exe — 32-битный x86 (PE machine 0x014C); D3D9Drv.dll, D3DDrv.dll и OpenGLDrv.dll присутствуют в System\; в KillingFloor.ini есть закомментированные варианты устройства рендеринга, приведённые выше.
Не проверено: сама процедура установки на Killing Floor не выполнялась, потому что Remix требует видеокарту RTX, а на машине, где это писалось, стоит GTX 1080 Ti. Предсказанный результат выведен из результатов по UT2004 и Unreal Engine 1, приведённых ниже, на том же семействе рендереров — считайте это хорошо обоснованным прогнозом, а не отчётом о тесте. Если у вас есть железо RTX, часовая проверка из раздела установки закроет вопрос.