渲染与图形 API 指南

← 返回首页

PSOBB 渲染与图形 API 指南

需要对照界面查找具体开关?请先看登录器设置指南,其中包含 Windows 英文原生截图和逐页说明。

本页以 PSOBB 为对象,解释旧式 Direct3D 调用如何经过 D3D9、dgVoodoo 或 DXVK 到达现代显卡,并说明 Ephinea 对应画面设置的实际作用。它既是渲染技术知识页,也可用于选择和排查客户端后端。涵盖:


总览关系图

一张图看清各项设置之间的依赖关系: 渲染后端的选择决定了下方哪些画质选项会真正生效

PSOBB 引擎原生 Direct3D 8 调用渲染后端 (Backend)此处的选择决定下方哪些选项会生效原生 / 系统兼容路径• Direct3D 8 — 不经翻译,原版渲染• Direct3D 9 — Ephinea 将 D3D8 包装为 D3D9• Direct3D 9on12 — 微软 D3D9→D3D12D3D9 起可用高级 AA;D3D8 用于原版基准翻译层路径• D3D 11 / 12 — D3D9 经 dgVoodoo 输出• Vulkan — D3D9 经 DXVK 输出• (Custom) — 用户自带 dll↓ 主要改变兼容性、呈现方式与驱动路径 ↓后端与画质设置的关系• 高级 AA — D3D9 及以上可用• dgVoodoo Model — 交换链 (仅 D3D11/12)• 同分辨率与 AA 下,后端不会凭空提升画质• 翻译差异可能影响雾、反射、色彩与纹理API 版本 ≠ 画质等级最终画面 → 屏幕显示Extra (与渲染解耦 · 任何后端都生效)FAST STARTUP · CLEAN CAPTURE · MOTION BLUR · RARE DROP SFX · BANK SHORTCUTS · LARGE BANK WINDOW
青框 = 主流程 · 蓝框 = 后端分支 · 紫框 = 后端与画质设置的关系 · 虚线框 = 与渲染解耦

看图记两句话: API 数字越大不代表画质越高;它首先决定命令经过哪套运行库、包装器和显卡驱动。Ephinea 的高级抗锯齿从 D3D9 起可用,D3D11/12 额外使用 dgVoodoo,Vulkan 使用 DXVK;只有 dgVoodoo Model 明确限定在 D3D11/12 路径。


渲染后端 (D3D / Vulkan)

PSOBB 的引擎原生只会提交 Direct3D 8 命令。登陆器里的选项不会重写模型、纹理或场景光照,而是决定这些命令之后经过哪套兼容层、输出 API 和显卡驱动。严格来说,下拉框混合了原生 API、转译路径和包装器输出后端,并不只是几套平级的"渲染器"。

先建立正确的渲染链概念

现代后端不是把 PSOBB 改造成一款 D3D11 或 D3D12 原生游戏。游戏仍然生成同一批 D3D8 时代的顶点、纹理、固定功能状态和 Draw Call;兼容层负责把它们改写成后续 API 能理解的资源、状态和着色器,最后再交给显卡驱动。

PSOBB 内容与逻辑
    ↓  D3D8 命令
Ephinea 兼容/增强层 (D3D9 路径、AA、AF、后处理)
    ├─ D3D9 ───────────────────────────────→ D3D9 驱动
    ├─ D3D9 → Microsoft D3D9On12 ─────────→ D3D12 驱动
    ├─ D3D9 → dgVoodoo ─→ D3D11 或 D3D12 → 对应驱动
    └─ D3D9 → DXVK ───────────────────────→ Vulkan 驱动

这也解释了为什么登陆器的自定义文件是 dgVoodoo_d3d9.dlldxvk_d3d9.dll:包装器接收的是 Ephinea 输出的 D3D9 调用,再转到 D3D11、D3D12 或 Vulkan。Ephinea 官方的 Launcher 3.5.0 更新说明也给出了这两个文件名和版本关系。

D3D8 / D3D9 / 9on12 / 11 / 12 / Vulkan 总对比

首先要区分三件事:D3D8/9/11/12 与 Vulkan 是图形 API;D3D9On12 是微软的映射层;dgVoodoo 和 DXVK 是第三方翻译器。Ephinea 下拉菜单把这些不同层级组合成便于选择的“后端”。

Ephinea 选项PSOBB 上层接口中间层最终驱动 API抽象层级关键特征
Direct3D 8D3D8D3D8旧式高层原版固定功能管线;链路最短;高级 AA 不完整;传统设备丢失语义
Direct3D 9D3D8Ephinea D3D8→9D3D9旧式高层固定功能与 Shader Model 并存;可用高级 AA;仍采用 D3D9 Reset/Device Lost 模型
Direct3D 9on12D3D8→D3D9Microsoft D3D9On12D3D12上层 D3D9、底层 D3D12系统映射层;不是 dgVoodoo;保留上层 D3D9 设备语义
Direct3D 11D3D8→D3D9dgVoodooD3D11现代高层驱动代管资源状态、同步与较多显存策略;兼容性通常最好
Direct3D 12D3D8→D3D9dgVoodooD3D12现代低层翻译器显式管理命令、资源状态、描述符、同步和显存;固定 Flip 呈现
VulkanD3D8→D3D9DXVKVulkan现代低层与 D3D12 同代但属于另一套跨平台 API 和驱动栈;Windows 非 DXVK 官方支持目标
CustomD3D8→D3D9用户提供的 dgVoodoo / DXVKD3D11、D3D12 或 Vulkan取决于文件用于验证新版修复或回归;行为不能由“Custom”名称本身判断

D3D8 到 D3D9 是旧式 API 的渐进升级,仍保留固定功能和传统设备重置模型;D3D11 把现代 GPU 功能包装成由驱动管理的高层接口;D3D12 与 Vulkan 则把资源状态、命令提交和同步显式交给上层。D3D9On12 只改变 D3D9 下面的实现,不会把 PSOBB 或 Ephinea 前端变成原生 D3D12。

画质:为什么通常一样,但不能保证逐像素相同?

API 本身不提供"D3D12 级画质"。角色多边形数量、贴图分辨率、材质、光照公式、阴影和特效仍由 PSOBB 决定。若输出分辨率、AA、AF、SSAO 与 Shaders 完全相同,D3D9、D3D11、D3D12 和 Vulkan 的目标画面应当非常接近。

但不同路径不是逐位等价的录像回放。包装器需要模拟 D3D8/9 的固定功能管线,并把旧式格式与状态转换成现代着色器和资源;以下细节可能产生可见差异:

  • 采样与过滤:纹理坐标精度、mipmap LOD、各向异性过滤和半像素规则可能让纹理锐度略有不同。
  • 深度与混合:深度缓冲格式、比较精度、Alpha Test/Blend 的模拟差异可能表现为接缝、闪烁或透明排序异常。
  • 固定功能模拟:顶点雾、光照、反射和纹理阶段需要被转成 Shader;包装器 bug 会造成雾缺失、反射异常或颜色不一致。
  • 色彩与呈现:gamma、色彩空间、缩放过滤和交换链合成方式会影响亮度、对比度或最终锐度。

