Direct3Dのステレオ視対応
結論からすれば、APIレベルでのステレオ立体視は対応していないわけ(OpenGLは対応ですし、NVIDIAの製品を使ってるならステレオドライバとかNVSGもステレオ対応ですけどね。)ですが、IDirect3DDevice9::GetBackBuffer()なんか見てるとD3DBACKBUFFER_TYPE_LEFTとかD3DBACKBUFFER_TYPE_RIGHTが予約済みなことを考えると、非常に低いプライオリティで将来のロードマップにステレオ視サポートってあるんでしょうね(まぁ、こう言ったもののAPIとしてサポートすることは無いでしょうけど)。
この辺に関してはテクスチャへのレンダリングをやってるといつも思うことなんですよねぇ。
ちなみに俺がかつて立体視向けのコンテンツを作ったときはDirectPlayで通信して2台のPCでそれぞれ両眼の画像を作ったりしておりました。偏光式ならマルチヘッドなんかも手としてはありますけどねぇ。
「Programming」カテゴリの記事
- シングルヘッダのglTFシリアライズ/デシリアライズライブラリ:fx-gltf(2018.04.17)
- I3D 2018のPapersのリストが出そろったみたい(2018.04.12)
- GDC 2018 Cluster Forward Rendering and Anti-Aliasing in 'Detroit: Become Human'(2018.04.05)
- WinMLの始め方(2018.04.03)
- DirectX Raytracing (DXR) の話 その1 APIの構造など(2018.04.03)
コメント
トラックバック
この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/2210/2919216
この記事へのトラックバック一覧です: Direct3Dのステレオ視対応:
懐かしいな。
これですね。
/* 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でサポートするぐらいなら、超高速のレンダリングを実現して、アプリレベルで同期とか取ってくださいよ、というのが基本路線だと思います。
立体協とかの業界団体が働きかけても動かないだろうしなあ。シャープの立体液晶はどうやってるんだろう?まあディスプレイドライバだけで実現すればいいことなのかもしれないけど。
投稿: しらいあきひこ | 2005.02.14 06:11
シャープのヤツは確か、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なんでちょっと…)。
投稿: masafumi | 2005.02.14 13:28