描画とグラフィック API のガイド

← ホームへ戻る

PSOBB の描画とグラフィック API のガイド

画面で具体的なスイッチを探すなら、まずランチャー設定ガイドを見てください。Windows の英語版のネイティブの画面と、ページごとの説明があります。

PSOBB を対象に、古い Direct3D の呼び出しが D3D9・dgVoodoo・DXVK を通って現代のグラフィックカードに届く仕組みと、Ephinea の画面設定が実際に何をするかを説明します。描画技術の解説であると同時に、クライアントのバックエンドの選び方と問題の調べ方のガイドでもあります。内容:


全体の関係図

各設定の依存関係が1枚でわかる図: 選んだバックエンドによって、下の画質の設定のどれが実際に効くかが決まる。

PSOBB のエンジンネイティブの Direct3D 8 の呼び出し描画のバックエンド(Backend)ここでの選択で、下のどの設定が効くかが決まるネイティブ/システムの互換経路• Direct3D 8 — 変換なし、本来の描画• Direct3D 9 — Ephinea が D3D8 を D3D9 で包む• Direct3D 9on12 — Microsoft の D3D9→D3D12高度な AA は D3D9 以上。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
シアン=主な流れ · 青=バックエンドの分岐 · 紫=バックエンドと画質の設定の関係 · 点線=描画と無関係

図から覚えておきたい2つのこと: API の数字が大きいほど画質が高いわけではない。まず決まるのは、命令がどのランタイム・ラッパー・グラフィックドライバーを通るかです。Ephinea の高度なアンチエイリアスは D3D9 以上で使えます。D3D11/12 はさらに dgVoodoo を、Vulkan は DXVK を使います。 dgVoodoo Model だけは D3D11/12 の経路に限られます。


描画のバックエンド(D3D/Vulkan)

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つのファイル名とバージョンの関係が書かれています。

D3D8/D3D9/9on12/11/12/Vulkan の比較

まず区別すべき3つのこと:D3D8/9/11/12 と Vulkan はグラフィック API、D3D9On12 は Microsoft のマッピングレイヤー、dgVoodoo と DXVK はサードパーティの変換ツールです。Ephinea のドロップダウンは、これらの違う層を選びやすい「バックエンド」としてまとめたものです。

Ephinea の選択肢PSOBB から見た API中間のレイヤー最終的なドライバーの API抽象度主な特徴
Direct3D 8D3D8なしD3D8旧式の高水準本来の固定機能パイプライン。経路が最も短い。高度な AA は不完全。従来のデバイスロストの仕組み
Direct3D 9D3D8Ephinea D3D8→9D3D9旧式の高水準固定機能とシェーダーモデルが共存。高度な 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 になるわけではありません。

画質:たいてい同じなのに、1ピクセル単位では保証されない理由

API そのものが「D3D12 級の画質」を与えるわけではありません。キャラクターのポリゴン数、テクスチャの解像度、材質、光の計算式、影、エフェクトは今も PSOBB が決めます。出力の解像度・AA・AF・SSAO・シェーダーがまったく同じなら、D3D9・D3D11・D3D12・Vulkan の画面はとても近くなるはずです。

ただし、各経路はビット単位で同じ再生ではありません。ラッパーは D3D8/9 の固定機能パイプラインを再現し、旧式の形式と状態を現代のシェーダーとリソースに変換する必要があり、次のような細部で見た目の違いが出ることがあります:

  • サンプリングとフィルタリング:テクスチャ座標の精度、ミップマップの LOD、異方性フィルタリング、半ピクセルの規則で、テクスチャの鮮明さが少し変わることがあります。
  • 深度とブレンド:深度バッファの形式、比較の精度、Alpha Test/Blend の再現の違いで、つなぎ目・ちらつき・透明の順番の乱れが出ることがあります。
  • 固定機能の再現:頂点フォグ・光・反射・テクスチャのステージはシェーダーに変換する必要があり、ラッパーの不具合でフォグが消える、反射がおかしい、色がずれるといったことが起きます。
  • 色と表示:ガンマ、色空間、拡大縮小のフィルター、スワップチェーンの合成方法が、明るさ・コントラスト・最終的な鮮明さに影響します。

そのため、バックエンドによって明らかな黒い塊、おかしなフォグ、反射の欠け、全体の暗さが出たときは、ある 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 の動作が多く残る。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 の互換性の工夫は得られません。

D3D11 と D3D12 は実際どこが違う?

結論:どちらも dgVoodoo の D3D9 の前段・状態の変換・固定機能の再現を共有し、最後のリソース管理・命令の送信・同期・表示の層だけが分かれています。そのため機能と期待できる画質は同じで、D3D12 は画質を上げた D3D11 ではありません。

比較の項目Direct3D 11Direct3D 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 の下での関係

D3D12 と Vulkan は同じ世代の低水準のグラフィック API で、設計の考え方はとても近いです。どちらも、以前は D3D11 のドライバーが暗黙に行っていた多くの仕事をアプリや変換レイヤーに任せます。GPU の命令を先に記録する、リソースの状態を明示する、パイプラインのオブジェクトをまとめる、ディスクリプターをバインドする、CPU と GPU の同期を扱う、といった仕事です。このページで扱う PSOBB の場合、それを担うのはゲーム本体ではなく dgVoodoo や DXVK です。