因此,后端之间出现明显的黑块、错误雾效、缺失反射或整体偏暗时,应视为兼容性差异或翻译错误,而不是某个 API 的正常"画风"。切换后端的主要价值是寻找对当前 GPU、驱动和窗口模式最正确稳定的实现。

D3D9on12 和 D3D12 为什么不是一回事?

两者最终都会调用 D3D12 驱动,但翻译器、对上层暴露的设备模型和呈现管理都不同。"最终用了 D3D12"并不足以判断它们的行为。

对比项Direct3D 9on12Direct3D 12
完整路径D3D8 → Ephinea D3D9 → Microsoft D3D9On12 → D3D12D3D8 → Ephinea D3D9 → dgVoodoo → D3D12
谁负责翻译Windows 的 D3D9On12 Mapping Layer第三方包装器 dgVoodoo2
上层语义仍按 D3D9 设备、资源和交换链规则工作由 dgVoodoo 模拟 D3D9,再自行管理 D3D12 资源与同步
设备丢失保留较多传统 D3D9 行为;Ephinea 已确认 UAC、锁屏等仍可触发问题dgVoodoo 接管设备与呈现,通常可避开该类 D3D8/9 Device Lost
交换链由 D3D9 运行库及映射层决定dgVoodoo D3D12 固定采用现代 Flip Discard
抗锯齿Ephinea 高级 AA 可用;更接近 D3D9 的兼容特征同一套 Ephinea AA 可用;MSAA/HSAA 的反射兼容性通常更好
主要用途系统兼容路径,并非性能或画质升级档用于 dgVoodoo 的现代设备管理、呈现和兼容修复

所以,为了避免 D3D8/9 在 Alt-Tab、UAC 安全桌面或锁屏后的 Device Lost,应选择 dgVoodoo 路径而不是 D3D9On12;实际排障先用 Direct3D 11。Direct3D 12 同样能绕开传统设备丢失,但应结合 GPU 厂商评估:它主要适合作为 AMD 的 D3D11 纹理异常替代路径,不是 NVIDIA 的默认推荐。D3D9On12 只是把 D3D9 工作负载映射到 D3D12,不会自动获得 dgVoodoo 的兼容策略。

D3D11 和 D3D12 到底差在哪?

先说结论:两者共享 dgVoodoo 的 D3D9 前端、状态转换和固定功能模拟,只在最后的资源管理、命令提交、同步与呈现层分流。因此它们的功能和预期画质相同;D3D12 不是增强画质版 D3D11。

对比项Direct3D 11Direct3D 12
API 抽象现代高层 API;即时上下文接收绘制命令现代低层 API;命令列表录制后提交到命令队列
资源状态驱动跟踪读写冲突和状态转换dgVoodoo 显式插入 Resource Barrier
资源绑定通过 Slot 绑定资源,驱动维护大量隐式状态通过 Descriptor Heap/Table 与 Root Signature 组织绑定
同步驱动负责大部分调度与危险跟踪dgVoodoo 使用 Queue、Fence 等对象显式同步
显存管理资源驻留与内存策略主要由驱动处理dgVoodoo 更直接地分配 Heap、放置资源并控制驻留策略
管线状态状态可分项修改,驱动在运行时组合大部分状态预先固化为 Pipeline State Object
呈现可使用传统 BitBlt 或现代 Flip 模型dgVoodoo 使用 Flip Discard,即使全屏也以窗口交换链呈现
失败模型驱动重置可报告 DXGI Device Removed/Reset命令、同步或驱动异常可报告 Device Removed/Hung;显式管理错误更容易暴露
画质由分辨率、AA、SSAO、Shaders 决定相同设置下与 D3D11 基本一致
性能PSOBB 上通常已足够稳定在个别机器可改善 CPU 开销或卡顿,但 30 FPS 老游戏通常没有普遍优势
兼容性硬件覆盖更广;dgVoodoo 官方记录某些 AMD 驱动可能把纹理错误显示为纯色多边形需要 D3D12 支持;dgVoodoo 官方当前明确警告 NVIDIA 驱动上的 GPU Hang,AMD 则可把它作为 D3D11 纹理问题的替代路径
选择依据默认先试;NVIDIA 用户优先使用;也适合作为现代后端的排障基准主要在 AMD 的 D3D11 路径显示异常,或已有证据指向 D3D11 后端时测试

dgVoodoo 作者的官方说明也没有把 D3D12 视为无条件升级:其自动选择在 x86/x64 上不会默认选 D3D12,并记录了特定 NVIDIA 与 AMD 驱动的相反兼容性表现。因此更专业的选择方法是以正确渲染和稳定帧时间为准,而不是按 API 数字排序

最简单的选择顺序:先试 Direct3D 11 (2.87.1),画面和运行都正常就无需换。AMD 上若出现纯色多边形等已知 D3D11 驱动症状,可试同版本 D3D12,并在崩溃时关闭 Radeon Anti-Lag。NVIDIA 上不要把 dgVoodoo D3D12 当作首选排障路径;优先保留 D3D11,再试较旧 dgVoodoo、D3D9 或 Vulkan,每次只改变一个变量。

D3D12 与 Vulkan 的底层关系

D3D12 和 Vulkan 属于同一代低层图形 API,设计理念非常接近。两者都把过去由 D3D11 驱动隐式完成的大量工作交给应用或翻译层:提前记录 GPU 命令、显式声明资源状态、组织管线对象、绑定描述符并处理 CPU/GPU 同步。在本页讨论的 PSOBB 场景中,承担这些工作的不是游戏本体,而是 dgVoodoo 或 DXVK。

