DirectX 10からDirectX 11への移行


10

DirectX 9を使用して妥当な数の小さな趣味のプロジェクトを実行しましたが、ここでDirectX 11に移行する時が来ました。

私は、DirectX 10を使用した3Dプログラミングに関するFrank Luna'aの本を持っていますが、DirectX 11には何もありません。それらはかなり似ていると思いますが、知っておく必要があるコードレベルで主な違いを列挙できるかどうか疑問に思っていました(または既存のソースをポイントします)。



DX11はDX9と下位互換性があるのに対し、DX10は本当に異なり、DX9と下位互換性がないと聞きました。
jokoon

DX10はDX9とはかなり異なりますが、DX11はDX10とかなり似ています。違いを知りたいだけです。奇妙なことに、DX11はDX9ハードウェアで動作しますが、DX10は動作しません;)
JohnB

回答:


15

SDKドキュメントには、11への移行に関するセクションがあり、9と10の両方からの移行について説明しています。D3D11機能のページもあります

ID3D11DeviceContext新しいマルチスレッド機能をサポートするために、10と11の間のAPI形状の最大の変更点の1つは、11が一連のメソッドをデバイス自体から(特に)デバイスコンテキストと呼ばれる新しいインターフェイスに移動することです。

ただし、変更を認識したら、簡単に適応できます。10で「someDevice->Draw()」と呼ばれていた場所では、代わりにデバイスの即時コンテキストを取得して「」を呼び出しますimmediateContext->Draw()

もう1つの大きな変更は、Effects APIがコアから外され、コンパイルしてリンクする必要がある独立したソースディストリビューションを作成することです。また、非推奨または削除された一部のD3DXインターフェイスおよび関数に気付く場合もあります。

それを超えて、いくつかの関数にいくつかの新しいパラメーターがあり、構造などにいくつかの余分なフィールドがあります。たとえば、11のバッファ記述オブジェクトには10はない追加StructureByteStrideフィールドがあり、デバイスの作成には機能レベル情報の受け渡しが含まれます。さらに、インターフェース名に明らかな前述の変更があります(10が11に置き換えられました)。


ありがとう、必要なものだけ。変更点の公式ガイドを探しましたが、どうにかそれを見つけることができませんでした。この回答と、良い回答に時間を割いてくれた他の人たちにも感謝します:)
JohnB

そんなことをすぐに忘れてしまうのはおかしい。特にエフェクトの編集は嫌いで、うまくいくまで数日かかりました。しかし、私はそれを私の回答に含めませんでした...
Notabene

私はこれを質問として投稿するつもりでしたが、確認が必要ですが、あなたの回答には私の懸念のほとんどがすでに含まれていることに気付きました。拾って、唯一のDX9で働いていますが、彼の知識をアップグレードしようとしている誰かのためにDX11帳のみDX11(当然)について私に教えだけでなく、必要に応じて、DX10で私の仕事への十分な知識を与えていないのだろうか?
David Gouveia

ええ、ほとんど。

1

主な違いは、DX11ではDXFontがなくなったことですが、それ以外はnotabeneが言ったとおりです。あなたはそのDX10本で大丈夫なはずです。DX11に移行するときにそれを使用しましたが、問題はありませんでした。あなたは時々msdnを見に行く必要がありますが、APIといくつかの場所のIIRCにはいくつかの小さな違いがあります。


1

変更する必要はありません。Directx11は新機能のみを追加します。ID3D10からID3D11などに番号を変更するだけです。


DirectX11は(誇大広告HWテスタレーションについて話していなければ)Direct Compute:GPGPUのAPIを追加し、グラフィックスパイプラインへの優れた接続を備えています(CUDAまたはopenCLについてこれを言うことはできません)。また、ピクセルシェーダーで複数のRWテクスチャとバッファーを使用できるため、多くの新しい可能性が開かれます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.