比較の項目Direct3D 12Vulkan
規格と対応環境Microsoft の API で、Windows/Xbox 向けKhronos の規格で、Windows/Linux/Android などに対応
ランタイムと表示D3D12 Runtime + DXGI Swap ChainVulkan Loader/ICD + Surface/Swapchain の拡張
シェーダーの形式普通は 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
メモリの仕組みヒープとリソースに、Windows の常駐の管理を組み合わせるメモリタイプ/ヒープと明示的なバインドで、細部がたいていより多く見える
同期のオブジェクト単調に増えるフェンスが中心で、キューの Signal/Wait と CPU の待機に使えるタイムラインセマフォが D3D12 のフェンスに最も近く、フェンスと二値セマフォがホストへの通知とキューの依存関係などを分担する
機能の拡張機能レベル、インターフェースのバージョン、任意の機能コアのバージョン、拡張、機能のチェーン
PSOBB の経路dgVoodoo が D3D9 を受け取り D3D12 を出力DXVK が 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シェーダーがテクスチャ・サンプラー・バッファーを見つけられるようにする
Pipeline State ObjectGraphics Pipelineシェーダーとラスタライズ・ブレンド・深度などの状態を組み合わせ、実行できるパイプラインにする
Fenceタイムラインセマフォ。フェンス/二値セマフォが一部の場面を分担CPU・GPU・違うキューの間の進み具合を調整する。オブジェクトは1対1に対応しない
Heap / ResourceDevice 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 の理論上の処理能力の利点はたいてい重要ではなく、正しく安定して描画できる経路を優先してください。

Ephinea が提供する変換レイヤーのバージョン

括弧内の数字は「D3D の小さなバージョン」ではなく、変換ツールのリリースのバージョンです。複数のバージョンを選べるようになったのは Ephinea Launcher 3.5.0 とクライアントの DLL 1.860 の組み合わせからで、同じリリースの投稿でその後 DLL 1.861 がスタックの破壊を、1.862 が誤って起きる強制終了を修正しました。つまり 1.860 は機能が入ったバージョンであり、固定して使うべきバージョンではありません。クライアントは常にゲーム内のパッチを最後まで当ててください。ランチャー/DLL はファイルを選んで読み込むもので、それ自体はグラフィック API ではありません。

メニューの項目変換ツールEphinea での位置づけ既知のバージョンの違い
D3D11 / D3D12 2.79.3dgVoodoo2 x86 D3D9以前からクライアントに付いている旧版で、引き続き使える2.79.3 は Ephinea の PSOBB の頂点フォグの互換性をはっきり修正し、D3D8/9 のデバイスのリセットの修正も含みます。ただし後者の更新記録は別のゲーム向けで、これを根拠に PSOBB のデバイスロストがすべてなくなったとは言えません
D3D11 / D3D12 2.87.1dgVoodoo2 x86 D3D9Launcher 3.5.0 で追加された新しい任意のバージョン2.87 の D3D12 FL11 の互換の経路と FL12+ のゼロコピーの経路を引き継ぎます。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 専用のエラー」ではありません。調べるときは、まず2種類の原因を区別します:

  • 従来の D3D8/9 のデバイスロスト:排他的なフルスクリーンがフォーカスを失う、Alt-Tab、UAC の安全なデスクトップ、ロック画面、スクリーンセーバー、画面のモードの切り替えで起きます。PSOBB でこのエラーが出る最も多い原因です。
  • 本当の GPU/ドライバーのリセット:Windows の TDR、ドライバーの異常終了、不安定なオーバークロック、オーバーレイや注入の競合、変換ツールの不具合。D3D12 では Device Removed/Hung、Vulkan では 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 を試します。

各バックエンドの意味

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 のドライバーの品質に左右される
  • ⚠ 公式の更新記録によると、D3D9 の経路では MSAA/HSAA で一部の反射が壊れることがある。問題が出たら SMAA か SSAA に替える

Direct3D 9on12

Microsoft の公式の 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 のリソースとシェーダーとして再現します。

  • ✅ ネイティブの D3D8/9 の Device Lost の問題を避けられる。ウィンドウモード・Alt-Tab・現代のデスクトップの合成がたいていより安定
  • ✅ Auto・Discard・Flip などの表示方式を選べる
  • 📌 まずはこれを試す:対応するハードウェアが広く、D3D12 と比べて問題を調べるときの妥当な出発点
  • 📌 2.79.3 は古い安定版、2.87.1 は新しい版で、機能は多いがときどき新しい不具合がある

Direct3D 12 (2.79.3 / 2.87.1)

