поэтому я бы хотел, чтобы старая игра выглядела лучше на новых видео драйверах, использующих модифицированный d3d9.dll, который будет находиться в родительском каталоге основных игр.
В драйверах изменилось несколько вещей с появлением карт nvidia серии 400 (возможно, хотя я и не подтвердил), из-за которых старые игры по умолчанию выглядели хуже. Изменения были (перефразируя информацию, любезно предоставленную через PM на форуме nvidia):
Начиная с карт Geforce серии 400 и связанных драйверов nvidia на некоторых текстурах возникала чрезмерная пикселизация при движении сцены в старом DirectX 9 игр.
Для карт ниже, чем на основе Fermi (до 400 серии), драйвер читает следующие опции: QUALITY_ENHANCEMENTS (фильтрация текстур - качество) PS_TEXFILTER_DISABLE_TRILIN_SLOPE (Фильтрация текстур - трилинейная оптимизация) PS_TEXFILTER_BILINEAR_IN_ANISO (Фильтрация текстур - Anisotropi c оптимизация фильтра) PS_TEXFILTER_ANISO_OPTS2 (Фильтрация текстур - Anisotropi c пример оптимизации) PS_TEXFILTER_NO_NEG_LODBIAS (Фильтрация текстур - Отрицательное смещение LOD)
Из них следующее теперь игнорируется в новых драйверах: PS_TEXFILTER_BILINEAR_IN_ANISO (Фильтрация текстур - Anisotropi c оптимизация фильтра) PS_TEXFILTER_NO_NEG_LODBIAS (фильтрация текстур - отрицательное смещение LOD)
В англ. sh, 3 выпуска:
Anisotropi c фильтрация не распространяется на некоторые текстуры.
Anisotropi c фильтрация не применяется к текстурам, использующим отрицательный LOD. Параметр «Фильтрация текстур - Качество» - «Высокое качество» должен применять AF к текстурам с отрицательным LOD, но эта опция частично нарушена, поэтому она этого не делает. Не работает только 32-битный драйвер DX9 (то есть все 32-битные игры DX9, большинство из которых были 32-битными).
Параметр «Фильтрация текстур - Отрицательное смещение LOD» - «Зажим» полностью удален из драйвер, но все еще существует в панели управления как плацебо.
Хотя мне удалось найти метод, чтобы исправить эту проблему на windows 7 (хотя я не был шанс протестировать, чтобы подтвердить это), соответствующая DLL, которая должна быть модифицирована, несовместима с Win XP.
Я думаю, что если я смогу вставить измененный d3d9.dll в основной каталог игр для решения этих проблем, он будет более модульным и независимым от требований ОС.
Я смог найти источник d3d9.dll, который был отредактирован в шестнадцатеричном формате, чтобы игнорировать пользовательские вызовы lod из игры (в свою очередь, приводить LOD к 0), но принудительное AF было бы хорошим дополнением. Я обнаружил, что соответствующей функцией вызова является SetSamplerState.
Так как же можно go сделать оболочку для d3d9.dll? Я бы не имел ни малейшего представления, с чего начать ...
ура