2011-10-07 12 views
5

DirectXを使用してOpenGLレンダリングウィンドウにレンダリングできるようにしたい。これは、後の機能がDirectXでのみサポートされているためです。DirectXとOpenGLを混ぜる

私はこれを数年前に行うことができると聞きましたが、私はまだそれが可能であることを望んでいます。

私は、DirectXをVRAMの正しい部分と正しい深度バッファに向けることが必要だと思います。

チュートリアルや簡単な説明も非常に便利です。

+0

なぜOpenGLに出力する必要がありますか? DirectXが利用可能な場合、なぜDXレンダラーに固執するだけではないのですか? – glenatron

+0

主に、Windowsの子ウィンドウでOpenGLレンダリングサーフェスを正しくレンダリングするために、OpenGLコマンドを使用する必要があるためです。 – ceorron

+8

"これは、後の機能がDirect Xでのみサポートされているためです。そして、その特徴は何ですか?私は、OpenGLの下では利用できないD3Dの機能はごくわずかです。 –

答えて

2

OpenGLとDirect3Dを混在させることはできません.AFAIKは使用しませんでした。 OpenGLが提供していない、Direct3Dのどの機能が必要ですか?

3

NVIDIAにはNV_DX_interop extensionがあります。Direct3D 9バッファ/テクスチャ/サーフェスをOpenGLバッファ/テクスチャ/レンダリングバッファとして直接使用することができます(したがって、別の方法です)。しかし、私はこれに関する経験はなく、広くサポートされているのか実際にはうまくいくのか分かりません。

Direct3Dでしか利用できないと思われる機能の中で、より多くのインタラクションが必要になります。多分、OpenGLを使ってそれを達成する方法を示すことができます.Direct3DではなくOpenGLで利用できる多くの機能があります(存在する場合)。あなたがATIカードを持っていれば、利用可能で実際に正しく動作することが時には2つの別個のものになることがあります。

+0

interopでは、両方のAPIを_same_ウィンドウにレンダリングすることはできません。異なるウィンドウやオフスクリーンのレンダリングコンテキストがある場合は、これを使用できます。しかし、同じ面にではありません。 –

+0

OpenGLを使用して1つのオフスクリーンサーフェイスでレンダリングしたり、別のDirectXでレンダリングしたりして、テクスチャをコピーして組み合わせることができます。 –

0

できます。少なくともnVIDIAのために! NV_DX_interopを確認してください。しかし、OpenGLはDirectXよりもRAW/Lowレベルであるため、DirectXのあらゆる機能がOpenGLでサポートされています!実装されている方法とは異なる場合があります。再び、あなたが望むDirectXの機能を教えてください。私はあなたにそれを再実装するヒントを教えてくれます。

0

OpenGLとDirect3Dの違いの1つの具体例として、自分自身を研究しているものは、DirectShow(Direct3Dのサブセット)に、Panasonic DVCPRO-HDベースのカメラ用のビデオキャプチャフィルタがあることです。したがって、そのAPIを介して収集されたライブストリームは、OpenGLライブラリへの入力として使用したいと考えています。そのようなライブラリの1つは、OpenGLベースのOpenFrameWorksです。私はこの効率化がいかに効率的であるかを見たいと思っています。既存のOpenFrameWorks Video APIでは、若干古いAPIと廃止予定のDirectShow APIが使用されており、DirectShowからOpenFrameWorksにピクセルを取得するための強力な戦略が採用されています。

関連する問題