上と同じですが、dgVoodoo2 がより新しい D3D12。

  • ✅ 一部の新しいグラフィックカードとドライバーの組み合わせで、CPU やドライバーの負荷が下がることがある
  • 📌 画質は D3D11 より高くならない。PSOBB ではたいていフレームレートの明らかな向上もない
  • 📌 常に Flip Discard で表示する。「dgVoodoo Model」のほかの選択肢でも従来の BitBlt 方式にはできない
  • ⚠ dgVoodoo の公式は現在、NVIDIA のドライバーでの D3D12 の GPU のハングをはっきり警告している。NVIDIA では第一候補にしないこと
  • ⚠ AMD で D3D11 に単色のポリゴンが出るなら D3D12 を試し、落ちるなら Radeon Anti-Lag をオフにして試し直す

Vulkan (2.3.1 / 2.7.1)

DXVK Ephinea の D3D9 の呼び出しを Vulkan に変換します。ドライバーのコンパイル・リソース管理・表示が別の経路になるので、問題が Direct3D のドライバーの系統だけで起きているかの確認に向いています。

  • ✅ 一部のハードウェアでは、D3D の経路特有のカクつきや表示の誤りが改善することがある
  • ⚠ Vulkan のシェーダーやパイプラインを初めて作るときに短いカクつきが出ることがある。程度はドライバーと DXVK のバージョンによる
  • ⚠ DXVK は Windows を公式にはサポートしていない。録画ソフト・オーバーレイ・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)

ジャギーは1種類の現象ではありません。PSOBB では少なくとも3種類が見られます:ポリゴンの輪郭の形状のジャギー、遠くの細かいテクスチャや柵がカメラの動きでちらつくテクスチャとアルファテストのジャギー、そして低い解像度で描画して拡大したときの全体的なサンプリング不足です。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対応AA の結果を作るのは今も Ephinea で、DXVK は D3D9 の処理を Vulkan に変換する

基本の方式

  • None — アンチエイリアスなし。性能は最もよく、輪郭は最も鋭いがギザギザ。
  • MSAA 2x / 4x — Multi-Sample AA。1つのピクセルの中の複数の位置で三角形の覆い具合と深度/ステンシルの結果を計算し、ピクセルのシェーディングは普通1回分を共有します。主に形状の輪郭をなめらかにし、SSAA より軽いですが、テクスチャの内側のちらつきやシェーダーのジャギーは直せず、アルファテストで作られた葉や柵の輪郭にもたいてい効きません。Microsoft の MSAA のラスタライズの規則でも、表面のジャギーは消えないとはっきり書かれています。
  • SSAA 2x / 4x — Super-Sample AA。Ephinea は幅と高さをそれぞれ 2倍か4倍にして描画し、線形のフィルターで出力の解像度に縮小します。形状の輪郭・テクスチャの細部・一部の透明な輪郭をまとめて改善でき、効果は最も広範囲ですが、ピクセルのシェーディング・ビデオメモリ・帯域の負荷が大きく増えます。
  • SMAA Low / Medium / High / Ultra — Subpixel Morphological AA。場面を描き終えた後、色や明るさの輪郭から形を探し、隣のピクセルと混ぜます。形状の輪郭と一部のアルファテストの輪郭に効き、負荷は比較的軽いですが、形状や時間の追加のサンプルがないので、ピクセルより細かい細部を本当に取り戻すことはできず、カメラの移動でのテクスチャのちらつきも確実には消せません。品質を上げるほど探す範囲と精度が上がり、副作用として細い文字・HUD・テクスチャが少しぼやけることがあります。
  • HSAA 2x / 4x — Hybrid-Sampling AA。Ephinea では同じ倍率の SSAA + 同じ倍率の MSAAのことで、2つの間の安い妥協案ではありません。内部の解像度とピクセルごとの覆いのサンプルを両方上げるので、画質の上限は高いですが、最も重い選択肢の1つでもあります。

SSAA/HSAA の倍率は実際どれくらい?

倍率は横と縦の両方にかかります。出力の大きさを W × H とすると、SSAA Nx の内部の大きさは (N·W) × (N·H) で、ピクセル数は N² 倍です。SSAA 4x を「4倍のピクセルを描くだけ」と誤解しないでください。

1080p の出力の例内部の解像度内部のピクセル数1080p との比
SSAA なし1920 × 1080約 207 万1×
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 の最高設定で苦しむことがあるのか?

この2つは矛盾しません。本来の PSOBB は形状の複雑さ・シェーダーの複雑さ・30 FPS の上限がどれも低く、20年前のグラフィックカードでも 640×480、800×600、1024×768 で現代の後処理なしなら設計どおりに動きました。現代のランチャーでは、1フレームごとに処理するピクセル・サンプル・全画面のパスを何桁も増やせます。ゲームの中身は古いままでも、GPU が実際に行う仕事はもう 2004年の負荷ではありません。

解像度と SSAA の設定ごとの1フレームのピクセル量(640×480 との比)640×480 を1倍として、1080p は約6.75倍、4K は27倍、4K SSAA 2x は108倍、4K SSAA 4x は432倍。640×480・SSAA なしを基準にした1フレームのピクセルの作業量(対数の目盛り)1×約 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 で1フレームに描くピクセルは本来の 640×480 の約432倍

解像度・D3D のバックエンド・AA・効果を1つずつ見る

