一个 D3D8 假定驱动,它将 API 调用和字节码着色器转换为等效的 D3D9 着色器。
d3d8to9 =========== 这是一个伪驱动模块,旨在通过将所有 API 调用和低级着色器转换为等效的 Direct3D 9 版本,来提高使用 Direct3D 8 进行渲染的游戏的兼容性和稳定性。通过这样做,还为这些游戏开辟了新的可能性,包括为 Direct3D 9 编写的已验证的修改工具,包括 ReShade。
请注意, d3d8to9 仅进行了 Direct3D 8 到 Direct3D 9 的精确转换。但是在 Windows 的最新版本中, 根据系统设置、 GPU 驱动程序和其他因素, 使用 d3d8to9 在 Direct3D 9 中的渲染行为可能与原生 Direct3D 8 不同。一个常见问题是, 即使在原生 Direct3D 8 中显示为不活动, 但应用程序已启用 VSync, 但使用 d3d8to9 后却会启用 VSync。这可能会给人以低性能的不准确印象, 但实际上它会按照应用程序的请求进行操作。如果您想调整此行为, 例如强制关闭 VSync, 建议使用一个单独的工具, 例如 dxwrapper, 该工具内部使用 d3d8to9 进行 API 调用转换, 但增加了额外的配置机会。
| 文件 | 描述 |
|---|---|
| d3d8to9.cpp | 定义主 D3D8 入口点 Direct3DCreate8 |
| d3d8to9_base.cpp | 实现 IDirect3D8 接口,包括设备创建 |
| d3d8to9_device.cpp | 实现 IDirect3DDevice8 接口,包括着色器转换 |
暂无开放 Issues,或尚未同步最近议题。