对比项Direct3D 12Vulkan
标准与平台微软 API,面向 Windows / XboxKhronos 标准,覆盖 Windows / Linux / Android 等平台
运行时与呈现D3D12 Runtime + DXGI Swap ChainVulkan Loader/ICD + Surface/Swapchain 扩展
Shader 表示通常由 HLSL 编译为 DXIL;旧工具链也可使用 DXBC由 GLSL、HLSL 等编译为 SPIR-V
资源绑定模型Root Signature + Descriptor Heap/TablePipeline Layout + Descriptor Set
资源状态Resource State + Resource BarrierAccess/Stage Mask + Pipeline Barrier + Image Layout
显存模型Heap 与 Resource,结合 Windows 驻留管理Memory Type/Heap 与显式绑定,细节暴露通常更多
同步对象单调递增的 Fence 为核心,可由 Queue Signal/Wait 并由 CPU 等待Timeline Semaphore 最接近 D3D12 Fence;Fence 与二值 Semaphore 分担主机通知和队列依赖等场景
能力扩展Feature Level、接口版本与可选 FeatureCore Version、Extension 与 Feature 链
PSOBB 路径dgVoodoo 接收 D3D9 后输出 D3D12DXVK 接收 D3D9 后输出 Vulkan
典型错误DXGI_ERROR_DEVICE_REMOVED / HUNG / RESETVK_ERROR_DEVICE_LOST
D3D12 概念Vulkan 对应概念底层职责
Command ListCommand Buffer先记录绘制、复制和状态切换命令,再批量提交给 GPU
Command QueueQueue接收图形、计算或复制工作,并决定提交顺序
Resource BarrierPipeline Barrier / Image Layout Transition声明资源何时从渲染目标、纹理或复制用途之间切换
Descriptor Heap / TableDescriptor Pool / Set让 Shader 找到纹理、采样器和缓冲区
Pipeline State ObjectGraphics Pipeline把 Shader 与光栅化、混合、深度等状态组合成可执行管线
FenceTimeline Semaphore;Fence / 二值 Semaphore 分担部分场景协调 CPU、GPU 以及不同队列间的执行进度;对象并非一一对应
Heap / ResourceDevice Memory / Image / Buffer分配显存并放置纹理、顶点和渲染目标

上表是职责层面的近似映射,不是句柄、生命周期或同步语义的一一对应。例如 D3D12 Fence 是可递增的时间线对象,最接近 Vulkan Timeline Semaphore;传统 Vulkan Fence 主要用于向主机通知一次提交完成,二值 Semaphore 则常用于队列间依赖。

它们的主要差别不在“高低级”,而在生态和接口约定:D3D12 属于微软的 Windows/Xbox 图形栈,使用 DXGI、HLSL/DXIL 与 Windows 驱动模型;Vulkan 由 Khronos 制定,可跨 Windows、Linux 和 Android,通常使用 SPIR-V,并有自己的呈现与扩展体系。Vulkan 往往暴露更多显式选择,但两者都要求上层正确管理资源生命周期、同步和管线。

PSOBB → D3D8 → Ephinea D3D9 → dgVoodoo → D3D12 → Windows 显卡驱动 → GPU
PSOBB → D3D8 → Ephinea D3D9 → DXVK     → Vulkan → Vulkan 显卡驱动  → GPU

所以可以把 dgVoodoo + D3D12DXVK + Vulkan 看作两条同类的现代低层翻译路线,但不能认为它们等价。两套翻译器对 D3D9 固定功能、Shader、旧纹理格式、深度缓冲、交换链和设备丢失的模拟方式不同;这些实现差异比 API 名称更容易决定 PSOBB 的正确性、卡顿和稳定性。对这款 30 FPS 老游戏,低层 API 的理论吞吐优势通常不重要,优先选择渲染正确且稳定的路径。

Ephinea 提供的翻译层版本

括号内数字不是“D3D 小版本”,而是翻译器发布版本。多版本选择由 Ephinea Launcher 3.5.0 与客户端 DLL 1.860 的首发组合引入;同一发布帖随后又以 DLL 1.861 修复栈破坏,并以 1.862 修复误触发的强制终止问题。因此,1.860 是功能引入版本,不是建议固定安装的当前版本;客户端应始终完成游戏内补丁。Launcher/DLL 负责选择和装载文件,本身不是图形 API。

菜单组合翻译器在 Ephinea 中的定位已知版本差异
D3D11 / D3D12 2.79.3dgVoodoo2 x86 D3D9此前随客户端提供的旧版,可继续使用2.79.3 明确修复 Ephinea PSOBB 的顶点雾兼容问题,并包含 D3D8/9 Device Reset 修复;但后者的变更记录针对另一款游戏,不能据此宣称消除 PSOBB 的所有设备丢失
D3D11 / D3D12 2.87.1dgVoodoo2 x86 D3D9Launcher 3.5.0 新增的较新可选版继承 2.87 的 D3D12 FL11 兼容路径和 FL12+ zero-copy 路径;2.87.1 修复一项 D3D12 后端崩溃,并改善伪全屏和窗口尺寸行为;Ephinea 官方称它可能解决部分 D3D12 冻屏
Vulkan 2.3.1DXVK x32 D3D9此前随客户端提供的旧版,可继续使用适合已有稳定配置;并不因为版本较旧就一定比 2.7.1 更差
Vulkan 2.7.1DXVK x32 D3D9Launcher 3.5.0 新增的较新可选版Ephinea 官方称更新 DXVK 可修复部分 Vulkan 图形异常;没有承诺解决所有崩溃或 Device Lost
D3D11 / D3D12 / Vulkan Custom用户提供的 x86/x32 D3D9 DLL验证上游新版、旧版或特定修复兼容性完全取决于所放文件;“Custom”本身不代表更新、更快或更稳定

版本事实依据:Ephinea Launcher 3.5.0 / DLL 1.860 发布与后续热修帖dgVoodoo 官方变更记录。上游已有更新版本不代表 Ephinea 已内置;只有菜单列出的版本或正确放入 dxdg 的 Custom 文件会实际加载。

截图中的 Device Lost:哪些路径有,哪些路径规避?

截图文字描述的是客户端收到设备丢失后,恢复/Reset 失败。它不是“dgVoodoo 2.79.3 专属错误”或“D3D12 专属错误”。必须先区分两类原因:

  • 传统 D3D8/9 设备丢失:独占全屏失去焦点、Alt-Tab、UAC 安全桌面、锁屏、屏保或显示模式切换触发;这是 PSOBB 最典型的该弹窗来源。
  • 真实 GPU/驱动重置:Windows TDR、驱动崩溃、超频不稳、Overlay/注入冲突或翻译器 bug。D3D12 可表现为 Device Removed/Hung,Vulkan 可表现为 VK_ERROR_DEVICE_LOST;任何后端都无法保证免疫。
后端与版本Alt-Tab/UAC/锁屏型 Device Lost对截图弹窗的判断仍需注意
D3D8明确受影响高概率来源,尤其是经典全屏关闭 Classic Fullscreen,避免显示模式切换
D3D9明确受影响仍使用传统 D3D9 Device/Reset 语义比 D3D8 多一层转换不等于解决设备丢失
D3D9On12明确受影响Ephinea 官方明确说明它不能规避 UAC、锁屏和屏保导致的 Device Lost底层是 D3D12,但上层仍是 D3D9;不要把它当作 dgVoodoo D3D12
dgVoodoo D3D11 2.79.3 / 2.87.1通常规避不是传统焦点丢失的预期路径;若仍出现,应怀疑驱动重置或 dgVoodoo/Overlay 冲突2.87.1 不是“绝不崩溃版”;AMD 某些驱动还可能出现纹理异常
dgVoodoo D3D12 2.79.3通常规避传统 Device Lost 风险低,但 Ephinea 已记录部分用户存在 D3D12 冻屏dgVoodoo 官方当前明确警告 NVIDIA 驱动可能发生 D3D12 GPU Hang;不建议作为 NVIDIA 首选
dgVoodoo D3D12 2.87.1通常规避较 2.79.3 更适合验证 Ephinea 已记录的部分 D3D12 冻屏,但仍不能抵御真实 TDR包含特定 D3D12 崩溃与全屏行为修复,不代表消除 NVIDIA GPU Hang 或修复所有硬件组合
DXVK Vulkan 2.3.1 / 2.7.1默认通常不模拟焦点丢失DXVK 默认 d3d9.deviceLossOnFocusLoss = False,所以 Alt-Tab 型弹窗通常不是预期行为Vulkan 驱动仍可返回真实 VK_ERROR_DEVICE_LOST;DXVK 不正式支持原生 Windows
Custom无法统一判断必须记录实际 DLL、版本和配置旧配置可主动开启 DXVK 的焦点丢失模拟;第三方构建也可能改变行为