要素負荷の増え方主な負荷誤解しやすい点
出力の解像度幅×高さに比例。4K は 1080p の4倍のピクセルピクセルのシェーディング、帯域、後処理フレームレートが30に固定でも、1フレームにいくらでも負荷をかけてよいわけではない
D3D8 / D3D9経路が短く、元の負荷はとても低い古いドライバー、Device Lost、CPU の命令の送信古いハードウェアでなめらかというのは、たいてい低い解像度と少ない強化のこと
D3D11 / D3D12Ephinea + dgVoodoo の状態の変換とリソース管理が加わるCPU の負荷、同期、ドライバーの互換性D3D12 で命令の送信の負荷は一部改善できるが、SSAA のピクセルは減らせない
VulkanEphinea + DXVK の変換とパイプラインのコンパイルが加わるシェーダーのコンパイル、ドライバー、同期API を替えるだけで性能がただで上がるわけではない
MSAA Nx覆い・深度/ステンシル・マルチサンプルの保存が増える。ピクセルシェーダーが N 回すべて実行されるとは限らないROP、深度、帯域、ビデオメモリ主に形状の輪郭を処理し、画面全体が N 倍鮮明になるわけではない
SSAA Nx幅と高さがそれぞれ N 倍、ピクセル数は N² 倍ピクセルシェーダー、テクスチャのサンプリング、ビデオメモリ、帯域SSAA 4x は4倍ではなく16倍のピクセル
HSAA NxSSAA の N² 倍のピクセルにさらに Nx の MSAA のサンプルGPU のバックエンドのほぼすべてのリソース最も重い組み合わせで、安い妥協案ではない
AF 16x斜めのテクスチャのサンプル数が増えるテクスチャユニットと帯域たいてい SSAA よりずっと軽いが、カスタムのテクスチャで負荷が増えることもある
SSAO / DoF出力のピクセルごとに何度も深度を読み、周りをサンプリングする帯域、キャッシュ、シェーダーの計算解像度が高いほど重い。High は見た目の段階だけではない
Bloom / SMAA / Tone全画面の読み込み・ぼかし・合成のパスが1つ以上増える帯域とピクセルシェーダー1つずつは軽いが、いくつも重ねるとボトルネックになりうる

4K の最高設定でのビデオメモリとサンプル数の見積もり

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 と RTX 5090 はどう考えればよい?

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 を比べるだけでなく、組み合わせ全体を記録してください。

組み合わせ(X + SMAA)

SMAA は場面を描き終えた後の後処理の段階にあるので、MSAA・SSAA・HSAA の resolve や縮小の後に残った、コントラストの高い輪郭をさらに処理できます:

  • MSAA + SMAA — MSAA が本当の形状の覆いのサンプルを与え、SMAA が残った見分けられる輪郭を整えます。たいてい品質と負荷のバランスのよい組み合わせです。
  • SSAA + SMAA — SSAA が先に細かい細部とピクセルより細かいジャギーを抑え、SMAA が残った輪郭を処理します。品質は高いですが、SMAA では SSAA 自体の大きなピクセルの負荷は打ち消せません。
  • HSAA + SMAA — SSAA・MSAA・SMAA の3つを重ねる極端な選択肢で、普段使いの「妥協案」ではありません。

おすすめ

目的おすすめ
性能優先/内蔵グラフィック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。段階を追って試し、いきなり最大にしないこと

異方性フィルタリング(Anisotropic Filtering)

AF が解決するのは斜めから見たテクスチャのぼやけで、モデルの輪郭のジャギーではありません。床・壁・道が遠くへ伸びると、画面の1ピクセルがテクスチャの上で覆う範囲は正方形ではなく細長くなります。普通のバイリニア/トリリニアのフィルタリングはほぼ正方形の範囲でサンプリングするので、低すぎるミップマップを選んで遠くの細部を失いがちです。AF は長い方向にサンプルを増やし、斜めのテクスチャを鮮明に保ちます。

普通のテクスチャのフィルタリングと異方性フィルタリングのサンプリングの範囲の比較遠近法で描かれた地面の画面のピクセルは、テクスチャの上では細長い範囲になります。普通のフィルタリングは小さな正方形で近似してぼやけ、異方性フィルタリングは長い方向に複数のサンプルを使います。普通のバイリニア/トリリニア異方性フィルタリング正方形で近似 → 遠くがぼやけすぎやすい長い方向にサンプリング → 斜面の細部を保つAF はテクスチャのサンプリングの範囲、AA はピクセルの覆いや最終の輪郭を処理し、互いの代わりにはならない
遠近の傾きが大きいほど範囲は細長くなり、AF の効果が大きい
  • 2x / 4x:少ない負荷で床や壁の斜めの鮮明さを改善します。古い GPU や内蔵グラフィックに向きます。
  • 8x:たいてい目に見える効果のほとんどを得られ、汎用の設定に向きます。
  • 16x:斜めのテクスチャの鮮明さを最大にします。現代の単体のグラフィックカードでは追加の負荷はたいてい小さいですが、テクスチャのサンプリングと帯域の負荷は増えます。

AF でかえってちらつくことがあるのはなぜ?

