Камрад
|
СУПЕР-ТРЮК С ШЕЙДЕРАМИ 2.0 НА FX-SERIES
Написали и протестировали Vic и Dark Knight - http://www.***********/php/viewtopi...p=217823#217823
Во-первых, вам потребуется 3dAnalyze. Полагаю, что все знают, что вы можете заставить HL2 работать в режиме DX9 на картах FX, верно? Однако, вы получите артефакты на воде и в других местах?
Что ж, это просто исправить. Всего лишь воспользуйтесь 3dAnalyze чтобы идентифицировать вашу карту как ATI Radeon вместо GeForce FX. *Та-Да!* Все артефакты пропали, и мы имеем настоящее отражение в DX9!
Хорошо, но в таком случае ВОЗНИКНЕТ пенальти на производительность. Как его обойти?
Самое смешное, это то что Valve написали Half-Life 2 так, чтобы использовать всё время и в любом месте шейдеры точности FP24. И
это на самом деле не нужно. Нет. В действительности, похоже что FP16 срабатывает замечательно каждый раз - как показано на картинке выше (ссылка потеряна ). В Half-Life 2 FP16 и FP24 не отличимы.
Снова при помощи 3dAnalyze вы можете это проверить. Утилита способна заставить карту использовать всё время только шейдеры FP16, не зависимо от того, что потребует приложение. Вы не заметите потери качества изображения при их использования - только ОГРОМНЫЙ прирост производительности. Почему? Потому что FP16 это всё, что *нужно* Half-Life 2, и если бы они разрешили картам GeForce FX работать ТАК, то они могли бы стать такими конкурентноспособными! Поэтому они остановились на жёстком использовании FP24 (не необходимом), что заставляет карты GF-FX работать в режиме DX9 с точностью FP32 в любой ситуации. Разумеется, с потерей производительности.
3D Analyze можно взять здесь: http://www.3dfxzone.it/dir/tools/emutnl.htm
1)3D Analyze
Порядок использования утииты: запускаете и далее по пронумерованным пунктам, указанным в программе.
1. Выбрать файл *.dll в папке half-life 2\bin\
2. Выбрать файл hl2.exe
3. Выбрать Launcher.exe
Затем включить следующие опции:
- В разделе Pixel and Vertex Shader: FORCE LOW PRECISION PIXEL SHADER
- В разделе Remove stuttering: PERFORMANCE MODE
- В левом нижнем углу: FORCE HOOK.DLL
2). открываем блокнотом dxsupport.cfg (в папке bin)
3). ищем инфо радеона, в который превратим нашу карту:
"84"
{
"name" "ATI Radeon 9800 PRO"
"VendorID" "0x1002"
"MinDeviceID" "0x4E48"
"MaxDeviceID" "0x4E48"
"m_nDriverVersion_Build" "6240"
"DefaultRes" "1024"
"CentroidHack" "1"
}
Всю информацию начиная с Vendor ID и до закрывающей скобки копируем.
4). Далее ищем информацию о нашей карте, FX 5900XT и заменяем её на строки, скопированные с радеона. Получается так:
"378"
{
"name" "NVidia GeForce FX 5900XT"
"VendorID" "0x10DE"
"MinDeviceID" "0x0332"
"MaxDeviceID" "0x0332"
"m_nDriverVersion_Build" "6177"
"DefaultRes" "1024"
"MaxDxLevel" "90"
"DxLevel" "81"
"NoUserClipPlanes" "1"
"ConVar.r_fastzreject" "1"
}
5). записываем изменённый файл, затем идём в папку cfg, находим файл config.cfg и переносим его оттуда в безопасное место. Игра не найдёт его, и будет использовать наш новый dxsupport.cfg
да, и не забываем прописать VendorID and DeviceID for Radeon9800Pro (in 3DAnalyze).
6). Запускаем игру.( кнопка RUN ). Должен автоматически включиться DX9 режим.
__________________
Здесь могла быть ваша реклама.
|