OpenGLとDirect3Dの違いは何ですか?同じもの(JavaやMirosoftのCLR [.NET]など)を実現するための実装は本当に異なっていますか? Googleはこの場合、あなたの友人であるOpenGLとDirect3D
答えて
非常に異なるグラフィックスAPIです。しかし、彼らがほとんど同じことを成し遂げていると言うのは公正です。 DirectXはWindows(またはXBOX用のゲーム)の下でゲームを開発する場合はおそらくAPIであり、クロスプラットフォームサポートが必要な場合はOpenGLが選択肢です。 Mac OSは、たとえばiPhoneのようにGLを使用しており、多くのWindowsゲームでOpenGLもサポートされています。
OpenGLは長年に渡って開発され、委員会によって開発されたため、多くの手荷物が付属しています。APIには、今日はあまり関係のない古いオプションがいくつかあります。これがOpenGL ESの理由の1つです。それはすべての迷惑をカットし、より簡単なターゲットプラットフォームになります。
一方、DirectXはMicrosoftによって制御されているため、より「モダンな」感覚(COMコンポーネントに基づいており、オブジェクト指向性が高い)になっています。 MSはしばしば、新しいハードウェアと一致するようにAPIを更新する。
時々あなたは選択の贅沢を持っていません(例えば、iphoneはDXを実行できません)。しかし、しばしばそれは単に個人的な好み/経験に帰着する。長年のグラフィックスプログラマーであれば、両方にかなり慣れ親しむ傾向があります。
詳細な説明ありがとうございます。それは私に2つの非常に明確な画像を与えます。 –
... 2つのライブラリcontrastring良いWikipediaの記事があります:Direct3Dのが出てきた前にメモリが提供している場合
Comparison of OpenGL and Direct3D
は、OpenGLはオープンな実装でした。 Direct3DはOpenGLをベースにしていましたが、すぐに分岐して独自のライブラリになりました。
UPDATE
私の記憶が撮影されているように見えます...
のDirect3DはindependtlyのOpenGLの開発されました。
Direct3DはOGLに基づいていませんでした(ただし、両方とも同じ基本モデルをレンダリングに使用しました)。5.0より前のD3Dの歴史は間違いなく奇妙です(http:// en .wikipedia.org/wiki/Direct3D#History)を参照してください。 – Michael
Googleの良い点。 –
Heh - Direct3Dになる前にDirect3Dで作業しました;-) OpenGLに基づいているわけではありません... –
Direct3DとOpenGLは、同じことを達成するために使用されるAPIとは異なります。
D3DとGLの主な違いは、D3Dがオブジェクト指向であり、GLがそうでないことです。 D3D9とGLES2は基本的に同じ機能を持っています。実際、OpenGLの使用を計画していて、GL3またはGL4の機能を必要としない場合は、GLES2 APIのすべてのコードをベースにする必要があります(GLES2のすべての機能はGL2にありますが、逆もありません)。
可能であれば、マルチスレッドとドライバのサポートが不安定であるため、可能であればWindows上で常にGL上のD3Dを使用する必要があります。例えば、ネットブックはShaderModel 2でD3DのHLSLをサポートしていますが、GLSLと同等のものをサポートしていないため、GL用の固定パイプラインしかサポートしていません。
- 1. direct3dアルファベットとピクセルシェーダ
- 2. のDirect3D 9でのDirect3D 9
- 3. WPFアーキテクチャとDirect3Dグラフィックアクセラレータ
- 4. Direct3DまたはOpenGLアプリケーション内でステージ3Dを使用する
- 5. Direct3D 10とシェーダ管理
- 6. のDirect3Dアプリケーション
- 7. Direct3dのベクトルテキストレンダリングシステム
- 8. Direct3D C++テクスチャマッピング
- 9. Direct3D&iPhone Accelerometer Matrix
- 10. OpenGL ESまたはDirect3Dの表面は正確には何ですか?
- 11. いくつかのDirect3DデバイスとIntel GMA945
- 12. 2Dスプライト上のDirect3D 3Dグラフィック
- 13. Direct3D 9のウィンドウモードに移動
- 14. バッファリングdirect3d描画操作
- 15. OpenGLフォグとOpenGL ESフォグ
- 16. OpenGL ESとOpenGL互換シェーダ
- 17. 4隅をOpenGLからDirect3Dスプライトへの変換のためのマトリックスに変換する
- 18. 3D&サードパーティのプラグインを使用しているアプリケーション - 前方互換のOpenGLまたはDirect3D?
- 19. Direct3D ID3DXFont-> Windows XPのDrawTextクラッシュ
- 20. DXUTSetWindowをMFC Direct3Dアプリケーションで使用する
- 21. windows/direct3dのttfファイルのフォントを使用
- 22. Direct3Dでライトを固定する方法
- 23. Direct3DでのPorter-Duff規則の実装
- 24. Direct3Dを独立して使用するアプリケーションとDLL
- 25. OpenGL ES 2.0とOpenGL 4の違い
- 26. レイキャスティングボクセルとOpenGL
- 27. glPushMatrixとOpenGL ES
- 28. MKOverlayViewとOpenGL
- 29. フリーグルート、OpenGLとメモリ
- 30. OpenGLとスレッド
DirectXは単なる3Dグラフィックスではありませんが、Direct3DとOpenGLの違いは何ですか? –
あなたの権利、私はそれを修正しました。 http://en.wikipedia.org/wiki/DirectX –