Ephinea 早期更新已经明确建议:要避开 UAC、锁屏、屏保等造成的传统 Device Lost,应使用 dgVoodoo D3D11/12,而不是 D3D9On12。不过 dgVoodoo 当前官方说明又对 NVIDIA 上的 D3D12 GPU Hang 发出强警告,所以“能规避传统 Device Lost”不等于“在所有 GPU 上都是最稳定后端”。DXVK 的默认行为可在其官方配置说明中核对。

对这张报错截图的实际判断:如果发生时选的是 D3D8、D3D9 或 D3D9On12,并且刚好 Alt-Tab、弹出 UAC、锁屏或切换显示模式,就是已知的传统设备丢失;优先改为 D3D11 2.87.1。如果当时已经是 dgVoodoo D3D11/12 或 Vulkan,这就不再是正常的焦点丢失行为,应检查可靠性监视器或 Windows Error Reporting 中的 LiveKernelEvent 117/141,以及系统日志中的显示驱动事件(常见为 Display 4101),再检查显卡驱动、超频和 Overlay。NVIDIA 优先复测 D3D11 2.87.1;AMD 若仅在 D3D11 出现纯色纹理异常,再受控测试 D3D12 2.87.1。

各后端含义

Direct3D 8

游戏的原版渲染。不经过任何翻译层,直接调用系统 D3D8。最接近 2003 年原版表现。

  • ✅ 变量最少,适合确认游戏本体是否能正常运行
  • ⚠ 在 Win10/11 + 高刷新率 + 多显示器下,容易出现闪退、撕裂、Alt-Tab 黑屏
  • ⚠ 不具备 D3D9 及以上路径的完整高级 AA 组合;旧式 Device Lost 行为仍然存在

Direct3D 9

用一个轻量包装把 D3D8 调用转成 D3D9。开销极小,行为接近原版,稳定性略好于纯 D3D8。

  • ✅ 兼容性广,几乎所有支持 D3D9 的显卡都能跑
  • ✅ 支持 Ephinea 的 SSAA、SMAA、MSAA、HSAA 等高级 AA 选项
  • ⚠ 仍依赖系统的 D3D9 驱动质量
  • ⚠ 官方更新记录指出 MSAA/HSAA 在 D3D9 路径可能破坏部分反射;遇到问题改用 SMAA 或 SSAA

Direct3D 9on12

微软官方的 D3D9-on-D3D12 转译层。先把 D3D8 调用走 D3D9,再由 Windows 内置的 d3d9on12.dll 转译为 D3D12 提交给显卡。

  • ✅ 让系统把 D3D9 工作负载映射到 D3D12,主要是平台兼容路径
  • ⚠ 它仍保留 Ephinea D3D9 前端的行为,不是 dgVoodoo 的 D3D12 模式
  • ⚠ Ephinea 官方测试指出它仍可能在 UAC、安全桌面或锁屏后发生 Device Lost,普通电脑不建议优先选择

Direct3D 11 (2.79.3 / 2.87.1)

使用 dgVoodoo2 接收 Ephinea 的 D3D9 调用,再输出到 D3D11。旧式固定功能状态会被包装器模拟为现代 GPU 资源和 Shader。

  • ✅ 可避开原生 D3D8/9 的 Device Lost 问题,窗口化、Alt-Tab 和现代桌面合成通常更可靠
  • ✅ 可在 Auto、Discard、Flip 等呈现模型之间选择
  • 📌 默认先试:硬件覆盖较广,也是与 D3D12 对照排障的合理起点
  • 📌 2.79.3 是较老的稳定版,2.87.1 是较新的版本,功能更全但偶有新 bug

Direct3D 12 (2.79.3 / 2.87.1)

同上,但 dgVoodoo2 输出到更现代的 D3D12

  • ✅ 在部分新显卡和驱动组合上可能降低 CPU/驱动开销
  • 📌 画质不会高于 D3D11,PSOBB 中通常也看不到明显帧率提升
  • 📌 始终使用 Flip Discard 呈现;"dgVoodoo Model"的其他选择不能把它变成传统 BitBlt 模型
  • ⚠ dgVoodoo 官方当前明确警告 NVIDIA 驱动上的 D3D12 GPU Hang;NVIDIA 不建议首选此路径
  • ⚠ AMD 若因 D3D11 出现纯色多边形可试 D3D12;若崩溃,再关闭 Radeon Anti-Lag 复测

Vulkan (2.3.1 / 2.7.1)

使用 DXVK 把 Ephinea 的 D3D9 调用转译到 Vulkan。它走的是另一套驱动编译、资源管理和呈现路径,适合验证问题是否只存在于 Direct3D 驱动栈。

  • ✅ 某些硬件上可改善 D3D 路径特有的卡顿或显示错误
  • ⚠ Vulkan Shader/管线首次创建时可能产生短时卡顿;具体程度取决于驱动和 DXVK 版本
  • DXVK 官方不正式支持 Windows;录屏、Overlay、RTSS 等注入软件也可能与其冲突
  • 📌 2.3.1 是较老的稳定版,2.7.1 是较新版本

Direct3D 11 / 12 / Vulkan (Custom)

使用用户自定义的 dgVoodoo 或 DXVK 版本。按 Ephinea 官方约定,在游戏目录的 dxdg 文件夹放置 x86 dgVoodoo_d3d9.dll 或 x32 dxvk_d3d9.dll

  • 需要自己下载并放置正确版本的文件,适合高级用户测试新版翻译层
  • 放置错误会导致启动黑屏或闪退

抗锯齿 (Anti-Aliasing)

锯齿不是单一现象。PSOBB 中至少会看到三类:多边形轮廓的几何锯齿、远处细纹理/栅栏随镜头闪动的纹理与透明测试走样,以及低分辨率渲染后放大产生的整体采样不足。不同 AA 算法处理的对象并不相同,所以不能只比较名称后的 2x/4x。

AA 由哪一层实现?

