フォト

Google AdSense

  • AdSense
無料ブログはココログ

« 15日までは | トップページ | 晴れ »

2005.02.14

Direct3Dのステレオ視対応

結論からすれば、APIレベルでのステレオ立体視は対応していないわけ(OpenGLは対応ですし、NVIDIAの製品を使ってるならステレオドライバとかNVSGもステレオ対応ですけどね。)ですが、IDirect3DDevice9::GetBackBuffer()なんか見てるとD3DBACKBUFFER_TYPE_LEFTとかD3DBACKBUFFER_TYPE_RIGHTが予約済みなことを考えると、非常に低いプライオリティで将来のロードマップにステレオ視サポートってあるんでしょうね(まぁ、こう言ったもののAPIとしてサポートすることは無いでしょうけど)。

この辺に関してはテクスチャへのレンダリングをやってるといつも思うことなんですよねぇ。

ちなみに俺がかつて立体視向けのコンテンツを作ったときはDirectPlayで通信して2台のPCでそれぞれ両眼の画像を作ったりしておりました。偏光式ならマルチヘッドなんかも手としてはありますけどねぇ。

« 15日までは | トップページ | 晴れ »

Programming」カテゴリの記事

コメント

懐かしいな。

これですね。
/* Back buffer types */
typedef enum _D3DBACKBUFFER_TYPE
{
D3DBACKBUFFER_TYPE_MONO = 0,
D3DBACKBUFFER_TYPE_LEFT = 1,
D3DBACKBUFFER_TYPE_RIGHT = 2,

D3DBACKBUFFER_TYPE_FORCE_DWORD = 0x7fffffff
} D3DBACKBUFFER_TYPE;

ウチの研究室では学生が普通にGLUT使ってquadバッファでステレオ視コンテンツ作ってるなあ。
昔に比べてまともにサポートされている感じ。

ただ詳細はなんともいえないです。

このD3Dの「Microsoft DirectX 9.0 ではステレオ ビューはサポートされません。したがって、このパラメータの有効値は D3DBACKBUFFER_TYPE_MONO だけです。」とか「スワップチェーン」いう記述は、レンダリングパイプラインが完全に非同期であることを認めている表記だよね。PS2以降のグラフィックスハードウェアは基本的に非同期だけど。

OpenGL-nVIDIAにおいても、たとえばELSAのGENロックつき同期カードも、実際には非常に低いクロックでロックするとかしないとか。20数万x数枚も出して試せる環境は限られてるからあまり公にはなってないと思うけど。

まあ訳わからないハードウェアをOSやAPIでサポートするぐらいなら、超高速のレンダリングを実現して、アプリレベルで同期とか取ってくださいよ、というのが基本路線だと思います。

立体協とかの業界団体が働きかけても動かないだろうしなあ。シャープの立体液晶はどうやってるんだろう?まあディスプレイドライバだけで実現すればいいことなのかもしれないけど。

シャープのヤツは確か、NVIDIAのステレオドライバでやるみたいです。

http://pc.watch.impress.co.jp/docs/2004/0610/sharp.htm

この下を見ると分かりますが、"Consumer 3D Stereo"というダウンロード項目があります。

http://jp.nvidia.com/page/drivers.html

ただ、使ってるForceWareとバージョンをそろえないといけないみたいで、βドライバーとかで使えないのが欠点ですが…(僕は今ForceWare 71.80なんでちょっと…)。

コメントを書く

コメントは記事投稿者が公開するまで表示されません。

(ウェブ上には掲載しません)

トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2210/2919216

この記事へのトラックバック一覧です: Direct3Dのステレオ視対応:

» ステレオ視 [Outernet Explorer]
Masafumi研でステレオ視に関する懐かしいネタが出ていたのでTB。 これですね。 /* Back buffer types */ typedef enu... [続きを読む]

« 15日までは | トップページ | 晴れ »