AF は細かいテクスチャの細部を多く残します。本来のテクスチャや Mod のテクスチャに正しいミップマップがなかったり、強すぎるシャープや細い線があったりすると、鮮明になった遠景でちらつき・モアレ・ノイズが出ることがあります。これは AF の実装の誤りとは限りません。まず 16x を 8x/4x に下げるか、正しいミップマップのあるテクスチャに替えてください。SSAA でもこのジャギーをさらに抑えられます。

おすすめ:本来のテクスチャと現代の GPU なら AF 16x から始めます。カスタムの高解像度テクスチャを入れた後に遠くが大きくちらつくなら、8x/4x に下げてテクスチャパックのミップマップを確認してください。AF でキャラクターの輪郭のジャギーは消えないので、合った AA も必要です。


UV 座標(テクスチャ座標)

上の AF の説明にある「画面の1ピクセルがテクスチャの上で覆う範囲」は、UV 座標で測ったものです。モデルは XYZ で各頂点の三次元空間での位置を表します。テクスチャは二次元の画像で、UV は「この頂点が画像のどの点を使うか」を表します。U は横、V は縦です。U と V という文字を使うのは、X・Y・Z がすでに空間の位置に使われているからにすぎません。

立方体の面にある4つの頂点 A・B・C・D の XYZ 座標と、テクスチャ上の同じ点の UV 座標の対応
Direct3D の決まり:UV (0, 0) はテクスチャの左上で、V は下に向かって増える

1つの頂点は2組の座標を同時に持っています。立方体の前面にある頂点 A・B・C・D について、XYZ は空間での位置を、UV はそれぞれが画像のどの角に当たるかを表します。GPU がこの面を描くとき、面の中の各ピクセルは三角形の3つの頂点の UV から自分の UV を補間し、その点の色を読みます。こうして画像全体が面に「貼られ」ます。

XYZ と UV の関係

XYZUV
表すもの頂点の三次元空間での位置頂点がテクスチャ画像のどこに当たるか
次元32
範囲ワールドの単位で、大きさは自由画像全体に対する相対値で、ふつう 0〜1。範囲外はアドレッシングモードで決まる
何が変えるかモデルの移動・回転・拡大縮小、ボーンのアニメーションモデル制作時の UV 展開、実行時の UV アニメーション
変えると見えることモデルが動く・変形するモデルは動かず、表面の模様が動く
描画での使われ方「モデル→ワールド→カメラ→画面」の変換を通り、画面のどこに描くかが決まるこれらの変換を通らずに補間され、テクスチャから色を読むためだけに使われる

2組の座標は同じ頂点に入っていますが、互いに影響しません。キャラクターが歩く・振り向く・武器を振るとき、XYZ は毎フレーム変わり UV は変わらないので、服の模様は同じ場所に貼りついたままです。逆に UV だけを変えると、モデルはまったく動かないのに表面の模様が動きます。

モデルから画面まで:いくつもの座標系

XYZ は1種類だけではありません。頂点はモデルファイルから画面に届くまでに、いくつもの座標系を順に通ります。UV は別の道を通り、最後に画面のピクセルで合流します。

モデル・ワールド・ビュー・クリップ・NDC・スクリーンの変換の流れと、テクスチャの UV がテクセルを経て画面のピクセルで合流する様子
上の段:頂点の XYZ の行列による変換の流れ。下の段:UV は行列を通らず、画面のピクセルの色を取るときだけ加わる
座標系原点と範囲役割
モデル空間(ローカル)モデル自身の中心。単位はモデル制作で決まるモデルファイルに入っている頂点の XYZ
ワールド空間シーン全体の原点ワールド行列でモデルをマップに置く:位置・向き・大きさ
ビュー空間(カメラ)カメラの位置。軸はカメラの向きに従うビュー行列で、すべてを「カメラから見た」座標に書き直す
クリップ空間四次元の x, y, z, w射影行列で遠近を加える。画面の外の部分はここで切り落とされる
正規化デバイス座標(NDC)x と y は −1〜1。z は Direct3D では 0〜1w で割って得る。遠くのものが小さくなるのはこの段階。z は深度テストに使う
スクリーン空間ウィンドウのピクセル。原点は左上ビューポート変換で、どのピクセルに当たるかが決まる
テクスチャ空間(UV)0〜1。画像全体に対する相対値頂点に入っているテクスチャ座標
テクセル0〜画像の幅/高さUV に画像のサイズを掛けたもの。実際に色を読む位置

上の段の各ステップはどれも行列の掛け算か割り算で、モデルが動くたびに計算し直されます。UV の段はこれらの行列を通りません。2つの道は画面のピクセルで合流します。ラスタライズでピクセルがどの三角形に属するかが分かると、3つの頂点の UV からそのピクセルの UV を補間し、テクスチャから色を読みます。補間は w を使って遠近補正をしないと、斜めの面のテクスチャが折れ曲がります。初期の PS1 のゲームで視点によってテクスチャがゆがんだのは、この処理がなかったためです。

UV は何と比べ、何と相互に変換されるか

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 はモデルを作るときに決まります。モデルの表面を継ぎ目に沿って切り開き、平らにして画像に当てはめる作業を UV 展開(UV unwrapping)と呼びます。段ボール箱を開いて平らにしてから印刷するようなものです。この配置で、画像のどの部分がどの面に印刷されるかが決まります。

