もうちょっと3DVisionの情報はないのかな・・・

ということで思ったことです。

どうにも情報がどこかでストップしているのか分かりませんが、ものすごい謎に包まれた機能と化しているな~と思っています。

3DVisionを「プログラム側から」有効にするには?その2

この記事でちょっと話題にしましたが、3DVisionが有効になる条件が相変わらずよく分かりません。

おそらく正しいと思われるのが

  • Direct3D9以上(D3D9、D3D10、D3D11)を使っている
  • フルスクリーン環境(WindowedがFALSE)である
  • Win32GDIによるアクセスを行わないようにしている(ダイアログボックスなど)

の条件の時、3DVisionは自動で有効になるようです。

そして、それに加えて

  • 最終描画を3Dモデルで行っている

が付け加わることで3DVisionらしい奥行きがある状態で描画されます。

Direct3D9を使っていない場合はこちらからはどうしようもないです。OpenGLで・・・とかは考えないことにしています。

しかし、特に一部のゲームの場合「フルスクリーン環境である」の条件が満たされないことが多く、3DVisionが応答しません。

なので、強制的に応答させるためにちょっとシステムに一手間を加えます。それが

  • DRS(この場合はNVIDIAのドライバとアプリの設定を示したデータ。空気抵抗…とは違います)に対象のアプリの情報を追加する

です。この情報が存在するとき、ウィンドウモードであったりしても3DVisionが応答するようになります。

これを操作するツールが[Geforce_SLI_Profile_Tool.exe]というものです。β版らしいですが、DRSのデータベースをテキストファイル化したり、データベースに再格納したり出来ます。

本来はSLIなどNVIDIAのシステムでの特有の設定を各種3Dゲームに対して行うときの情報管理のツールです。

ちなみに、遊びで強制有効DLLを作ってみたが・・・

d3d9.dllのスタブライブラリとして作ってみました。

役割としては

  • プログラムの開始時にNvAPIの初期化およびDRSの登録作業を行う
  • 3DVisionをDirect3D9を使って有効にするようにライブラリを初期化する

を行います。うまくいけば3DVisionが応答する条件でないゲームでも3DVisionとして動かすことが出来るはず・・・。

ただ、いくつかで試しましたが、ほぼ全滅してしまったので公開する気にはなれません。

(全滅、というのは試したプログラムがDirect3D9を使っていても3D描画として描画していなかった、と言うこと)


コメントを残す

メールアドレスが公開されることはありません。

*

この記事のトラックバック用URL