Ephinea 的 AA 不是 D3D11、D3D12 或 Vulkan 自动附送的画质功能。客户端在渲染目标创建和最终图像处理阶段实现它:MSAA 改变渲染目标的多重采样参数;SSAA 提高内部渲染尺寸后缩小;SMAA 在场景完成后执行空间后处理。Ephinea 开发者对其实现的说明也明确了这个顺序。

后端高级 AA需要注意
D3D8不是完整支持路径用于无增强的原版基准最合适
D3D9支持MSAA/HSAA 可能造成部分场景反射异常
D3D9on12支持继承 D3D9 前端特征,不是 dgVoodoo D3D12
D3D11 / D3D12支持经 dgVoodoo 时,官方记录显示 MSAA/HSAA 的反射兼容性更好
Vulkan支持仍由 Ephinea 生成 AA 结果,DXVK 负责把 D3D9 工作负载翻译到 Vulkan

基础算法

  • None — 关闭抗锯齿。性能最好,边缘最锐利但有齿。
  • MSAA 2x / 4x — Multi-Sample AA。在一个像素内用多个位置计算三角形覆盖率和深度/模板结果,通常共享一次像素着色结果。它主要平滑几何轮廓,比 SSAA 便宜,但不能解决纹理内部闪烁、Shader aliasing,对 Alpha Test 形成的树叶/栅栏边缘也往往无能为力。微软的 MSAA 光栅化规则同样明确指出它不消除 surface aliasing。
  • SSAA 2x / 4x — Super-Sample AA。Ephinea 将宽和高分别放大 2 或 4 倍渲染,再用线性过滤缩回输出分辨率。它能同时改善几何边缘、纹理细节与部分透明边缘,效果最全面,但会显著增加像素着色、显存与带宽成本。
  • SMAA Low / Medium / High / Ultra — Subpixel Morphological AA。最终场景完成后,根据颜色/亮度边缘搜索形态并混合邻近像素。它对几何边缘和部分 Alpha Test 边缘有效,成本相对低,但没有额外的几何或时间采样信息,因此无法真正恢复亚像素细节,也不能可靠消除镜头移动时的纹理闪烁。质量越高,搜索范围和处理精度越高;副作用是细字、HUD 或纹理可能略软。
  • HSAA 2x / 4x — Hybrid-Sampling AA。Ephinea 中指同倍率 SSAA + 同倍率 MSAA,不是介于两者之间的廉价折中。它同时提高内部分辨率与每像素覆盖样本,质量上限高,但也是最重的选项之一。

SSAA / HSAA 的倍率到底有多大?

这里的倍率作用于横向和纵向。设输出尺寸为 W × H,则 SSAA Nx 的内部尺寸为 (N·W) × (N·H),像素数是 倍。不要把 SSAA 4x 误解成只渲染 4 倍像素。

1080p 输出示例内部分辨率内部像素数相对 1080p
无 SSAA1920 × 1080约 207 万
SSAA 2x3840 × 2160约 829 万4× 像素
SSAA 4x7680 × 4320约 3318 万16× 像素

HSAA 还会在这个高分辨率渲染目标上叠加 MSAA 样本。例如 HSAA 4x 可近似理解为 16 倍像素着色规模上再使用 4 个覆盖/深度样本;总耗时不会严格等于 64 倍,但渲染目标、深度缓冲、带宽和显存压力可能非常高。即使 PSOBB 很老,4K 输出再开 4x 也可能启动失败、掉帧或耗尽包装器配置的 VRAM。

为什么 20 年前的硬件能流畅,RTX 4090 / 5090 在 4K 极限设置下也可能吃力?

两种说法并不矛盾。PSOBB 原版的几何复杂度、Shader 复杂度和 30 FPS 上限都很低,20 年前的显卡在 640×480、800×600 或 1024×768、无现代后处理的条件下本来就能完成设计目标。现代登陆器则允许把每帧需要处理的像素、样本和全屏 Pass放大几个数量级;游戏内容仍然古老,但 GPU 实际执行的工作已经不是 2004 年的负载。

不同分辨率与 SSAA 设置相对 640×480 的每帧像素量640×480 为一倍,1080p 约六点七五倍,4K 为二十七倍,4K SSAA 2x 为一百零八倍,4K SSAA 4x 为四百三十二倍。相对 640×480、无 SSAA 的每帧像素工作量(对数刻度)约 4.6×约 21×约 95×432×640×4801× · 0.31 MP1080p6.75× · 2.07 MP4K27× · 8.29 MP4K + SSAA 2x108× · 33.18 MP4K + SSAA 4x432× · 132.71 MPHSAA 还会在对应高分辨率上增加 MSAA 覆盖/深度样本,因此不只看这张像素量图
同一个游戏场景,4K + SSAA 4x 每帧要着色的像素约为原版 640×480 的 432 倍

从分辨率、D3D 后端、AA 和特效分别看

因素负载如何增长主要压力容易误解的地方
输出分辨率与宽×高成正比;4K 是 1080p 的 4 倍像素像素着色、带宽、后处理帧率仍锁 30 不代表每帧可以无限昂贵
D3D8 / D3D9链路较短,原始负载很低旧驱动、Device Lost、CPU 提交老硬件流畅通常指较低分辨率和较少增强
D3D11 / D3D12增加 Ephinea + dgVoodoo 的状态翻译和资源管理CPU 开销、同步、驱动兼容D3D12 可改善部分提交开销,但不能减少 SSAA 像素
Vulkan增加 Ephinea + DXVK 的翻译与管线编译Shader 编译、驱动、同步不同 API 不是免费的性能升级
MSAA Nx增加覆盖率、深度/模板和多样本存储;像素 Shader 不一定完整执行 N 次ROP、深度、带宽、显存主要处理几何边缘,不是全画面 N 倍清晰
SSAA Nx宽高各乘 N,像素数乘 N²像素 Shader、纹理采样、显存、带宽SSAA 4x 是 16 倍像素,不是 4 倍
HSAA NxSSAA 的 N² 像素上再叠加 Nx MSAA 样本几乎所有 GPU 后端资源它是极限组合,不是廉价折中
AF 16x斜面纹理增加采样数纹理单元与带宽通常远轻于 SSAA,但自定义纹理仍可能增加压力
SSAO / DoF每个输出像素进行多次深度读取与邻域采样带宽、缓存、Shader 运算分辨率越高越贵,High 不只是视觉档位
Bloom / SMAA / Tone增加一个或多个全屏读取、模糊、混合 Pass带宽与像素 Shader单项便宜,多项叠加仍可成为瓶颈

以 4K 极限设置估算显存和采样规模

4K 输出是 3840×2160,约 829 万像素。开启 SSAA 4x 后,内部尺寸变为 15360×8640,约 1.327 亿像素。仅一个 RGBA8 颜色缓冲约占 531 MB,一个 32-bit 深度缓冲也约 531 MB;两者还未计算 resolve 目标、Bloom/SSAO/DoF 中间纹理、包装器缓存和游戏纹理,就已超过 1 GB。

