2011-07-26 11 views
9

私は3Dテレビを持っていて、少なくとも自分の作品のかなりの3D画像を表示しようとしていなければ、私は自分の責任を軽く感じていると感じます(オタクとして)!3D画像を3Dテレビに出力するにはどうすればよいですか?

私はこれまでにOpenGLプログラミングの基本的な量を行ってきました。私は概念を理解しています。自分自身を単純な四面体またはキューブにして、私の3D TVで、3Dでこの画像を表示するにはどうすればいいですか?

私は3Dの仕組み(それぞれの目に2つの異なる角度から同じ画像を2回レンダリングする)の基本を理解していますが、私の質問はSDKを必要としていますか? ...)

  • 私の意図は、可能な場合は、この質問にも(他の3D技術に関連することですが、私が持っているテレビは、偏光3Dを使用しています)
  • 私のラップトップは、私が意図するものであるHDMI出力を、持っています(これはVGA /コンポーネントビデオケーブルを使用して何か違いがありますか?)
  • 過去に私は持っていますしかし、GLUT/OpenGLで実験したが、代替技術を使ってこれを行うのが簡単で本当に可能なのであれば、それはうまくいく。
+0

[HDMI 1.4a互換の立体映像信号をOpenGLアプリケーションから3DTVに出力するにはどうすればいいですか?](https://stackoverflow.com/questions/7032991/how-can-i-output-a -hdmi-1-4a-compatible-stereoscopic-signal-from-opengl-appli) – user2284570

答えて

7

主な問題は、GPUに立体視フォーマットを送ることである。 HDMI接続の場合、これはドライバの助けなしには動作しません。あなたはプロ級のGPU(Quadroは、のFireGL)を持っている場合は、それらの可能性の高いサポートOpenGLのquadbuffersは、あなたが左眼と右眼、表裏の両方のためのフレームバッファを取得する例:

glDrawBuffer(GL_BACK_LEFT); 
render_left_eye(); 

glDrawBuffer(GL_BACK_RIGHT); 
render_right_eye(); 

glDrawBuffer(GL_BACK); // renders to both eyes simultanously 
render_screen_level_and_nonstereoscopic(); 

SwapBuffers(); 

あいにくのOpenGLクワッドバッファがプロと考えられていますグレードのもの。

代わりに、NVidiaには通常の立体視用ライブラリとそれを制御する拡張機能がいくつか用意されています。主な推論は、共有された断片が一度だけレンダリングされ、次いで適切な視差が適用されて両眼に送られることである。しかし、私のセミプロフェッショナルのステレオスコピック1の経験から、この種のセミ/オートの立体視標本はそれをカットしません。ステレオスコピーは "生産"パイプライン全体を厳密に制御する必要があります。エレファントドリームでは、レンダラのコアコードを変更するまで行った。

NVidiaの3Dデビジョンで人を送ったところ、立体視プロセスを正確に制御する必要があるいくつかのシナリオがありました。私は彼らが光を見て、コンシューマーグレードのハードウェアでもクワッドバッファーステレオにアクセスできることを願っています。私は3Dの仕組みの基本を理解

注実際には2つの異なる角度からではなくてレンダリングされない

(2つの異なる角度、各目に1から2回同じ画像をレンダリング)シフトされた視差及びレンズシフト。さもなければ、私は今、立体視レンダリングのプロセスで光軸をわずかに広げなければならないと思っています。つまり、邪魔にならないものに完全に反することです。私は現在、これに関する小さな研究を準備していますが、まだ私のテストとコントロールグループを集める必要があります)。


1:一体、私はsingle-handedly stereographedエレファンツドリーム、rendered it男だし、それにaward at a 3D movie festivalを得ました。

+0

包括的な答えをありがとう!それが起こったとき、私は実際にQuadroグラフィックスカードを持っている別のノートパソコンを買うことを考えていました(それは役に立つかもしれないことを理解することなく)ので、両方の方法を試してみるかもしれません。 – Justin

+0

実際には、nVidia 3Dのクラップは、レンダリングターゲットを複製するかどうか、すべての描画呼び出しをレンダリングするかどうか、視差計算を行うように頂点シェーダを変更するなどのヒューリスティックに基づいて決定します。それについての巧妙なことは、nVidiaのある人は、あなたよりもはるかにスマートで、あなたが書いた可能性のあるアプリケーションよりもずっと多くのことを知っているからです。あなたは3Dをサポートしていること、つまりクワッドバッファを正しくサポートしているかどうかは分かりません。それはHWから特別なことを求めるようなものではありません。 – Damon

+0

@Damon:理由は簡単です。本当のクアッドバッファステレオは、NVIDIAのハイエンドのプロフェッショナルグレードGPUのセールスポイントです。消費者のGPUで動作させるドライバスイッチを単に反転させただけでは、価格が上昇したプロフェッショナルGPUから多くの利益を失う可能性があります。運があれば、Direct3D 12にはQBSが必要なため、NVIDIA(およびAMD)はOpenGLで公開します。 –

0

パッシブ3Dテレビを使用しているため、左右の視点が交互のスキャンラインで表示される可能性があります。

あなたの使命は、偶数番目の走査線に左目のビューを、奇数番目の走査線に右目のビューを(またはその逆に)レンダリングすることです。これは、OpenGLのステンシル操作、またはより現代的には、カスタムフラグメントシェーダを使用して実行できます。

このようにして、datenwolfによって記述されたクワッドバッファ付きビデオカード全体/ GL_BACK_LEFT/GL_BACK_RIGHTアプローチを避けることができます。そして、あなたはこのアプローチを避けたいと思います。クワッドバッファーステレオ3Dを実際の3Dテレビに向けるビデオドライバーは決して見つけられませんでした。

右と左目の視点を生成するためにシーン回転ではなく非対称錐台シフトを使用する必要があるというdatenwolfのアドバイスに同意します。

関連する問題