質問

私は3Dテレビを持っていて、少なくとも自分の創造のかなりの3D画像を表示しようとしないと、自分の責任を(オタクとして)shiります。

私は以前に非常に基本的な量のOpenGLプログラミングを行ったので、関連する概念を理解しています。単純な四面体またはキューブをレンダリングして、少し回転させることができると仮定します。 3Dテレビにこの画像を3Dで表示するにはどうすればよいですか?

私は3Dの仕組みの基本を理解していることに注意してください(2つの異なる角度から同じ画像を2回レンダリングし、1つは目に1つにレンダリングします)、私の質問は実際にこれを行うことのロジスティクスについてです(SDKが必要ですか?など)

  • 私が使用しているテレビは3Dを使用していますが、私の意図は、この質問は他の3Dテクノロジーにも関連しているということです(可能であれば)
  • 私のラップトップにはHDMI出力があります。これは私がテレビに接続するために使用するつもりです(これはVGA /コンポーネントのビデオケーブルを使用して違いをもたらしますか?)
  • 過去には、GLUT / OpenGLを実験しましたが、代替テクノロジーを使用してこれを行うことが簡単 /本当に可能であれば、それは問題ありません
役に立ちましたか?

解決

主な問題は、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は(少なくとも)慣習的な立体鏡検査ライブラリと、それを制御するためのいくつかの拡張機能を提供します。主な推論は、共有フラグメントが一度だけレンダリングされ、その後、アプリパイレートの視差が適用された状態で両眼に送られることです。しかし、立体視鏡検査¹での私の半プロフェッショナルな経験から、これらの種類の半/自動ステレオスピークはそれをカットしません。立体検査では、「生産」パイプライン全体を厳密に制御する必要があります。そうしないと、ねじ込まれています。象の夢で、私はレンダラーのコアコードを変更するまで行きました。

Nvidiaの3D Devisionの人々に、立体鏡検査プロセスを正確に制御する必要があるいくつかのケースシナリオを送信しましたが、消費者グレードのハードウェアにも光が表示され、クワッドバッファーステレオにアクセスできるようになることを願っています。

3Dがどのように機能するかの基本を理解していることに注意してください(2つの異なる角度から同じ画像を2回レンダリングします。

実際、あなたは2つの異なる角度からレンダリングするのではなく、シフトした視差とレンズのシフトを備えています。それ以外の場合は、水平にいくつかの台形/キーストーンの歪みが得られますが、これは見るのが非常に不快です(実際、私は今、立体的なレンダリングプロセスでは、光軸をわずかに分岐させるべきだと思います。実行 - そして「オーバー」はレンズシフトで補償しますが、私は現在、これについて小さな研究を準備していますが、それでも私のテストとコントロールグループを収集する必要があります)。


1:ヘック、私は男です 単独で立体視 象の夢、 レンダリングしました そしてそれを手に入れました 3D映画祭で賞.

他のヒント

受動的な3Dテレビを持っているため、左右の目のビューが代替スキャンラインでレンダリングされている可能性があります。 (または、チェッカーボードパターンの代替ピクセルで)

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

これにより、DatenWolfが記述したクワッドバッファービデオカード/gl_back_left/gl_back_rightアプローチ全体を回避できます。そして、あなたはそのアプローチを避けたいと思います。なぜなら、私はクアッドバッファーステレオ3Dを実際の3Dテレビに向けるビデオドライバーに遭遇したことがないからです。

DatenWolfのアドバイスには、シーンの回転ではなく非対称のフラストムシフトを使用して、右目と左の視点を生成する必要があることに同意します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top