立方体の6つの面を切り開いて平らにし、テクスチャ上で十字形に並べた配置
左:立方体の見えている3つの面。右:6つの面のテクスチャ上の位置

継ぎ目の両側は画像の上で離れていることが多く、展開がうまくないと継ぎ目で模様が途切れたり色が急に変わったりします。いくつかの面の UV を画像の同じ範囲に向けて同じ模様を共有させ、テクスチャの容量を節約することもできます。

UV とテクスチャのピクセル

UV は画像全体に対する割合で、ピクセルの番号ではありません。実際のピクセル(テクセル)は UV に画像のサイズを掛けて求めます:

8×8 のテクスチャの格子で UV (0.5625, 0.3125) が当たるピクセルと、ほかの解像度でのピクセル座標
ピクセル座標 = UV × 画像のサイズ。同じ UV はどの解像度でも使える

そのため同じ UV はどの解像度でも使えます。256×256 のテクスチャを 1024×1024 に替えても u = 0.5625 は同じ場所に当たり、そこのピクセルが細かくなるだけです。UV がピクセルとピクセルの間に来たときは、テクスチャのフィルタリング(バイリニア、トリリニア、上の AF)が周りのピクセルをどう混ぜるかを決めます。

0〜1 の外:アドレッシングモード

UV は 0〜1 に限られません。範囲外でどこを読むかは、テクスチャのアドレッシングモードで決まります。下の図は UV が 0 から 2 までのときの、よく使われる4つのモードです:

UV が 0 から 2 までのときの Wrap・Mirror・Clamp・Border の結果
左上のマスが 0〜1 の元の画像で、残りの3マスは UV が 1 を超えたときに読まれるもの
  • Wrap(繰り返し):小数部分だけを見るので、1.25 は 0.25 と同じです。床・壁・草地のように広く繰り返す模様に使い、小さな画像1枚で広い面を覆えます。
  • Mirror(鏡像):整数を超えるたびに反転するので、継ぎ目が左右対称になります。繰り返しを目立たせたくない模様に向きます。
  • Clamp(端で止める):範囲外はすべて一番外側のピクセルを使い、端が引き伸ばされます。インターフェースの部品や単発のデカールなど、繰り返してはいけない画像に使います。
  • Border(境界色):範囲外を決まった1色で埋めます。

UV スクロール

XYZ は変えずに UV だけを変えると、止まっているモデルの上で模様を流せます。毎フレーム U か V に小さなずれを足すだけです。

3つのフレームでモデルは動かず、テクスチャの縞が U のずれに合わせて右へ動く
破線は 0 フレーム目の位置。黄色の縞は毎フレーム U に合わせて右へ動き、頂点は動かない

Wrap と組み合わせれば、足したずれが 1 を超えても途切れず、模様は継ぎ目なく繰り返します。流れる水、滝、溶岩、画面を流れる光の帯、転送装置のエネルギーの模様などは、たいていこの方法で作られています。モデル自体は動かないので、形状の処理はほとんど増えません。

テクスチャの差し替えとの関係

UV はモデルの中にあり、画像はサンプリングされる対象にすぎません。そのためテクスチャを差し替えるとき(高解像度のテクスチャパックなど)は:

  • 解像度は自由に上げられます。UV は割合なので、256 を 1024 にしても位置は変わらず、細かくなるだけです。
  • 配置は元の画像と同じにする必要があります。モデルの UV は変わっていないので、画像のどこかの部分を動かすと貼る場所がずれます。顔が背中に来る、文字がずれる、継ぎ目に余計な色が出る、といったことが起きます。
  • 縦横比は保つのが無難です。UV は画像を割合で読むので、縦横比を変えると模様が引き伸ばされます。
  • 端に余白を取ります。高解像度のテクスチャほど UV の継ぎ目で隣の範囲の色が見えやすくなるので、各範囲の端を数ピクセル外側まで塗り広げるのが一般的です。

よくある質問

テクスチャが伸びたり歪んだりするのはなぜ?
たいていは UV 展開のときにある面が画像の上でつぶれているか、差し替えたテクスチャの縦横比が変わっています。グラフィックカードやバックエンドの問題ではなく、バックエンドを変えても直りません。
遠くの床の模様がちらつくのはなぜ?
UV 空間で画面の1ピクセルが多すぎるテクスチャのピクセルを覆っているためです。ミップマップと AF に関係します。上の異方性フィルタリングを見てください。
UV が ST と書かれることがあるのはなぜ?
呼び方が違うだけです。OpenGL ではテクスチャ座標に S と T を使うことが多く、意味は U と V と同じです。なお Direct3D では UV (0, 0) が画像の左上で V は下に向かって増え、OpenGL では原点が左下で V は上に向かって増えます。

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・ウィンドウの合成がおかしいときだけ、ほかを1つずつ試してください
  • 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 は場面の作り方を変える · 後処理は限られた色/深度の情報を読む · スワップチェーンは表示するだけで画質を上げない
概念的なデータの流れ:同じ「画面設定」でも、起きる段階・見た目の効果・ゆがみの種類はまったく違う

