標準モデルは、OpenGL がプロフェッショナル アプリ (CAD) 用であり、Direct3D がゲーム用です。
openGL 3.0 の崩壊により、openGl はまだテクニカル 3D アプリ (cad/GIS) の自然な選択ですか?
Direct3D 用のシーングラフ ライブラリはありますか?
(もちろん Direct3D は Windows のみです。)
D3D を使用すると、Microsoft の「戦略税」を支払う必要があります。つまり、D3D は 2 つのマスターにサービスを提供します。1 つは、機能とパフォーマンスを提供することです。もう 1 つは、他の MS 製品および Windows プラットフォーム全般へのロックインを確保することです。これはあなたにいくつかの結果をもたらします:
D3D アプリは、Windows (Xbox を含む) 以外では実行できません。たぶん、今はそれが重要だとは思わないでしょう。しかし、将来、Mac、Linux、PS3、将来のコンソールなどで実行したい場合は、プラットフォームに依存しない選択を選択してよかったと思うかもしれません.
MS は、いくつかの任意の決定を下すことができます。D3D の次のバージョンは、新しいハードウェアが必要で、高価で、多くの人がアップグレードしたくない OS でのみ動作するのでしょうか? 彼らはあなたが同意しない別の将来の決定を下しますか?
歴史的に、OpenGL は新しいハードウェア機能の迅速な公開において D3D をリードしてきました。これは、ベンダーが独自の拡張機能を追加し、それらの拡張機能が最終的にメイン仕様に組み込まれるためのメカニズムが標準にあるためです。D3D は、MS が望んでいるものであり、ベンダーからの意見は確かですが、MS は拒否権を取得します。MS が新しいハードウェア機能を古い DX に公開せず、Vista でのみ新しい DX を利用できるようにすることを決定した、Vista のような状況に簡単に陥る可能性があります。これは、ゲーム開発者にとって非常に頭の痛い問題でした。
さて、これが「プロフェッショナル アプリ」 (CAD、アニメーション、科学的視覚化、GIS など) が OGL を好む理由の趣向です。多くのプラットフォームで実行したい。これは、非常に頻繁に 1 つのプラットフォーム上にのみ存在するゲームがリリースされるが、一般的に「維持」されないのとは対照的です (3 年後に別の OS の更新である 2.0 はおそらくないため、サポートする必要はありません)。古いハードウェアなど)。ゲームは最大のパフォーマンスを求めており、限られた数のプラットフォームで短期間のみ動作する必要があります。とにかく Windows をターゲットにする必要があり、D3D の方が少し速い場合は、それが正しい選択かもしれません。D3D の悪影響が CAD アプリの場合のように害を及ぼすことはないからです。
いつものように、これは状況によって異なります。
私の経験では、現在 (2008 年) の Windows での OpenGL ドライバーの品質は、Direct3D ドライバーの品質よりもはるかに劣っています。顧客に常に最新のドライバーを使用するよう要求したり、より優れた OpenGL ドライバーを備えたグラフィックス カードに変更するように顧客に要求したりできないような状況の場合、OpenGL はかなり悪い選択です。この場合、Windows では D3D レンダラーを、OS X/Linux では OpenGL レンダラーを使用します (これらのプラットフォームをサポートする必要がある場合)。
2 つのレンダラーを持つことはそれほど難しくありません。私の経験では、ドライバーのバグを回避する作業は、レンダリング コード パスを記述してサポートするよりもはるかに時間がかかります。
もちろん、D3D に必要な機能がまったくない (特定の) 状況もあります。または Windows XP でのジオメトリ シェーダーのサポート。
つまり、Windows でより優れたドライバーが必要な場合は、D3D を使用してください。ドライバーの品質をあまり気にしない場合、または OpenGL にはあるが D3D にはない機能が必要な場合は、OpenGL を使用してください。
おそらく、何も書き直すことなく DirectX と OpenGL を切り替えることができるOGREなどの抽象化レイヤーを試す必要がありますか? また、多くの機能を追加し、ゲーム指向ではありませんが、かなり一般的です。
これはあなたの質問に直接答えるものではありません (申し訳ありません)。
Direct3D 用のシーングラフ ライブラリはありますか?
Direct3D (旧称 Reality Lab) は、かつてはシーングラフ ライブラリでした :-)
Direct3D Retained Mode がもう出荷されていないのは残念です...
Direct3Dは、WindowsとXBoxでのみ使用できます。Windowsに加えてUnixまたはMacをターゲットにする場合は、OpenGLが適しています。
そのような答えではありませんが、AutoCAD の最新バージョンでは、「3dconfig」セットアップ オプションで OpenGL または Direct3D ドライバーを使用するかどうかを選択できることに注意してください。基本的に、AutoCAD は Windows 専用のアプリであるため、(最終的に) Direct3D をサポートすることは理にかなっています。詳細については、この AutoDeskのホワイトペーパーの 15 ページを参照してください。
誰もが信じたいと思う答えは「はい」ですが、本当の答えは、場合によって異なります。
世の中にあるすべてのハードウェアの約 50% は、OpenGL を適切なレベルまで実行できません。この例を見るには、OpenGL を使用する Google Sketchup の FAQ を参照してください。
SketchUp のパフォーマンスは、グラフィック カード ドライバに大きく依存しており、OpenGL 1.5 以上をサポートする能力があります。歴史的に、ATI Radeon カードと Intel ベースのカードで SketchUp を使用すると問題が発生することがあります。現時点では、SketchUp でこれらのグラフィック カードを使用することはお勧めしません。( Google Sketchup のハードウェアとソフトウェアの要件
したがって、CAD アプリを作成していて、顧客に「OpenGL 準拠のビデオ カードが必要です」と言って構わないのであれば、答えはイエスです。
代わりにエンドユーザー アプリ (Google Earth など) を作成している場合、悲しいことに、市場全体にリーチするには、アプリの D3D バージョンと GL バージョンの両方を作成する必要があります。