若再使用 HSAA 4x,颜色与深度目标需要保存约 4 倍多样本数据,仅上述两个缓冲的理论规模就可能接近 4.25 GB。每帧还要完成约 1.327 亿像素的着色和约 5.308 亿覆盖/深度样本处理,随后再 resolve、缩小到 4K 并执行多个后处理 Pass。这类负载主要受填充率、显存带宽、缓存与包装器实现限制,与模型只有多少三角形关系不大。

RTX 4090 与 RTX 5090 应该怎样理解?

RTX 4090 拥有 24 GB GDDR6X;RTX 5090 提升到 32 GB GDDR7。NVIDIA 官方规格列出的显存带宽分别约为 1008 GB/s1792 GB/s。因此在 SSAA/HSAA、多重全屏 Pass 这类偏带宽和显存容量的负载中,5090 通常会有更大的余量。参见 NVIDIA 5090 与 4090 官方规格对比

但这不代表 5090 会按带宽比例提升 PSOBB 帧率。Ephinea 是 32-bit 老程序,还经过 D3D8→D3D9→dgVoodoo/DXVK 的状态翻译;瓶颈可能位于 CPU 单线程、同步、驱动、包装器内部上限或超大渲染目标分配。4090 在 4K + SSAA/HSAA 4x + SSAO High + 多个 Shaders 下可能达到满载、掉到 30 FPS 以下或因资源分配失败而崩溃;5090 通常更从容,但也不保证所有极限组合都合理。

实用判断:老硬件流畅说明它能承担"原版场景负载";顶级显卡吃力说明玩家主动创建了数百倍像素、更多采样和更多全屏 Pass。判断性能时应记录完整组合,不能只说"这是一款 20 年前的游戏"或只比较 D3D11/D3D12。

组合 (X + SMAA)

SMAA 位于场景完成后的后处理阶段,所以可以继续处理 MSAA、SSAA 或 HSAA resolve/downsample 之后仍残留的高对比边缘:

  • MSAA + SMAA — MSAA 提供真实几何覆盖样本,SMAA 清理剩余可识别边缘。通常是质量/成本较均衡的组合。
  • SSAA + SMAA — SSAA 先抑制高频细节和亚像素走样,SMAA 再处理残留边缘。质量较高,但 SMAA 无法抵消 SSAA 本身的巨大像素成本。
  • HSAA + SMAA — SSAA、MSAA、SMAA 三种机制叠加,属于极限方案,不是日常推荐的"折中"。

选择建议

需求推荐
性能优先 / 核显SMAA Medium/High;成本低且不增加渲染分辨率
均衡通用SMAA UltraMSAA 2x + SMAA
减少纹理闪烁 / 画质优先SSAA 2xSSAA 2x + SMAA
D3D9 反射异常避开 MSAA/HSAA,改用 SMAA UltraSSAA 2x
4K 输出先用 SMAA Ultra;通常没有必要再开 SSAA 4x
极限截图 / 充足显存SSAA 4x 或 HSAA;逐级测试,不建议直接拉满

各向异性过滤 (Anisotropic Filtering)

AF 解决的是斜视角纹理变糊,不是模型轮廓锯齿。当地板、墙面或道路朝远处延伸时,一个屏幕像素在纹理上覆盖的区域会变成长条而不是正方形。普通双线性/三线性过滤用近似正方形的采样足迹,容易选择过低的 mipmap 并丢失远处细节;AF 沿长轴增加采样,让斜面纹理保持更清晰。

普通纹理过滤与各向异性过滤的采样足迹对比透视地面上的屏幕像素映射成狭长纹理区域。普通过滤以小方形近似而变糊,各向异性过滤沿长轴使用多个样本。普通双线性 / 三线性各向异性过滤方形近似 → 远处容易过度模糊沿长轴采样 → 保留斜面细节AF 处理纹理采样足迹;AA 处理像素覆盖或最终边缘,两者不能互相替代
透视越倾斜,纹理足迹越狭长,AF 的收益越明显
  • 2x / 4x:较低成本改善地板和墙面的斜角清晰度,适合老 GPU 或核显。
  • 8x:通常已覆盖绝大多数可见收益,适合作为通用设置。
  • 16x:最大化倾斜纹理清晰度;现代独显上的额外成本通常不高,但仍会增加纹理采样和带宽压力。

AF 为什么有时反而更闪?

AF 会保留更多高频纹理细节。如果原版或 Mod 纹理缺少正确的 mipmap、含有过强锐化/细线,更清晰的远景也可能带来闪烁、摩尔纹和视觉噪声。此时问题不一定是 AF 实现错误:先把 16x 降到 8x/4x,或换用包含正确 mipmap 的纹理;SSAA 也能进一步压制这种走样。

建议:原版纹理和现代 GPU 可从 AF 16x 开始;若使用自定义高清纹理后远处明显闪烁,降到 8x/4x 并检查纹理包 mipmap。AF 不会消除角色轮廓锯齿,仍需搭配合适的 AA。


dgVoodoo Model (交换链模式)

这一项只与 dgVoodoo 路径有关,控制 DXGI 交换链的 Present 模型,即渲染完成的后台缓冲如何交给 Windows 桌面合成器或显示器。它影响延迟、窗口兼容性、Alt-Tab 和捕获方式,不改变场景本身的采样画质

重要限制:这些模式主要用于 D3D11 输出。根据 dgVoodoo 官方说明,D3D12 输出必须使用 Flip Discard;即使登陆器保留了其他选择,D3D12 也不能退回传统 BitBlt 交换链。

  • Auto — 由 dgVoodoo 根据后端和窗口模式自动选,默认推荐。
  • Discard — 传统 BitBlt 模型,显示新一帧时丢弃旧帧。Win 7 / 旧驱动兼容性最好,但不能利用 Win10+ 的 DWM 优化路径。
  • Sequential — 传统 BitBlt 模型,但保留之前几帧。一般用得很少。
  • Flip Discard — 现代 Flip 模型 + 丢弃缓冲内容。减少不必要的桌面拷贝并允许现代呈现优化;实际延迟仍受 V-Sync、窗口模式、驱动队列和 DWM 调度共同影响。
  • Flip Sequential — Flip 模型,但保留旧帧。比 Flip Discard 多一点开销。

建议:

  • D3D11 大多数情况选 Auto 即可;只有捕获、Alt-Tab 或窗口合成异常时才逐项测试
  • D3D11 切到 Flip 后录屏软件捕获不到画面,可改回 Discard
  • D3D12 出现呈现或捕获问题时,切换 Model 通常无效;应改用 D3D11 + Auto/Discard

画面效果在渲染管线中的位置

下面是概念上的数据依赖图,用于理解每种设置处理的对象,不表示 Ephinea 源码中绝对固定的逐条执行顺序。最重要的区别是:MSAA/SSAA/HSAA 会改变场景如何被采样,而 SSAO、Bloom、DoF、Cel Shading、Tonemapping 和 SMAA 都需要读取已经产生的图像或深度信息。