普通のプレイヤー向けの早見表

効果最も目立つ変化主な負荷/副作用ひとことアドバイス
SSAO壁の角・足元・物のつなぎ目に接触の影が増える輪郭のにじみ、ノイズ。解像度が高いほど GPU の負荷が大きい立体感が好きなら Medium、本来の見た目が好きならオフ
Bloom明るいエフェクトにやわらかい光のにじみ白飛び、灰色がかる、細部のぼやけ好みで。HDR とは思わないこと
Depth of Fieldピントの外がぼけてカメラのような見た目になる遠くが見分けにくくなる。透明な物や HUD の輪郭がおかしくなることがある戦闘での見やすさを優先するならオフ
Cel Shading輪郭がはっきりし、アニメ風の画面になる細かい輪郭を誤って検出したり、太く描きすぎたりすることがある純粋に見た目の好み
Tonemapping明るさ・コントラスト・色の反応が変わる暗い部分がつぶれる、明るい部分が飛ぶまず単独でオンにし、色が好みに合ったらブルームを加える
Motion Blur動きやカメラの変化で残像が出る動きの鮮明さが下がり、酔いの原因になることもあるたいていのプレイヤーはオフでよい

アンビエントオクルージョン(Ambient Occlusion)

SSAO(Screen-Space Ambient Occlusion)は画面の範囲内での接触の遮りの近似です。今のフレームの深度バッファー(実装によっては法線も)から近くの面の位置関係を復元し、壁の角・物のつなぎ目・キャラクターの足元など光が届きにくい場所をなだらかに暗くします。

動的な影でもグローバルイルミネーションでもありません。本当の影には、光源・遮る物・影を受ける面の関係が必要です。SSAO はカメラに今見えている限られた深度の情報しか知らないので、「物がより地面に接して立体的に見える」という見た目の手がかりしか与えられません。

  • Disabled — オフ。本来の見た目に最も近く、性能も最もよい。
  • Low — 低い解像度や性能の限られた機器に向きます。サンプリングのノイズ・縞・輪郭の変化が目立つことがあります。
  • Medium — 接触の感じと負荷のバランスがよく、普通のプレイヤーの出発点に向きます。
  • High — サンプリングと処理の品質を上げ、影はたいてい安定して細かくなりますが、負荷は出力の解像度とともに大きく増えます。

上級者が知っておきたい限界

  • 画面の端の漏れ:サンプリングの範囲が画面の外に出ると場面のデータがないので、遮りが急に薄くなったり消えたりすることがあります。
  • 遮りの情報が不完全:カメラの外や手前の物に完全に隠れた物は今の深度バッファーになく、正しい遮りに寄与できません。
  • 深度の段差でのにじみ:手前と奥の境目の大きな深度の差で、不自然な暗い縁や明るい縁ができることがあります。
  • 透明な物とパーティクル:透明な物・エフェクト・HUD は普通の物体のように深度を書き込まないことが多く、対象から外れたり、誤って覆われたりすることがあります。
  • AA との関係:SSAO/DoF はマルチサンプルの深度/色のバッファーを正しく読むか resolve する必要があります。Ephinea の 2022-09-06 の更新でこれらと MSAA/HSAA の組み合わせが個別に修正されたので、古いクライアントで問題が出たらまず完全に更新してください。

おすすめ:まず Medium キャラクターの足元・壁の角・画面の端を見て、にじみ・ノイズ・フレームの落ち込みがなければ High に上げます。本来の明るい雰囲気を保ちたいとき、敵の輪郭をはっきり見たいとき、シェーダーの落ちる不具合を調べているときは Disabled。


Extra(追加機能)

これは Ephinea が本来の上に追加した体験のためのスイッチで、画質とは関係ありません。緑=オン、灰色=オフ。

  • FAST STARTUP — 起動時の SEGA/Sonic Team/SOFTDEC などのロゴのアニメーションを飛ばし、すぐログイン画面に入ります。
  • CLEAN CAPTURE — ゲーム内蔵のスクリーンショットが場面のレンダーターゲットから「きれいな」画像を取るので、Lua Addons など後から重ねたものが写りません。録画の画質を上げるスイッチではなく、サードパーティの録画ソフトが取り込めるかはバックエンドとスワップチェーンによります。
  • MOTION BLUR — モーションブラー。動きの方向のサンプルを混ぜたり、隣のフレームを重ねたりして、シャッターが開いている間の動きの軌跡をまねます。低いフレームレートの動きを連続的に見せられますが、動いている間の細部と文字の読みやすさが下がります。PSOBB は 30 FPS 固定なので残像が特に目立ち、動きの鮮明さを重視する人や酔いやすい人はオフにしてください。
  • RARE DROP SFX — レアドロップの通知音。レアアイテムが落ちると追加の音が鳴り、周回中に見落としにくくなります。
  • BANK SHORTCUTS — 倉庫のショートカットキー。オンにすると倉庫の画面でキーボードを使ってすばやく出し入れやページ送りができ、効率が大きく上がります。
  • LARGE BANK WINDOW — 倉庫のウィンドウを大きくします。一度に多くのアイテムを表示し、ページ送りを減らせます。

