画面で具体的なスイッチを探すなら、まずランチャー設定ガイドを見てください。Windows の英語版のネイティブの画面と、ページごとの説明があります。
PSOBB を対象に、古い Direct3D の呼び出しが D3D9・dgVoodoo・DXVK を通って現代のグラフィックカードに届く仕組みと、Ephinea の画面設定が実際に何をするかを説明します。描画技術の解説であると同時に、クライアントのバックエンドの選び方と問題の調べ方のガイドでもあります。内容:
各設定の依存関係が1枚でわかる図: 選んだバックエンドによって、下の画質の設定のどれが実際に効くかが決まる。
図から覚えておきたい2つのこと: API の数字が大きいほど画質が高いわけではない。まず決まるのは、命令がどのランタイム・ラッパー・グラフィックドライバーを通るかです。Ephinea の高度なアンチエイリアスは D3D9 以上で使えます。D3D11/12 はさらに dgVoodoo を、Vulkan は DXVK を使います。 dgVoodoo Model だけは D3D11/12 の経路に限られます。
PSOBB のエンジンが出すのは本来 Direct3D 8 の命令だけです。ランチャーの設定はモデル・テクスチャ・場面の光を書き換えるのではなく、その命令がその後どの互換レイヤー・出力の API・グラフィックドライバーを通るかを決めます。厳密には、このドロップダウンはネイティブの API・変換の経路・ラッパーの出力のバックエンドを混ぜたもので、同じ種類の「レンダラー」がいくつか並んでいるわけではありません。
現代のバックエンドは PSOBB をネイティブの D3D11 や D3D12 のゲームに変えるわけではありません。ゲームは今も D3D8 時代と同じ頂点・テクスチャ・固定機能の状態・描画の命令を出し、互換レイヤーがそれを新しい API が理解できるリソース・状態・シェーダーに書き換えてから、グラフィックドライバーに渡します。
PSOBB の内容と処理
↓ D3D8 の命令
Ephinea の互換・強化レイヤー(D3D9 の経路、AA、AF、後処理)
├─ D3D9 ───────────────────────────────→ D3D9 のドライバー
├─ D3D9 → Microsoft D3D9On12 ─────────→ D3D12 のドライバー
├─ D3D9 → dgVoodoo ─→ D3D11 か D3D12 → 対応するドライバー
└─ D3D9 → DXVK ───────────────────────→ Vulkan のドライバーランチャーのカスタムファイルが dgVoodoo_d3d9.dll か dxvk_d3d9.dll である理由もこれで分かります。ラッパーは Ephinea が出す D3D9 の呼び出しを受け取り、D3D11・D3D12・Vulkan へ渡します。Ephinea の公式の Launcher 3.5.0 の更新情報にも、この2つのファイル名とバージョンの関係が書かれています。
まず区別すべき3つのこと:D3D8/9/11/12 と Vulkan はグラフィック API、D3D9On12 は Microsoft のマッピングレイヤー、dgVoodoo と DXVK はサードパーティの変換ツールです。Ephinea のドロップダウンは、これらの違う層を選びやすい「バックエンド」としてまとめたものです。
| Ephinea の選択肢 | PSOBB から見た API | 中間のレイヤー | 最終的なドライバーの API | 抽象度 | 主な特徴 |
|---|---|---|---|---|---|
| Direct3D 8 | D3D8 | なし | D3D8 | 旧式の高水準 | 本来の固定機能パイプライン。経路が最も短い。高度な AA は不完全。従来のデバイスロストの仕組み |
| Direct3D 9 | D3D8 | Ephinea D3D8→9 | D3D9 | 旧式の高水準 | 固定機能とシェーダーモデルが共存。高度な AA が使える。今も D3D9 の Reset/Device Lost の仕組み |
| Direct3D 9on12 | D3D8→D3D9 | Microsoft D3D9On12 | D3D12 | 上は D3D9、下は D3D12 | システムのマッピングレイヤー。dgVoodoo ではない。上の D3D9 のデバイスの仕組みを保つ |
| Direct3D 11 | D3D8→D3D9 | dgVoodoo | D3D11 | 現代の高水準 | ドライバーがリソースの状態・同期・メモリの方針の多くを管理。互換性はたいてい最も高い |
| Direct3D 12 | D3D8→D3D9 | dgVoodoo | D3D12 | 現代の低水準 | 変換ツールが命令・リソースの状態・ディスクリプター・同期・メモリを明示的に管理。表示は Flip 方式に固定 |
| Vulkan | D3D8→D3D9 | DXVK | Vulkan | 現代の低水準 | D3D12 と同世代だが、別のクロスプラットフォームの API とドライバーの系統。Windows は DXVK の公式の対象ではない |
| Custom | D3D8→D3D9 | 自分で用意した dgVoodoo/DXVK | D3D11、D3D12、または Vulkan | ファイルによる | 新しい修正や不具合の確認用。「Custom」という名前だけでは動作を判断できない |
D3D8 から D3D9 は旧式の API の段階的な改良で、固定機能と従来のデバイスのリセットの仕組みを保っています。D3D11 は現代の GPU の機能をドライバーが管理する高水準の仕組みで包み、D3D12 と Vulkan はリソースの状態・命令の送信・同期を明示的に上の層に任せます。D3D9On12 が変えるのは D3D9 の下の実装だけで、PSOBB や Ephinea の前段がネイティブの D3D12 になるわけではありません。
API そのものが「D3D12 級の画質」を与えるわけではありません。キャラクターのポリゴン数、テクスチャの解像度、材質、光の計算式、影、エフェクトは今も PSOBB が決めます。出力の解像度・AA・AF・SSAO・シェーダーがまったく同じなら、D3D9・D3D11・D3D12・Vulkan の画面はとても近くなるはずです。
ただし、各経路はビット単位で同じ再生ではありません。ラッパーは D3D8/9 の固定機能パイプラインを再現し、旧式の形式と状態を現代のシェーダーとリソースに変換する必要があり、次のような細部で見た目の違いが出ることがあります:
そのため、バックエンドによって明らかな黒い塊、おかしなフォグ、反射の欠け、全体の暗さが出たときは、ある API の正常な「絵柄」ではなく、互換性の違いか変換の誤りとして扱ってください。バックエンドを切り替える主な意味は、今の GPU・ドライバー・ウィンドウのモードで最も正しく安定した実装を見つけることです。
どちらも最終的に D3D12 のドライバーを呼びますが、変換するもの、上に見せるデバイスの仕組み、表示の管理がすべて違います。「最後に D3D12 を使う」だけでは動作を判断できません。
| 比較の項目 | Direct3D 9on12 | Direct3D 12 |
|---|---|---|
| 経路全体 | D3D8 → Ephinea D3D9 → Microsoft D3D9On12 → D3D12 | D3D8 → Ephinea D3D9 → dgVoodoo → D3D12 |
| 変換するもの | Windows の D3D9On12 Mapping Layer | サードパーティのラッパー dgVoodoo2 |
| 上の層の仕組み | 今も D3D9 のデバイス・リソース・スワップチェーンの規則で動く | dgVoodoo が D3D9 を再現し、D3D12 のリソースと同期を自分で管理する |
| デバイスロスト | 従来の D3D9 の動作が多く残る。UAC やロック画面などでまだ問題が起きることを Ephinea が確認している | dgVoodoo がデバイスと表示を引き受けるので、この種の D3D8/9 の Device Lost はたいてい避けられる |
| スワップチェーン | D3D9 のランタイムとマッピングレイヤーが決める | dgVoodoo の D3D12 は常に現代の Flip Discard を使う |
| アンチエイリアス | Ephinea の高度な AA が使える。互換性の特徴は D3D9 に近い | 同じ Ephinea の AA が使える。MSAA/HSAA の反射の互換性はたいていよい |
| 主な用途 | システムの互換の経路で、性能や画質を上げる選択肢ではない | dgVoodoo の現代的なデバイス管理・表示・互換性の修正のため |
そのため、Alt-Tab、UAC の安全なデスクトップ、ロック画面の後の D3D8/9 の Device Lost を避けるには、D3D9On12 ではなく dgVoodoo の経路を選んでください。問題を調べるときは、まず Direct3D 11 を使います。Direct3D 12 でも従来のデバイスロストは避けられますが、GPU のメーカーで判断してください。主に AMD の D3D11 のテクスチャの異常の代わりの経路に向いており、NVIDIA では標準のおすすめではありません。D3D9On12 は D3D9 の処理を D3D12 に当てはめるだけで、dgVoodoo の互換性の工夫は得られません。
結論:どちらも dgVoodoo の D3D9 の前段・状態の変換・固定機能の再現を共有し、最後のリソース管理・命令の送信・同期・表示の層だけが分かれています。そのため機能と期待できる画質は同じで、D3D12 は画質を上げた D3D11 ではありません。
| 比較の項目 | Direct3D 11 | Direct3D 12 |
|---|---|---|
| API の抽象度 | 現代の高水準の API。イミディエイトコンテキストが描画の命令を受け取る | 現代の低水準の API。コマンドリストを記録してからコマンドキューへ送る |
| リソースの状態 | ドライバーが読み書きの衝突と状態の遷移を追跡する | dgVoodoo が明示的にリソースバリアを入れる |
| リソースのバインド | スロットでリソースをバインドし、ドライバーが多くの暗黙の状態を保つ | ディスクリプターヒープ/テーブルとルートシグネチャでバインドを整理する |
| 同期 | ドライバーがスケジュールと衝突の追跡の大部分を担う | dgVoodoo がキューやフェンスなどで明示的に同期する |
| メモリの管理 | 常駐とメモリの方針は主にドライバーが扱う | dgVoodoo がより直接的にヒープを確保し、リソースを置き、常駐を管理する |
| パイプラインの状態 | 状態を項目ごとに変えられ、ドライバーが実行時に組み合わせる | 状態の大部分を事前にパイプラインステートオブジェクトにまとめる |
| 表示 | 従来の BitBlt か現代の Flip 方式を使える | dgVoodoo は Flip Discard を使い、フルスクリーンでもウィンドウのスワップチェーンで表示する |
| 失敗の形 | ドライバーのリセットで DXGI Device Removed/Reset が報告されることがある | 命令・同期・ドライバーの異常で Device Removed/Hung が報告されることがあり、明示的な管理の誤りが表に出やすい |
| 画質 | 解像度・AA・SSAO・シェーダーで決まる | 同じ設定なら D3D11 とほぼ同じ |
| 性能 | PSOBB ではたいてい十分に安定 | 一部のパソコンで CPU の負荷やカクつきが減ることもあるが、30 FPS の古いゲームではたいてい全体的な利点はない |
| 互換性 | 対応するハードウェアが広い。一部の AMD のドライバーでテクスチャが単色のポリゴンになることがあると dgVoodoo の公式に記録されている | D3D12 への対応が必要。dgVoodoo の公式は現在 NVIDIA のドライバーでの GPU のハングをはっきり警告しており、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 を試します。変えるのは毎回1つだけにしてください。
D3D12 と Vulkan は同じ世代の低水準のグラフィック API で、設計の考え方はとても近いです。どちらも、以前は D3D11 のドライバーが暗黙に行っていた多くの仕事をアプリや変換レイヤーに任せます。GPU の命令を先に記録する、リソースの状態を明示する、パイプラインのオブジェクトをまとめる、ディスクリプターをバインドする、CPU と GPU の同期を扱う、といった仕事です。このページで扱う PSOBB の場合、それを担うのはゲーム本体ではなく dgVoodoo や DXVK です。
| 比較の項目 | Direct3D 12 | Vulkan |
|---|---|---|
| 規格と対応環境 | Microsoft の API で、Windows/Xbox 向け | Khronos の規格で、Windows/Linux/Android などに対応 |
| ランタイムと表示 | D3D12 Runtime + DXGI Swap Chain | Vulkan Loader/ICD + Surface/Swapchain の拡張 |
| シェーダーの形式 | 普通は HLSL を DXIL にコンパイル。古いツールでは DXBC も使える | GLSL や HLSL などを SPIR-V にコンパイル |
| リソースのバインドの仕組み | Root Signature + Descriptor Heap/Table | Pipeline Layout + Descriptor Set |
| リソースの状態 | Resource State + Resource Barrier | Access/Stage Mask + Pipeline Barrier + Image Layout |
| メモリの仕組み | ヒープとリソースに、Windows の常駐の管理を組み合わせる | メモリタイプ/ヒープと明示的なバインドで、細部がたいていより多く見える |
| 同期のオブジェクト | 単調に増えるフェンスが中心で、キューの Signal/Wait と CPU の待機に使える | タイムラインセマフォが D3D12 のフェンスに最も近く、フェンスと二値セマフォがホストへの通知とキューの依存関係などを分担する |
| 機能の拡張 | 機能レベル、インターフェースのバージョン、任意の機能 | コアのバージョン、拡張、機能のチェーン |
| PSOBB の経路 | dgVoodoo が D3D9 を受け取り D3D12 を出力 | DXVK が D3D9 を受け取り Vulkan を出力 |
| 典型的なエラー | DXGI_ERROR_DEVICE_REMOVED / HUNG / RESET | VK_ERROR_DEVICE_LOST |
| D3D12 の概念 | Vulkan で対応する概念 | 下の層での役割 |
|---|---|---|
| Command List | Command Buffer | 描画・コピー・状態の切り替えの命令を先に記録し、まとめて GPU へ送る |
| Command Queue | Queue | グラフィック・計算・コピーの仕事を受け取り、送る順番を決める |
| Resource Barrier | Pipeline Barrier / Image Layout Transition | リソースがレンダーターゲット・テクスチャ・コピー用のどれに切り替わるかを宣言する |
| Descriptor Heap / Table | Descriptor Pool / Set | シェーダーがテクスチャ・サンプラー・バッファーを見つけられるようにする |
| Pipeline State Object | Graphics Pipeline | シェーダーとラスタライズ・ブレンド・深度などの状態を組み合わせ、実行できるパイプラインにする |
| Fence | タイムラインセマフォ。フェンス/二値セマフォが一部の場面を分担 | CPU・GPU・違うキューの間の進み具合を調整する。オブジェクトは1対1に対応しない |
| Heap / Resource | Device Memory / Image / Buffer | ビデオメモリを確保し、テクスチャ・頂点・レンダーターゲットを置く |
上の表は役割のおおまかな対応で、ハンドル・寿命・同期の仕組みが1対1に対応するわけではありません。たとえば D3D12 のフェンスは増えていくタイムラインのオブジェクトで、Vulkan のタイムラインセマフォに最も近いです。従来の Vulkan のフェンスは主に1回の送信の完了をホストに知らせるもので、二値セマフォはキューの間の依存関係によく使われます。
主な違いは「高水準か低水準か」ではなく、エコシステムとインターフェースの決まりにあります。D3D12 は Microsoft の 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 + D3D12 と DXVK + Vulkan は同じ種類の現代の低水準の変換の経路と考えられますが、同等ではありません。2つの変換ツールは、D3D9 の固定機能・シェーダー・古いテクスチャの形式・深度バッファー・スワップチェーン・デバイスロストの再現のしかたが違います。こうした実装の違いのほうが、API の名前よりも PSOBB の正しさ・カクつき・安定性を大きく左右します。30 FPS の古いゲームでは、低水準の API の理論上の処理能力の利点はたいてい重要ではなく、正しく安定して描画できる経路を優先してください。
括弧内の数字は「D3D の小さなバージョン」ではなく、変換ツールのリリースのバージョンです。複数のバージョンを選べるようになったのは Ephinea Launcher 3.5.0 とクライアントの DLL 1.860 の組み合わせからで、同じリリースの投稿でその後 DLL 1.861 がスタックの破壊を、1.862 が誤って起きる強制終了を修正しました。つまり 1.860 は機能が入ったバージョンであり、固定して使うべきバージョンではありません。クライアントは常にゲーム内のパッチを最後まで当ててください。ランチャー/DLL はファイルを選んで読み込むもので、それ自体はグラフィック API ではありません。
| メニューの項目 | 変換ツール | Ephinea での位置づけ | 既知のバージョンの違い |
|---|---|---|---|
| D3D11 / D3D12 2.79.3 | dgVoodoo2 x86 D3D9 | 以前からクライアントに付いている旧版で、引き続き使える | 2.79.3 は Ephinea の PSOBB の頂点フォグの互換性をはっきり修正し、D3D8/9 のデバイスのリセットの修正も含みます。ただし後者の更新記録は別のゲーム向けで、これを根拠に PSOBB のデバイスロストがすべてなくなったとは言えません |
| D3D11 / D3D12 2.87.1 | dgVoodoo2 x86 D3D9 | Launcher 3.5.0 で追加された新しい任意のバージョン | 2.87 の D3D12 FL11 の互換の経路と FL12+ のゼロコピーの経路を引き継ぎます。2.87.1 は D3D12 のバックエンドの落ちる不具合を直し、疑似フルスクリーンとウィンドウの大きさの動作を改善しました。Ephinea は一部の D3D12 のフリーズが直る可能性があるとしています |
| Vulkan 2.3.1 | DXVK x32 D3D9 | 以前からクライアントに付いている旧版で、引き続き使える | すでに安定している設定に向く。古いからといって 2.7.1 より劣るとは限らない |
| Vulkan 2.7.1 | DXVK x32 D3D9 | Launcher 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 のファイルだけです。
このエラーはクライアントがデバイスロストを受けた後、復旧(Reset)に失敗したことを表します。「dgVoodoo 2.79.3 専用のエラー」や「D3D12 専用のエラー」ではありません。調べるときは、まず2種類の原因を区別します:
VK_ERROR_DEVICE_LOST として現れることがあり、どのバックエンドでも必ず防げるとは限りません。| バックエンドとバージョン | Alt-Tab/UAC/ロック画面による Device Lost | このエラーが出たときの判断 | ほかの注意点 |
|---|---|---|---|
| D3D8 | はっきり影響を受ける | 起きやすい原因。特に従来のフルスクリーン | Classic Fullscreen をオフにし、画面のモードの切り替えを避ける |
| D3D9 | はっきり影響を受ける | 今も従来の D3D9 の Device/Reset の仕組みを使う | D3D8 より変換が1段多いだけでは、デバイスロストは解決しない |
| D3D9On12 | はっきり影響を受ける | Ephinea は、UAC・ロック画面・スクリーンセーバーによる Device Lost を避けられないとはっきり説明している | 下は D3D12 でも上は D3D9 のまま。dgVoodoo の D3D12 と混同しないこと |
| dgVoodoo D3D11 2.79.3 / 2.87.1 | たいてい避けられる | 従来のフォーカスの喪失で起きるはずの経路ではない。それでも起きるなら、ドライバーのリセットか dgVoodoo/オーバーレイの競合を疑う | 2.87.1 は「絶対に落ちない版」ではない。一部の AMD のドライバーではテクスチャの異常が出ることもある |
| dgVoodoo D3D12 2.79.3 | たいてい避けられる | 従来の Device Lost の危険は低いが、一部の利用者で D3D12 のフリーズがあることを Ephinea が記録している | dgVoodoo の公式は現在、NVIDIA のドライバーで D3D12 の GPU のハングが起きうるとはっきり警告している。NVIDIA では第一候補にしないこと |
| dgVoodoo D3D12 2.87.1 | たいてい避けられる | Ephinea が記録した D3D12 のフリーズの確認には 2.79.3 より向くが、本当の TDR は防げない | 特定の D3D12 の落ちる不具合とフルスクリーンの動作の修正を含むが、NVIDIA の GPU のハングがなくなったり、すべてのハードウェアの組み合わせが直ったりしたわけではない |
| 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 を避けるには D3D9On12 ではなく dgVoodoo の D3D11/12 を使うよう勧めています。ただし dgVoodoo の現在の公式の説明は NVIDIA での D3D12 の GPU のハングを強く警告しているので、「従来の Device Lost を避けられる」ことは「どの GPU でも最も安定したバックエンド」という意味ではありません。DXVK の初期設定の動作は公式の設定の説明で確認できます。
このエラーが出たときの調べ方の順番:D3D8・D3D9・D3D9On12 を選んでいて、ちょうど Alt-Tab・UAC の表示・画面のロック・画面のモードの切り替えがあったなら、既知の従来のデバイスロストです。まず D3D11 2.87.1 に切り替えてください。すでに dgVoodoo の D3D11/12 か Vulkan だった場合、それは普通のフォーカスの喪失による動作ではありません。信頼性モニターか Windows エラー報告の LiveKernelEvent 117/141、システムのログの画面のドライバーのイベント(よくあるのは Display 4101)を確認し、グラフィックドライバー・オーバークロック・オーバーレイを調べます。NVIDIA ではまず D3D11 2.87.1 で試し直し、AMD で単色のテクスチャの異常が D3D11 だけで出るなら、条件をそろえて D3D12 2.87.1 を試します。
ゲームの本来の描画です。変換レイヤーを通さず、システムの D3D8 を直接呼びます。2003年の本来の動作に最も近いです。
軽いラッパーで D3D8 の呼び出しを D3D9 に変えます。負荷はごくわずかで、動作は本来に近く、純粋な D3D8 より少し安定しています。
Microsoft の公式の D3D9-on-D3D12 変換レイヤー。D3D8 の呼び出しをまず D3D9 に通し、次に Windows 内蔵の d3d9on12.dll が D3D12 に変換してグラフィックカードに送ります。
dgVoodoo2 が Ephinea の D3D9 の呼び出しを受け取り、 D3D11 に出力します。旧式の固定機能の状態は、ラッパーが現代の GPU のリソースとシェーダーとして再現します。
上と同じですが、dgVoodoo2 がより新しい D3D12。
DXVK Ephinea の D3D9 の呼び出しを Vulkan に変換します。ドライバーのコンパイル・リソース管理・表示が別の経路になるので、問題が Direct3D のドライバーの系統だけで起きているかの確認に向いています。
自分で用意した の dgVoodoo か DXVK のバージョン。Ephinea の公式の決まりに従い、ゲームのフォルダーの dxdg フォルダーに x86 の dgVoodoo_d3d9.dll か x32 の dxvk_d3d9.dll。
ジャギーは1種類の現象ではありません。PSOBB では少なくとも3種類が見られます:ポリゴンの輪郭の形状のジャギー、遠くの細かいテクスチャや柵がカメラの動きでちらつくテクスチャとアルファテストのジャギー、そして低い解像度で描画して拡大したときの全体的なサンプリング不足です。AA の方式ごとに対象が違うので、名前の後の 2x/4x だけで比べることはできません。
Ephinea の AA は、D3D11・D3D12・Vulkan が自動で付けてくれる画質の機能ではありません。クライアントがレンダーターゲットを作るときと最終の画像を処理するときに実装しています。MSAA はレンダーターゲットのマルチサンプリングの設定を変え、SSAA は内部の描画サイズを上げてから縮小し、SMAA は場面を描き終えた後に空間の後処理をします。Ephinea の開発者による実装の説明でも、この順番がはっきり示されています。
| バックエンド | 高度な AA | 注意点 |
|---|---|---|
| D3D8 | 完全に対応した経路ではない | 強化なしの本来の基準として使うのが最適 |
| D3D9 | 対応 | MSAA/HSAA で一部の場面の反射がおかしくなることがある |
| D3D9on12 | 対応 | D3D9 の前段の特徴を受け継ぐ。dgVoodoo の D3D12 ではない |
| D3D11 / D3D12 | 対応 | dgVoodoo を通すと、公式の更新記録では MSAA/HSAA の反射の互換性がよい |
| Vulkan | 対応 | AA の結果を作るのは今も Ephinea で、DXVK は D3D9 の処理を Vulkan に変換する |
倍率は横と縦の両方にかかります。出力の大きさを W × H とすると、SSAA Nx の内部の大きさは (N·W) × (N·H) で、ピクセル数は N² 倍です。SSAA 4x を「4倍のピクセルを描くだけ」と誤解しないでください。
| 1080p の出力の例 | 内部の解像度 | 内部のピクセル数 | 1080p との比 |
|---|---|---|---|
| SSAA なし | 1920 × 1080 | 約 207 万 | 1× |
| SSAA 2x | 3840 × 2160 | 約 829 万 | 4倍のピクセル |
| SSAA 4x | 7680 × 4320 | 約 3318 万 | 16倍のピクセル |
HSAA はこの高解像度のレンダーターゲットにさらに MSAA のサンプルを加えます。たとえば HSAA 4x は、おおよそ16倍のピクセルのシェーディングに4つの覆い/深度のサンプルを加えたものと考えられます。合計の時間がちょうど64倍になるわけではありませんが、レンダーターゲット・深度バッファー・帯域・ビデオメモリの負荷はとても高くなることがあります。PSOBB が古くても、4K 出力で 4x を使うと、起動に失敗したり、フレームが落ちたり、ラッパーに設定した VRAM を使い切ったりすることがあります。
この2つは矛盾しません。本来の PSOBB は形状の複雑さ・シェーダーの複雑さ・30 FPS の上限がどれも低く、20年前のグラフィックカードでも 640×480、800×600、1024×768 で現代の後処理なしなら設計どおりに動きました。現代のランチャーでは、1フレームごとに処理するピクセル・サンプル・全画面のパスを何桁も増やせます。ゲームの中身は古いままでも、GPU が実際に行う仕事はもう 2004年の負荷ではありません。
| 要素 | 負荷の増え方 | 主な負荷 | 誤解しやすい点 |
|---|---|---|---|
| 出力の解像度 | 幅×高さに比例。4K は 1080p の4倍のピクセル | ピクセルのシェーディング、帯域、後処理 | フレームレートが30に固定でも、1フレームにいくらでも負荷をかけてよいわけではない |
| D3D8 / D3D9 | 経路が短く、元の負荷はとても低い | 古いドライバー、Device Lost、CPU の命令の送信 | 古いハードウェアでなめらかというのは、たいてい低い解像度と少ない強化のこと |
| D3D11 / D3D12 | Ephinea + dgVoodoo の状態の変換とリソース管理が加わる | CPU の負荷、同期、ドライバーの互換性 | D3D12 で命令の送信の負荷は一部改善できるが、SSAA のピクセルは減らせない |
| Vulkan | Ephinea + DXVK の変換とパイプラインのコンパイルが加わる | シェーダーのコンパイル、ドライバー、同期 | API を替えるだけで性能がただで上がるわけではない |
| MSAA Nx | 覆い・深度/ステンシル・マルチサンプルの保存が増える。ピクセルシェーダーが N 回すべて実行されるとは限らない | ROP、深度、帯域、ビデオメモリ | 主に形状の輪郭を処理し、画面全体が N 倍鮮明になるわけではない |
| SSAA Nx | 幅と高さがそれぞれ N 倍、ピクセル数は N² 倍 | ピクセルシェーダー、テクスチャのサンプリング、ビデオメモリ、帯域 | SSAA 4x は4倍ではなく16倍のピクセル |
| HSAA Nx | SSAA の N² 倍のピクセルにさらに Nx の MSAA のサンプル | GPU のバックエンドのほぼすべてのリソース | 最も重い組み合わせで、安い妥協案ではない |
| AF 16x | 斜めのテクスチャのサンプル数が増える | テクスチャユニットと帯域 | たいてい SSAA よりずっと軽いが、カスタムのテクスチャで負荷が増えることもある |
| SSAO / DoF | 出力のピクセルごとに何度も深度を読み、周りをサンプリングする | 帯域、キャッシュ、シェーダーの計算 | 解像度が高いほど重い。High は見た目の段階だけではない |
| Bloom / SMAA / Tone | 全画面の読み込み・ぼかし・合成のパスが1つ以上増える | 帯域とピクセルシェーダー | 1つずつは軽いが、いくつも重ねるとボトルネックになりうる |
4K の出力は 3840×2160 で約 829 万ピクセルです。SSAA 4x を使うと内部の大きさは 15360×8640 になり、約 1億3270万ピクセルです。RGBA8 の色のバッファー1つで約 531 MB、32ビットの深度バッファー1つでも約 531 MB になります。resolve 用のターゲット、Bloom/SSAO/DoF の中間のテクスチャ、ラッパーのキャッシュ、ゲームのテクスチャを数えなくても、この2つだけで 1 GB を超えます。
さらに HSAA 4x を使うと、色と深度のターゲットに約4倍のマルチサンプルのデータを保存する必要があり、この2つのバッファーだけでも理論上 4.25 GB 近くになりえます。1フレームごとに約 1億3270万ピクセルのシェーディングと約 5億3080万の覆い/深度のサンプルの処理をし、その後 resolve して 4K に縮小し、いくつもの後処理のパスを行います。この負荷を主に制限するのはフィルレート・メモリの帯域・キャッシュ・ラッパーの実装で、モデルの三角形の数とはあまり関係がありません。
RTX 4090 は 24 GB の GDDR6X、RTX 5090 は 32 GB の GDDR7 に増えています。NVIDIA の公式の仕様ではメモリの帯域はそれぞれ約 1008 GB/s と 1792 GB/s です。そのため SSAA/HSAA や複数の全画面のパスのように帯域とメモリの容量が重い負荷では、たいてい 5090 のほうが余裕があります。参照: NVIDIA の 5090 と 4090 の公式の仕様の比較。
ただし、5090 で PSOBB のフレームレートが帯域に比例して上がるわけではありません。Ephinea は32ビットの古いプログラムで、D3D8→D3D9→dgVoodoo/DXVK の状態の変換も通ります。ボトルネックは CPU の単一スレッド、同期、ドライバー、ラッパーの内部の上限、巨大なレンダーターゲットの確保にあることもあります。4090 は 4K + SSAA/HSAA 4x + SSAO High + 複数のシェーダーで負荷が100%になったり、30 FPS を下回ったり、リソースの確保に失敗して落ちたりすることがあります。5090 はたいていより余裕がありますが、どんな極端な組み合わせでも問題ないとは限りません。
実際の判断:古いハードウェアでなめらかなのは「本来の場面の負荷」をこなせるからで、最上位のグラフィックカードが苦しむのはプレイヤーが数百倍のピクセル、多くのサンプル、多くの全画面のパスを作り出しているからです。性能を判断するときは、「20年前のゲームだから」と言うだけや D3D11 と D3D12 を比べるだけでなく、組み合わせ全体を記録してください。
SMAA は場面を描き終えた後の後処理の段階にあるので、MSAA・SSAA・HSAA の resolve や縮小の後に残った、コントラストの高い輪郭をさらに処理できます:
| 目的 | おすすめ |
|---|---|
| 性能優先/内蔵グラフィック | SMAA Medium/High。負荷が低く、描画の解像度も上がらない |
| バランスのよい汎用 | SMAA Ultra か MSAA 2x + SMAA |
| テクスチャのちらつきを減らす/画質優先 | SSAA 2x か SSAA 2x + SMAA |
| D3D9 での反射の異常 | MSAA/HSAA を避けて SMAA Ultra か SSAA 2x |
| 4K の出力 | まず SMAA Ultra。たいてい SSAA 4x まで使う必要はない |
| 最高品質のスクリーンショット/ビデオメモリに余裕がある | SSAA 4x か HSAA。段階を追って試し、いきなり最大にしないこと |
AF が解決するのは斜めから見たテクスチャのぼやけで、モデルの輪郭のジャギーではありません。床・壁・道が遠くへ伸びると、画面の1ピクセルがテクスチャの上で覆う範囲は正方形ではなく細長くなります。普通のバイリニア/トリリニアのフィルタリングはほぼ正方形の範囲でサンプリングするので、低すぎるミップマップを選んで遠くの細部を失いがちです。AF は長い方向にサンプルを増やし、斜めのテクスチャを鮮明に保ちます。
AF は細かいテクスチャの細部を多く残します。本来のテクスチャや Mod のテクスチャに正しいミップマップがなかったり、強すぎるシャープや細い線があったりすると、鮮明になった遠景でちらつき・モアレ・ノイズが出ることがあります。これは AF の実装の誤りとは限りません。まず 16x を 8x/4x に下げるか、正しいミップマップのあるテクスチャに替えてください。SSAA でもこのジャギーをさらに抑えられます。
おすすめ:本来のテクスチャと現代の GPU なら AF 16x から始めます。カスタムの高解像度テクスチャを入れた後に遠くが大きくちらつくなら、8x/4x に下げてテクスチャパックのミップマップを確認してください。AF でキャラクターの輪郭のジャギーは消えないので、合った AA も必要です。
上の AF の説明にある「画面の1ピクセルがテクスチャの上で覆う範囲」は、UV 座標で測ったものです。モデルは XYZ で各頂点の三次元空間での位置を表します。テクスチャは二次元の画像で、UV は「この頂点が画像のどの点を使うか」を表します。U は横、V は縦です。U と V という文字を使うのは、X・Y・Z がすでに空間の位置に使われているからにすぎません。
1つの頂点は2組の座標を同時に持っています。立方体の前面にある頂点 A・B・C・D について、XYZ は空間での位置を、UV はそれぞれが画像のどの角に当たるかを表します。GPU がこの面を描くとき、面の中の各ピクセルは三角形の3つの頂点の UV から自分の UV を補間し、その点の色を読みます。こうして画像全体が面に「貼られ」ます。
| XYZ | UV | |
|---|---|---|
| 表すもの | 頂点の三次元空間での位置 | 頂点がテクスチャ画像のどこに当たるか |
| 次元 | 3 | 2 |
| 範囲 | ワールドの単位で、大きさは自由 | 画像全体に対する相対値で、ふつう 0〜1。範囲外はアドレッシングモードで決まる |
| 何が変えるか | モデルの移動・回転・拡大縮小、ボーンのアニメーション | モデル制作時の UV 展開、実行時の UV アニメーション |
| 変えると見えること | モデルが動く・変形する | モデルは動かず、表面の模様が動く |
| 描画での使われ方 | 「モデル→ワールド→カメラ→画面」の変換を通り、画面のどこに描くかが決まる | これらの変換を通らずに補間され、テクスチャから色を読むためだけに使われる |
2組の座標は同じ頂点に入っていますが、互いに影響しません。キャラクターが歩く・振り向く・武器を振るとき、XYZ は毎フレーム変わり UV は変わらないので、服の模様は同じ場所に貼りついたままです。逆に UV だけを変えると、モデルはまったく動かないのに表面の模様が動きます。
XYZ は1種類だけではありません。頂点はモデルファイルから画面に届くまでに、いくつもの座標系を順に通ります。UV は別の道を通り、最後に画面のピクセルで合流します。
| 座標系 | 原点と範囲 | 役割 |
|---|---|---|
| モデル空間(ローカル) | モデル自身の中心。単位はモデル制作で決まる | モデルファイルに入っている頂点の XYZ |
| ワールド空間 | シーン全体の原点 | ワールド行列でモデルをマップに置く:位置・向き・大きさ |
| ビュー空間(カメラ) | カメラの位置。軸はカメラの向きに従う | ビュー行列で、すべてを「カメラから見た」座標に書き直す |
| クリップ空間 | 四次元の x, y, z, w | 射影行列で遠近を加える。画面の外の部分はここで切り落とされる |
| 正規化デバイス座標(NDC) | x と y は −1〜1。z は Direct3D では 0〜1 | w で割って得る。遠くのものが小さくなるのはこの段階。z は深度テストに使う |
| スクリーン空間 | ウィンドウのピクセル。原点は左上 | ビューポート変換で、どのピクセルに当たるかが決まる |
| テクスチャ空間(UV) | 0〜1。画像全体に対する相対値 | 頂点に入っているテクスチャ座標 |
| テクセル | 0〜画像の幅/高さ | UV に画像のサイズを掛けたもの。実際に色を読む位置 |
上の段の各ステップはどれも行列の掛け算か割り算で、モデルが動くたびに計算し直されます。UV の段はこれらの行列を通りません。2つの道は画面のピクセルで合流します。ラスタライズでピクセルがどの三角形に属するかが分かると、3つの頂点の UV からそのピクセルの UV を補間し、テクスチャから色を読みます。補間は w を使って遠近補正をしないと、斜めの面のテクスチャが折れ曲がります。初期の PS1 のゲームで視点によってテクスチャがゆがんだのは、この処理がなかったためです。
UV と最も直接に対応するのはモデル空間の XYZ です。どちらも頂点に入っていて、モデル制作のときに決まります。一方は形を、もう一方はテクスチャがその形をどう包むかを表します。ワールド・ビュー・射影の座標はどれも XYZ から行列で計算されるもので、UV はその流れに加わりません。UV が実際に関わる変換は次のとおりです:
| 変換 | 方向 | 計算 | 使われる場面 |
|---|---|---|---|
| モデルの表面 ↔ UV | 双方向。三角形ごとに対応 | UV 展開で頂点の対応が決まり、三角形の中は重心座標で補間する。逆に UV から表面上の点も求められる | モデル制作、ライトマップのベイク |
| UV ↔ テクセル | 双方向 | x = u × 幅、y = v × 高さ。逆は u = x ÷ 幅 | サンプリング、テクスチャの制作と差し替え |
| 画面のピクセル → UV | 一方向 | ラスタライズで補間する(遠近補正あり)。隣のピクセルとの UV の差でミップマップの段階と AF の方向が決まる | ピクセルごとの描画 |
| UV → UV | 一方向 | テクスチャ変換:ずれを足す(スクロール)、拡大縮小(繰り返し回数)、回転 | UV アニメーション |
| NDC ↔ 画面の UV | 双方向 | u = (x + 1) ÷ 2、v = (1 − y) ÷ 2(Direct3D) | 後処理で画面全体を1枚のテクスチャとして読む:AO、SMAA、ぼかし |
| UV → 接空間 | 一方向 | 表面上で U と V が増える方向を接線と従接線にし、法線と合わせて局所的な座標系を作る | 法線マップ |
UV はモデルを作るときに決まります。モデルの表面を継ぎ目に沿って切り開き、平らにして画像に当てはめる作業を UV 展開(UV unwrapping)と呼びます。段ボール箱を開いて平らにしてから印刷するようなものです。この配置で、画像のどの部分がどの面に印刷されるかが決まります。
継ぎ目の両側は画像の上で離れていることが多く、展開がうまくないと継ぎ目で模様が途切れたり色が急に変わったりします。いくつかの面の UV を画像の同じ範囲に向けて同じ模様を共有させ、テクスチャの容量を節約することもできます。
UV は画像全体に対する割合で、ピクセルの番号ではありません。実際のピクセル(テクセル)は UV に画像のサイズを掛けて求めます:
そのため同じ UV はどの解像度でも使えます。256×256 のテクスチャを 1024×1024 に替えても u = 0.5625 は同じ場所に当たり、そこのピクセルが細かくなるだけです。UV がピクセルとピクセルの間に来たときは、テクスチャのフィルタリング(バイリニア、トリリニア、上の AF)が周りのピクセルをどう混ぜるかを決めます。
UV は 0〜1 に限られません。範囲外でどこを読むかは、テクスチャのアドレッシングモードで決まります。下の図は UV が 0 から 2 までのときの、よく使われる4つのモードです:
XYZ は変えずに UV だけを変えると、止まっているモデルの上で模様を流せます。毎フレーム U か V に小さなずれを足すだけです。
Wrap と組み合わせれば、足したずれが 1 を超えても途切れず、模様は継ぎ目なく繰り返します。流れる水、滝、溶岩、画面を流れる光の帯、転送装置のエネルギーの模様などは、たいていこの方法で作られています。モデル自体は動かないので、形状の処理はほとんど増えません。
UV はモデルの中にあり、画像はサンプリングされる対象にすぎません。そのためテクスチャを差し替えるとき(高解像度のテクスチャパックなど)は:
この設定は dgVoodoo の経路にだけ関係し、DXGI のスワップチェーンの Present の方式、つまり描き終えたバックバッファーを Windows のデスクトップの合成やディスプレイにどう渡すかを決めます。遅延・ウィンドウの互換性・Alt-Tab・画面の取り込みに影響しますが、場面そのもののサンプリングの画質は変わりません。
重要な制限:これらのモードは主に D3D11 の出力用です。dgVoodoo の公式の説明によると、D3D12 の出力は Flip Discard を使う必要があり、ランチャーにほかの選択肢が残っていても、D3D12 を従来の BitBlt のスワップチェーンに戻すことはできません。
おすすめ:
下は概念的なデータの依存関係の図で、各設定が何を処理するかを理解するためのものです。Ephinea のソースコードの厳密な実行の順番ではありません。最も大事な違いは、MSAA/SSAA/HSAA は場面のサンプリングのしかたを変えるのに対し、SSAO・Bloom・DoF・Cel Shading・Tonemapping・SMAA はすでにできた画像や深度の情報を読み取ることです。
| 効果 | 最も目立つ変化 | 主な負荷/副作用 | ひとことアドバイス |
|---|---|---|---|
| SSAO | 壁の角・足元・物のつなぎ目に接触の影が増える | 輪郭のにじみ、ノイズ。解像度が高いほど GPU の負荷が大きい | 立体感が好きなら Medium、本来の見た目が好きならオフ |
| Bloom | 明るいエフェクトにやわらかい光のにじみ | 白飛び、灰色がかる、細部のぼやけ | 好みで。HDR とは思わないこと |
| Depth of Field | ピントの外がぼけてカメラのような見た目になる | 遠くが見分けにくくなる。透明な物や HUD の輪郭がおかしくなることがある | 戦闘での見やすさを優先するならオフ |
| Cel Shading | 輪郭がはっきりし、アニメ風の画面になる | 細かい輪郭を誤って検出したり、太く描きすぎたりすることがある | 純粋に見た目の好み |
| Tonemapping | 明るさ・コントラスト・色の反応が変わる | 暗い部分がつぶれる、明るい部分が飛ぶ | まず単独でオンにし、色が好みに合ったらブルームを加える |
| Motion Blur | 動きやカメラの変化で残像が出る | 動きの鮮明さが下がり、酔いの原因になることもある | たいていのプレイヤーはオフでよい |
SSAO(Screen-Space Ambient Occlusion)は画面の範囲内での接触の遮りの近似です。今のフレームの深度バッファー(実装によっては法線も)から近くの面の位置関係を復元し、壁の角・物のつなぎ目・キャラクターの足元など光が届きにくい場所をなだらかに暗くします。
動的な影でもグローバルイルミネーションでもありません。本当の影には、光源・遮る物・影を受ける面の関係が必要です。SSAO はカメラに今見えている限られた深度の情報しか知らないので、「物がより地面に接して立体的に見える」という見た目の手がかりしか与えられません。
おすすめ:まず Medium キャラクターの足元・壁の角・画面の端を見て、にじみ・ノイズ・フレームの落ち込みがなければ High に上げます。本来の明るい雰囲気を保ちたいとき、敵の輪郭をはっきり見たいとき、シェーダーの落ちる不具合を調べているときは Disabled。
これは Ephinea が本来の上に追加した体験のためのスイッチで、画質とは関係ありません。緑=オン、灰色=オフ。
スクリーンショットの互換性:Ephinea の開発者は、Clean Capture ではアドオンが写らず、D3D12 の内蔵のスクリーンショットでもアドオンは取り込めないとはっきり説明しています。アドオンの UI も一緒に写したいなら、まず D3D8/9 で Clean Capture をオフにするか、D3D11 で互換性のある Flip の表示方式を試してください。システムや OBS のウィンドウの取り込みを使ってもかまいません。
これは最終的な色・深度・輪郭の情報を使う画面の範囲内の後処理で、緑=オン、灰色=オフ。モデルやテクスチャの細部を増やすのではなく、すでに描いたピクセルを解釈し直します。いくつも重ねると負荷とゆがみも重なり、最終的な見た目は実行の順番にも左右されます。
本来の見た目と見やすさ優先:4つともオフ。軽い現代化:まず Tonemapping だけをオンにし、好みでブルームを加えます。アニメ風: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 のハング/オーバーレイの競合 | Direct3D 11 に戻し、必要なら 2.79.3 を試す |
| D3D11 と D3D12 の両方がおかしい | Direct3D 9。Vulkan で別のドライバーの経路として比べる |
| UAC・ロック画面・Alt-Tab の後の Device Lost | D3D11 2.87.1 を優先し、D3D9On12 で代用しない |
| 本来のゲームが起動するかだけ確かめたい | D3D8 + AA なし + シェーダーをオフ |
| 録画/配信で画面が取り込めない | D3D11 + Auto/Discard。ウィンドウの取り込みも試す |
Q:切り替えたらゲームが黒い画面になった/落ちた。どうすればいい?
A:ランチャーを開き直し、 Direct3D 9 か Direct3D 11 (2.79.3) のような控えめな選択肢に戻せば大丈夫です。設定は描画にだけ影響し、キャラクターのデータが壊れることはありません。
Q:なぜバージョン番号が2つある(2.79.3/2.87.1)?
A:dgVoodoo/DXVK のバージョンごとに、直った不具合と新しく出た不具合が違うからです。旧版は戻るための予備として残し、新版は試すためのものです。新版で不具合に当たったら、ひとまず旧版に戻せます。
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 に当てはめる Microsoft のシステムの互換レイヤーで、上には D3D9 のデバイスの仕組みが残っています。ランチャーの D3D12 は、dgVoodoo が D3D9 の再現・リソース管理・Flip の表示を引き受けます。同じなのは最終的なドライバーの API だけで、変換するものと互換性の動作はまったく違います。従来の Device Lost を避けるなら dgVoodoo の D3D11 を優先し、AMD で特定の D3D11 のテクスチャの異常があるときだけ D3D12 を考えてください。
Q:D3D12 は Microsoft 版の Vulkan と考えていい?
A:入門のたとえとしてなら構いません。どちらも命令・リソースの状態・ディスクリプター・パイプライン・同期を明示的に管理する現代の低水準の API です。ただし同じ API でも、互いのラッパーでもありません。D3D12 は Windows/Xbox のエコシステムに属し、Vulkan はクロスプラットフォームの規格です。PSOBB について正確に言えば、dgVoodoo は D3D9 を D3D12 に、DXVK は同じ種類の処理を Vulkan に変換しています。
Q:シェーダーをオンにしたら画面がぼやけた/色が変わった?
A:それは後処理そのものの性質で、不具合ではありません。よくある原因は BLOOM (ぼやけ)と TONEMAPPING (色が濃く鮮やかになる)です。1つずつオフにして、気に入らないものを特定してください。
Q:CLEAN CAPTURE と dgVoodoo Model = Discard にはどんな関係がある?
A:どちらも「録画/配信で画面を正しく取り込めるか」に関係します。まず CLEAN CAPTURE をオンにし、D3D11 でも OBS が取り込めないなら、Model を Flip 系から Discard に戻します。D3D12 は常に Flip Discard なので、Model を試すには D3D11 に替えてください。
検索画面を読み込めませんでした。ページを再読み込みしてください。