Ephinea 画面效果概念管线从游戏几何和纹理开始,经过光栅化与采样型抗锯齿生成颜色和深度缓冲,随后供环境光遮蔽、景深、泛光、卡通着色、色调映射和 SMAA 使用,最后由交换链呈现。场景输入几何 · 纹理 · 光照后端不会增加原始细节光栅化 / 场景采样MSAA:覆盖样本SSAA:提高内部尺寸HSAA:两者叠加场景缓冲Color 颜色Depth 深度后处理的主要输入深度相关SSAO · DoF屏幕空间有限信息颜色相关Bloom · Tone亮度与色彩重映射边缘相关Cel · SMAA轮廓检测与混合呈现Swap送到屏幕采样型 AA 改变场景生成方式 · 后处理效果读取有限的 Color/Depth 信息 · 交换链只负责呈现,不提高画质
概念数据流:同属"画面设置",但发生阶段、可见收益和失真类型完全不同

普通玩家效果速查

效果最明显的变化主要代价 / 副作用一句话建议
SSAO墙角、脚底、物体接缝更有接触阴影边缘光晕、噪声;分辨率越高越耗 GPU喜欢立体感开 Medium,原版党关闭
Bloom高亮特效产生柔和光晕过曝、发灰、细节变糊按口味开,不要把它当作 HDR
Depth of Field非焦点区域模糊,更有镜头感远处辨识度下降;透明物体/HUD 边缘可能异常战斗清晰度优先就关
Cel Shading轮廓更明显,画面偏动画风格细节边缘可能被误判或描得过重纯审美选项
Tonemapping改变亮度、对比度和颜色响应暗部压黑或高光丢失先单独开,确认颜色合口味再叠加 Bloom
Motion Blur运动与镜头变化产生拖尾动态清晰度降低,可能引发眩晕大多数玩家可关闭

环境光遮蔽 (Ambient Occlusion)

SSAO (Screen-Space Ambient Occlusion) 是一种屏幕空间接触遮蔽近似。它从当前帧的深度缓冲(实现也可能结合法线信息)重建相邻表面的空间关系,在墙角、物体接缝和角色脚底等光线较难到达的位置生成低频暗化。

它不是动态阴影,也不是全局光照。真正的阴影要知道光源、遮挡物和被投影表面的关系;SSAO 只知道镜头当前看见的有限深度信息,因此只能提供"物体似乎更贴地、更有体积"的视觉线索。

  • Disabled — 关闭。最接近原版观感,性能最好。
  • Low — 更适合低分辨率或性能有限设备;采样噪声、条带或边缘变化可能更明显。
  • Medium — 接触感与成本较均衡,适合作为普通玩家起点。
  • High — 提高采样/处理质量,阴影通常更稳定细腻,但成本会随输出分辨率显著增加。

高阶玩家需要知道的局限

  • 屏幕边缘泄漏:采样范围超出屏幕时没有场景数据,遮蔽可能突然变淡或消失。
  • 遮挡信息不完整:镜头外和被前景完全挡住的物体不存在于当前深度缓冲,无法贡献正确遮蔽。
  • 深度不连续光晕:前后景交界处的巨大深度差可能形成不自然的暗边或亮边。
  • 透明与粒子:透明物体、特效和 HUD 往往不按普通实体写入深度,可能不参与或被错误覆盖。
  • 与 AA 的关系:SSAO/DoF 需要正确读取或解析多采样深度/颜色缓冲。Ephinea 2022-09-06 更新已专门修复它们与 MSAA/HSAA 的组合,因此旧客户端出现问题应先完整更新。

建议:先用 Medium 观察角色脚底、墙角和屏幕边缘;若没有光晕、噪点或掉帧再升 High。想保留原版明快风格、追求敌人轮廓清晰或正在排查 Shader 崩溃时选 Disabled


Extra (额外功能)

这组是 Ephinea 在原版基础上增加的体验类开关,与画质无关,绿色 = 开启,灰色 = 关闭。

  • FAST STARTUP — 跳过游戏启动时的 SEGA / Sonic Team / SOFTDEC 等 logo 动画,直接进登录界面。
  • CLEAN CAPTURE — 让游戏内置截图从场景渲染目标读取"干净"画面,因此不会包含 Lua Addons 等后叠加内容。它不是提升录屏编码质量的开关;第三方录屏是否能捕获仍取决于后端和交换链。
  • MOTION BLUR — 运动模糊。通过混合运动方向上的样本或累积相邻帧,模拟快门曝光期间的运动轨迹。它能让低帧率运动显得连续,代价是移动中细节和文字辨识度下降;PSOBB 固定 30 FPS 时拖尾会尤其明显,对动态清晰度或动晕敏感者建议关闭。
  • RARE DROP SFX — 稀有掉落提示音效。掉到稀有物品时播放额外提示音,刷宝时不易漏掉。
  • BANK SHORTCUTS — 仓库快捷键。开启后可在仓库界面用键盘快速存取/翻页,效率显著提升。
  • LARGE BANK WINDOW — 加大仓库窗口。一次显示更多物品,减少翻页次数。

截图兼容性:Ephinea 开发者明确说明 Clean Capture 不会包含 Addons;D3D12 的内置截图也无法捕获 Addons。若必须把插件 UI 一起截入,优先尝试 D3D8/9 且关闭 Clean Capture,或在 D3D11 下尝试兼容的 Flip 呈现模式;也可以直接用系统/OBS 的窗口捕获。


Shaders (着色器)

这组是基于最终颜色、深度或边缘信息的屏幕空间后处理,绿色 = 开启,灰色 = 关闭。它们不增加模型或贴图细节,而是重新解释已经渲染出的像素。多个效果叠加时,成本和伪影也会叠加,最终观感还会受执行顺序影响。

后处理效果概念对比五个抽象示意格分别说明环境光遮蔽压暗接触区域,泛光扩散高亮,景深模糊远景,卡通着色强化轮廓,色调映射重排亮度。SSAO接触处变暗增强贴地与体积感Bloom高亮向外扩散光感更强,细节可能发糊Depth of Field焦点清晰,远景模糊镜头感换取辨识度Cel Shading轮廓与明暗分区增强强调动画化造型Tonemapping重新映射亮度与颜色不等于增加 HDR 信息抽象示意,不是游戏截图;用于显示每种算法主要改变的视觉线索
效果示意:它们改变的是接触暗化、光晕、焦点、轮廓或色调,不是 API 等级
  • BLOOM — 泛光。典型实现会提取较亮像素,对较低分辨率的亮度图做多次模糊,再加回原图。它模拟镜头/眼睛中强光扩散的感觉,不会产生新的光照。过强时会让白色 HUD、魔法特效和亮纹理互相污染,看起来像过曝或蒙雾。
  • DEPTH OF FIELD — 景深。根据深度缓冲估算像素与焦平面的距离(Circle of Confusion),再对焦外区域模糊。PSOBB 的透明特效、角色名和 HUD 不一定拥有与实体几何一致的深度,所以边缘可能出现光晕、前景被背景颜色污染或文字发糊。
  • CEL SHADING — 卡通化处理。通过亮度/深度/法线边缘检测强化轮廓,并可能压缩连续明暗层次,让形体接近赛璐珞动画。它是屏幕空间风格化,不等于重新制作角色材质;细小纹理和高对比 HUD 也可能被当成轮廓。
  • TONEMAPPING — 色调映射。用非线性曲线把内部亮度重新映射到显示范围,改变暗部压缩、高光 roll-off、对比度和饱和度。PSOBB 本身不是现代 HDR 渲染器,所以这里更应理解为显示色调/颜色响应重塑,而不是凭空生成 HDR 动态范围。