スクリーンショットの互換性:Ephinea の開発者は、Clean Capture ではアドオンが写らず、D3D12 の内蔵のスクリーンショットでもアドオンは取り込めないとはっきり説明しています。アドオンの UI も一緒に写したいなら、まず D3D8/9 で Clean Capture をオフにするか、D3D11 で互換性のある Flip の表示方式を試してください。システムや OBS のウィンドウの取り込みを使ってもかまいません。


シェーダー(Shaders)

これは最終的な色・深度・輪郭の情報を使う画面の範囲内の後処理で、緑=オン、灰色=オフ。モデルやテクスチャの細部を増やすのではなく、すでに描いたピクセルを解釈し直します。いくつも重ねると負荷とゆがみも重なり、最終的な見た目は実行の順番にも左右されます。

後処理の効果の概念的な比較5つの抽象的な図で、アンビエントオクルージョンが接触部分を暗くする、ブルームが明るい部分を広げる、被写界深度が遠くをぼかす、セルシェーディングが輪郭を強める、トーンマッピングが明るさを割り当て直す様子を示しています。SSAO接触部分が暗くなる地面への接地感と立体感が増すBloom明るい部分が外へ広がる光の感じが強くなるが、細部がぼやけることもDepth of Fieldピントは鮮明、遠くはぼけるカメラらしさと引き換えに見やすさが下がるCel Shading輪郭と明暗の区分けが強まるアニメ風の造形を強調するTonemapping明るさと色を割り当て直すHDR の情報が増えるわけではない抽象的な図でゲームの画面ではない。各方式が主に変える見た目の手がかりを示す
効果の図:変わるのは接触の暗さ・光のにじみ・ピント・輪郭・色調で、API の段階ではない
  • BLOOM — ブルーム。よくある実装では、明るいピクセルを取り出し、解像度を下げた明るさの画像を何度もぼかしてから元の画像に足します。レンズや目の中で強い光が広がる感じをまねるもので、新しい光を作るわけではありません。強すぎると白い HUD・テクニックのエフェクト・明るいテクスチャが互いににじみ、白飛びや霧がかかったように見えます。
  • DEPTH OF FIELD — 被写界深度。深度バッファーからピクセルとピント面の距離(Circle of Confusion)を見積もり、ピントの外をぼかします。PSOBB の透明なエフェクト・キャラクター名・HUD は、実際の形状と同じ深度を持つとは限らないので、輪郭ににじみが出たり、手前が奥の色に染まったり、文字がぼやけたりすることがあります。
  • CEL SHADING — セルシェーディング。明るさ・深度・法線の輪郭の検出で輪郭を強め、連続した明暗の段階を減らして、セル画のアニメに近い見た目にします。画面の範囲内の様式化で、キャラクターの材質を作り直すものではありません。細かいテクスチャやコントラストの高い HUD も輪郭と見なされることがあります。
  • TONEMAPPING — トーンマッピング。非線形の曲線で内部の明るさを表示の範囲に割り当て直し、暗い部分の圧縮・明るい部分のなだらかさ・コントラスト・彩度を変えます。PSOBB は現代の HDR の描画ではないので、ここでは表示の色調と色の反応の調整と考えるべきで、何もないところから HDR のダイナミックレンジを作るわけではありません。

効果の重ね方と問題の調べ方

  • 1つずつ有効にする:まず安定したバックエンドと AA を選び、それからシェーダーを1つずつオンにします。そうして初めて、落ちる・ぼやける・フレームが落ちる・色がおかしいの原因がどれか判断できます。
  • Bloom + Tonemapping:トーンマッピングで明るい部分やコントラストが上がると、ブルームが取り出す明るい領域も変わります。組み合わせた結果は2つの効果の単純な足し算ではありません。
  • DoF / SSAO + MSAA:どちらも深度の resolve に依存します。クライアントを最新に保ち、輪郭ににじみが出たら、まず AO を下げて DoF をオフにし、それから AA を替えます。
  • 複数の全画面のパス:後処理はたいてい出力のピクセルごとに実行され、4K は 1080p の4倍のピクセルです。1つが軽いからといって、同時に使っても軽いとは限りません。
  • Vulkan / Wine:シェーダーのコンパイル、深度の形式、注入型のオーバーレイの組み合わせはより複雑です。落ちる不具合が出たら、まずシェーダーをすべてオフにし、バックエンドが安定しているのを確認してから戻します。

本来の見た目と見やすさ優先: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 LostD3D11 2.87.1 を優先し、D3D9On12 で代用しない
本来のゲームが起動するかだけ確かめたいD3D8 + AA なし + シェーダーをオフ
録画/配信で画面が取り込めないD3D11 + Auto/Discard。ウィンドウの取り込みも試す

手軽な設定(現代のグラフィックカード + バランスのよい画質)

  • 描画のバックエンド: Direct3D 11 (2.87.1) (D3D12 にしても画質は上がらない)
  • アンチエイリアス: SMAA Ultra か MSAA 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)
  • アンビエントオクルージョン: Low か Disabled
  • シェーダー:すべてオフ

よくある質問

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 に替えてください。