Войти

Показать полную графическую версию : D3d9 с принудительной VSync и AF


Mitradis
23-04-2019, 19:40
Решил запостить в языки т.к. это полностью связано с плюсами, хотя я сам их не знаю и ищу готовое решение (или код).

Суть проблемы: не все старые игры (до ~2010) имеют vsync в настройках, а еще меньше имеют анизотропную фильтрацию текстур.

Возможно решение: панель управления драйвером, но это не эстетично, хотелось бы чтобы без костылей, тем более не все ставят эти самые панели управления от драйверов.

На основе таких вещей как ENB (где есть файл d3d9.dll который "перехватывает" игру) можно включить в играх как VSync так и AF, предварительно выключив все эффекты в ЕНБ (т.к. они сделаны под конкретные игры и будут артефакты). Так вот. Хотелось бы иметь точно такую же d3d9.dll но чисто с функцией форсирования VSync и AF и ВСЕ. Т.е. чистую dll-ку без функций которые могут вызвать проблемы. По запросу в гугле "d3d9 github" есть разные выдачи, но сложно понять что-то.

Может кто-то уже задавался этим вопросом и нашел такую вещь, или может кого-то вдохновит мой поиск и он сделает такую довольно простую вещь (я уверен для профи написать такой файл дело пары часов). Если вы еще не до конца вдохновились этой идеей то я предлагаю вам форсировать AF через драйвер и запустить старые игры, вы будете приятно удивлены четкость, а не мылом. Это относится как к 3D FPS так и 3D RTS (да, в стратегиях тоже в мыло вдалеке).

VSync нужен чтобы фпс не улетал в 1000 единиц в секунду в играх где его нет (например к ним относится даже UT2004 в оконном режиме).

Многие старые игры работают не на DX9, а на DX8, но для этого есть уже вот это:
https://github.com/crosire/d3d8to9/releases

Я все же надеюсь привлечь к этому внимание, т.к. уверен это нужно всем.

Давайте я для примера приведу пару картинок:
https://i1.imageban.ru/out/2019/04/18/1f26e9fc17c8b2e127b95cc5a4a126f7.jpg
https://i4.imageban.ru/out/2019/04/18/0ba02d46729aed6214559708ee561be3.jpg
AF форсируется через енб. Это стратегия, Warhammer 40k.

Mitradis
23-04-2019, 19:41
я вот написал тут тоже:
https://github.com/crosire/d3d8to9/issues/97
но пока ответа по AF нет. Хотя Vsync уже хорошо, но правда только для DX8.

Может кто-то знает как добавить туда AF? Или если кому это интересно поддержите тему по ссылке комментариями, если будет спрос может автор и сделает AF.

mp091
15-12-2020, 15:43
Так вроде бы вот такое вот есть:

DxWrapper (https://github.com/elishacloud/dxwrapper#readme)
Basic Configuration for the DxWrapper (https://github.com/elishacloud/dxwrapper/wiki/Configuration)
Compatible Games (https://github.com/elishacloud/dxwrapper/wiki/Compatible-Games)

AnisotropicFiltering

This will force the built-in Direct3D9 Anisotropic Filtering to be enabled. Currently it does not modify the actual texture filtering so it will have little effect on the actual game visuals. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. 1 = highest your video card can support. 2, 4, 8, or 16 = specific AF settings you want to configure.

AntiAliasing

This will force the built-in Direct3D9 AntiAliasing to be enabled. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

Note: this can cause unwanted artifacts or missing surfaces on some games that don't support AntiAliasing.

EnableVSync

This will force v-sync to be enabled. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

EnableWindowMode

This will force the game into windowed. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

Note: this option does not work on all games, specifically some games made using DirectDraw have issues with this mode.

ForceVsyncMode

This will force the v-sync mode to be enabled or disabled based on the EnableVSync option. If EnableVSync is enabled then it will force v-sync one mode. If EnableVSync is disaled it will force v-sync off. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

FullscreenWindowMode

This will force the game into fullscreen windowed mode. This requires either the game to use Direct3D9 or for the Dd7to9 or D3d8to9 options to be enabled. This can be set to 0 for off or 1 for on.

WindowModeBorder

This will enable the windows border when forcing windowed mode. This requires the EnableWindowMode option to be enabled. This can be set to 0 for off or 1 for on.




© OSzone.net 2001-2012