效果叠加与排障

  • 逐项开启:先选稳定后端和 AA,再一次只开一个 Shader。这样才能判断崩溃、发糊、掉帧或颜色异常由谁引起。
  • Bloom + Tonemapping:色调映射若抬高亮部或对比度,会改变 Bloom 提取到的亮区;组合结果不只是两项视觉效果简单相加。
  • DoF / SSAO + MSAA:两者依赖深度解析。保持客户端更新;出现轮廓光晕时先降 AO、关 DoF,再更换 AA。
  • 多个全屏 Pass:后处理通常按输出像素执行,4K 的像素数是 1080p 的 4 倍。单项很轻不代表同时开启仍然很轻。
  • Vulkan / Wine:Shader 编译、深度格式和注入式 Overlay 的组合更复杂。遇到崩溃先全关 Shaders,确认后端稳定后再恢复。

原版与清晰度优先:四项都关。轻度现代化:先单开 Tonemapping,再按口味加 Bloom。动画风格:单开 Cel Shading 观察轮廓是否干净。截图氛围:可尝试 DoF + Bloom,但不建议在需要远距离辨认敌人和掉落物时长期使用。


怎么选?

没有"绝对最好"的选项,以下是常见的选择思路:

渲染后端

场景推荐
不知道选什么 / 第一次玩Direct3D 11 (2.87.1)
D3D11 正常保持不变;换 D3D12 不会提高基础画质
AMD:D3D11 出现纯色多边形等纹理错误Direct3D 12 (2.87.1);崩溃时关闭 Radeon Anti-Lag
NVIDIA:D3D11 异常先试 D3D11 2.79.3、D3D9 或 Vulkan;不要把 dgVoodoo D3D12 当作首选
D3D12 冻结 / GPU 挂起 / Overlay 冲突回到 Direct3D 11,必要时试 2.79.3
D3D11/12 都异常Direct3D 9;Vulkan 作为不同驱动路径的交叉测试
UAC、锁屏、Alt-Tab 后 Device Lost优先使用 D3D11 2.87.1;不要用 D3D9On12 代替
只想验证原版是否能启动D3D8 + None AA + 关闭 Shaders
录屏 / 直播捕获不到画面D3D11 + Auto/Discard,并尝试窗口捕获

一套省事配置 (现代显卡 + 平衡画质)

  • 渲染后端: Direct3D 11 (2.87.1) (D3D12 不会额外提升画质)
  • 抗锯齿: SMAA UltraMSAA 2x + SMAA
  • dgVoodoo Model: Auto
  • 环境光遮蔽: High
  • Extra: 全开 (除非要原版味道,关 MOTION BLUR)
  • Shaders: BLOOM + TONEMAPPING,其余按口味

一套保守配置 (老硬件 / 兼容性优先)

  • 渲染后端: Direct3D 11 (2.79.3)Direct3D 9
  • 抗锯齿: SMAA Medium
  • dgVoodoo Model: Auto (黑屏改 Discard)
  • 环境光遮蔽: LowDisabled
  • Shaders: 全关

常见问题

Q: 切换后游戏黑屏 / 闪退怎么办?
A: 重新打开登陆器,换回 Direct3D 9Direct3D 11 (2.79.3) 这类保守选项即可。设置只影响渲染,不会损坏角色数据。

Q: 为什么有两套版本号 (2.79.3 / 2.87.1)?
A: 不同版本的 dgVoodoo / DXVK 修复和回归问题不同。保留旧版作为回退,新版尝鲜。遇到新版的 bug 可以临时切回旧版。

Q: 改了选项后帧数没变化?
A: PSOBB 原生帧率上限是 30 FPS,翻译层不会突破游戏内部锁帧。换后端主要是为了稳定性兼容性,不是为了高帧。

Q: 还是闪退,跟渲染无关?
A: 参考 关于闪退 检查 DEP、兼容性、UAC、杀软白名单等系统层设置。

Q: 抗锯齿开了为什么不生效 / 没区别?
A: 高级 AA 由 Ephinea 客户端在渲染目标和后处理阶段实现,不是 dgVoodoo / DXVK 自动提供。完整的高级选项从 D3D9 起可用;D3D8 不适合作为高级 AA 路径。MSAA 只处理几何覆盖边缘,所以纹理内部仍会闪烁;想改善这类问题应试 SSAA,只想低成本平滑可试 SMAA。

Q: D3D9on12 已经用了 D3D12,为什么还要选 D3D12?
A: D3D9on12 是微软把 D3D9 命令映射到 D3D12 的系统兼容层,上层仍保留 D3D9 设备模型;登陆器的 D3D12 则由 dgVoodoo 接管 D3D9 模拟、资源管理和 Flip 呈现。两者只是最终驱动 API 相同,翻译器和兼容行为完全不同。要规避传统 Device Lost,优先使用 dgVoodoo D3D11;AMD 上存在特定 D3D11 纹理异常时再考虑 D3D12。

Q: D3D12 是否可以理解为微软版本的 Vulkan?
A: 作为入门类比可以:两者都是显式管理命令、资源状态、描述符、管线与同步的现代低层 API。但它们不是同一套 API,也不是彼此的包装层;D3D12 属于 Windows/Xbox 生态,Vulkan 是跨平台标准。在 PSOBB 中更准确的说法是,dgVoodoo 把 D3D9 翻译到 D3D12,DXVK 则把同类工作负载翻译到 Vulkan。

Q: 开了 Shaders 之后画面糊 / 颜色变了?
A: 这是后期处理本身的特性,不是 bug。最常见的"罪魁"是 BLOOM (糊) 和 TONEMAPPING (颜色变深变饱和)。逐项关掉定位不喜欢的那一项即可。

Q: CLEAN CAPTURE 和 dgVoodoo Model = Discard 有什么联系?
A: 二者都和"录屏 / 直播能不能正常捕获画面"有关。优先开 CLEAN CAPTURE;D3D11 下若 OBS 仍捕不到,再把 Model 从 Flip 类切回 Discard。D3D12 固定走 Flip Discard,此时应改用 D3D11 再测试 Model。