Direct3D
Direct3Dは,3Dグラフィックスを miêu họa するためのAPIである.マイクロソフトが đề cung するマルチメディアAPIセットDirectXの nhất bộ であり, dạng 々なWindows( chủ にWindows 95Dĩ thượng ) で động tác し, さらに, gia đình dụng ゲーム cơ であるXboxシリーズ (Sơ đại Xbox,Xbox 360,Xbox One,Xbox Series X/S) のグラフィックスAPIのベースでもある. Lược xưng としてD3Dがよく sử われる.
Khái yếu
[Biên tập]Direct3Dはゲームのようなパフォーマンスが trọng yếu なアプリケーションで lợi dụng される. そのためもあり, ウィンドウ biểu kỳ だけでなく toàn họa diện ( フルスクリーン ) biểu kỳ での thật hành も khả năng となっている.グラフィックスボードやCPUNội tàngGPUなど, Direct3Dに đối ứng したグラフィックスデバイスが đáp tái されているシステムであれば,ハードウェアアクセラレーションを lợi dụng し, 3Dのレンダリングパイプラインの toàn thể または nhất bộ がハードウェアによって cao tốc hóa される. Direct3DはZバッファ,ステンシルバッファ, lí diện カリング, thị trùy đài (frustum) カリング,アンチエイリアス,アルファチャンネル,アルファブレンディング,ミップマップ,パースペクティブ bổ chínhテクスチャマッピング,プログラマブルシェーダー,テッセレーションといった3Dグラフィックスハードウェアの tiên tiến đích なグラフィックス cơ năng を lợi dụng できる. Tha のDirectXのテクノロジとの thống hợp により, インタラクティブなメディアタイトルで2Dと3Dを dụng いて, ビデオマッピング, 2Dのオーバーレイプレーンへのハードウェア3Dレンダリング,スプライトといったような cơ năng をDirect3Dは thật hành できる.
Direct3Dは3DAPIである. つまり, 3Dレンダリングのための dạng 々なコマンドが hàm まれるということであるが, Direct3Dのバージョン8より, cổ いDirectDrawのフレームワークと trí き hoán えられ, また2Dグラフィックスの cơ năng も dẫn き継いでいる[1][2].マイクロソフトは3Dグラフィックスカードで lợi dụng できる tối tân のテクノロジをサポートすべくDirect3Dを継続して canh tân し続けている. Direct3Dは hoàn toàn な đỉnh điểm 処 lý のソフトウェアエミュレーションを đề cung するが, ハードウェアがサポートしていないピクセル処 lý のソフトウェアエミュレーションはない. Lệ えば, もしDirect3Dを sử ってプログラムされたソフトウェアがピクセルシェーダーを tất yếu として, そしてユーザーのコンピュータのビデオカードがその cơ năng をサポートしないなら, Direct3Dはそれをエミュレートしない. Đại わりに, APIは nhất bàn đích なグラフィックスカードをCPUで hoàn toàn エミュレートするリファレンスラスタライザ ( またはREFデバイス ) を định nghĩa する. ただし,ピクセルシェーダーをCPUでエミュレーションするのはどんなアプリケーションでも sử dụng に nại えないくらい trì く, chế phẩm bản アプリケーションでの sử dụng は tưởng định されていない[3].Nhất phương, Direct3D 10.1 API dĩ hàng は bỉ giác đích cao tốc なソフトウェアデバイスとしてWARPが thật trang されており, グラフィックスハードウェアがDirect3Dの cơ năng レベルを thập phân にサポートしない tràng hợp でもカジュアルな dụng đồ であれば thật dụng に nại えうるDirect3Dアプリケーションを tác thành ・ thật hành できる[4].
Direct3D 11.xまでの chủ な cạnh hợp tương thủ はOpenGLである. 2つのAPIには khảo え phương の hợp わない sổ đa くの cơ năng と vấn đề がある.en:Comparison of Direct3D and OpenGLを tham chiếu のこと. OpenGL 4 dĩ hàng はDirect3Dからの di thực を dung dịch にするため, Direct State AccessなどのDirect3Dの thiết kế tư tưởng に cận い cơ năng も thủ り nhập れるようになっている. Direct3D 12はハードウェア trừu tượng hóa tằng を bạc くしたローレベルAPIとして đại phúc に tái thiết kế され, cạnh hợp はMetalやVulkanである.
アーキテクチャ
[Biên tập]![]() | この tiết は canh tân が tất yếu とされています. この tiết には cổ い tình báo が yết tái されています. Biên tập の tế に tân しい tình báo を ký sự にPhản ánhさせてください. Phản ánh hậu, このタグは trừ khứ してください.(2015 niên 6 nguyệt) |
![](https://upload.wikimedia.org/wikipedia/commons/thumb/8/80/D3D_Abstract_Layer_%28en%29.png/185px-D3D_Abstract_Layer_%28en%29.png)
Direct3DはDirectX APIのサブシステムコンポーネントである. グラフィックスアプリケーションとグラフィックスハードウェアデバイスの gian の thông tín を trừu tượng hóa することがDirect3Dの mục đích である. これはGDIと bỉ giác して bạc いTrừu tượng hóa レイヤーとなっている ( đồ tham chiếu ).COMベースのアーキテクチャによりDirect3Dはディスプレイドライバと trực tiếp tiếp 続しており, GDIと bỉ べてレンダリングのパフォーマンスで ưu れた kết quả を đắc られるところがGDIとDirect3Dの tối も đại きな vi いである. なお, đồ はWindows XP/Direct3D 9までの cổ いモデル (XPDM) であり,Windows Vista/Direct3D 9Ex dĩ hàng ではさらにDirectX/Direct3DがOSのグラフィックス căn càn cơ năng へと thăng cách され, GDIはすでにDirectX/Direct3Dと độc lập ・ đồng liệt ではなくなり, DirectXランタイム (DXGIと hô ばれるDirect3Dベースのグラフィックス cơ bàn ) thượng にて động tác することになる (WDDM)[5].
Direct3Dは "イミディエイトモード" ( IM: Trực tiếp モード ) のグラフィックスAPIである. これは các ビデオカードの3D cơ năng (Bình hành di động,クリッピング, quang nguyên, マテリアル, テクスチャ,Thâm độ バッファなど ) に đê レベルなインターフェイスを đề cung する. またDirect3D 7までは "リテインドモード" ( RM: Bảo trì モード ) という cao レベルのコンポーネントもあった[6]が, Direct3D 8 dĩ hàng では廃 chỉ されている.
Direct3Dのイミディエイトモードは “デバイス”, “リソース”, “スワップチェーン” の3つの chủ yếu な trừu tượng hóa を đề cung する ( đồ tham chiếu ). “デバイス” は miêu họa に tất yếu な処 lý を hành うソフトウェア・ハードウェアを chỉ す khái niệm であり, アプリケーションは “デバイスタイプ”[7][8]を chỉ định することにより, デバイスにアクセスすることができる.
- HAL(hardware abstraction layer) デバイス[9]
- ユーザーのコンピュータに đáp tái されたハードウェアアクセラレータを sử dụng して処 lý を hành う. ハードウェアアクセラレーションをサポートする tràng hợp, Direct3Dのコードはハードウェアの tốc độ で động tác khả năng.
![](https://upload.wikimedia.org/wikipedia/commons/thumb/c/c3/D3D_Device_%28en%29.png/190px-D3D_Device_%28en%29.png)
- リファレンスデバイス
- Direct3Dのほとんどの cơ năng を trung thật に thật trang しているが, パフォーマンスが phi thường に đê いソフトウェアレンダラーを tuyển 択する. このデバイスタイプを lợi dụng するためにはDirect3DのSDKを sự tiền にインストールする tất yếu がある.
- ヌルリファレンスデバイス
- これは hà もせず chân っ ám な họa diện を biểu kỳ する. このデバイスはSDKがインストールされていないのにリファレンスデバイスが yếu cầu された tràng hợp に sử dụng される.
- プラグ khả năng ソフトウェアデバイス
- ソフトウェアラスタライゼーションを thật hành するために lợi dụng される. ソフトウェアレンダラーはDirect3Dには nội tàng されていないため, アプリケーションはこれを tuyển 択するには độc tự のソフトウェアレンダラーをDirect3Dに đăng lục する tất yếu がある[10].マイクロソフトが công thức にソフトウェアレンダラーを phối bố している[11].
Các デバイスは tối đê 1つの “スワップチェーン” を hàm む. スワップチェーンは1つ dĩ thượng のバックバッファサーフェス ( ピクセルデータの trường phương hình の tập hợp と, そのピクセルの sắc, thâm さ, ステンシル, アルファ, テクスチャなどの chúc tính ) で cấu thành される. Direct3D miêu họa コマンドによってレンダリングはバックバッファのどこかに hành なわれ, tối hậu にPresent処 lý によってバックバッファからフロントバッファにピクセルデータが転 tống されることで họa diện biểu kỳ が hoàn liễu する.
さらにデバイスもまた “リソース” のコレクションを hàm む. リソースはレンダリング trung に sử dụng される đặc định のデータである. Các リソースは4つの chúc tính を trì つ.
- Type
- サーフェス, ボリューム, テクスチャ, キューブテクスチャ, ボリュームテクスチャ, サーフェステクスチャ, インデックスバッファ, đỉnh điểm バッファなど, リソースの chủng loại を định nghĩa する.
- Pool[12][13][14]
- Thật hành thời にリソースがどのように quản lý され, どこに bảo tồn されるのかを định nghĩa する.Defaultプールはリソースがデバイスメモリ nội にのみ tồn tại することを ý vị している.Managedプールはリソースがシステムメモリに xác bảo され tất yếu thời にデバイスへ tống られることを ý vị している.System Memoryプールはリソースがシステムメモリ nội にのみ tồn tại することを ý vị している.Scratchプールはシステムメモリプールと đồng nhất であるが, この tràng hợp はリソースがハードウェアの chế ước に phược られない.
- Format
- リソースのメモリ nội でのレイアウト, chủ にピクセルデータのレイアウトを định nghĩa する. Lệ えば
D3DFMT_R8G8B8
フォーマットは24ビットのSắc thâm độを ý vị する ( xích 8bit, lục 8bit, thanh 8bit ). - Usage
- フラグビットの tập hợp によりアプリケーションがリソースをどのように sử うのかを định nghĩa する. これらのフラグはリソースを động đích にアクセスするのか tĩnh đích にアクセスするのかを tri るために lợi dụng される. Tĩnh đích リソースの trị はロード hậu に変 canh できないのに đối し, động đích リソースの trị は sào り phản し変 canh することができる.
パイプライン
[Biên tập]![](https://upload.wikimedia.org/wikipedia/commons/thumb/d/d2/D3D_Pipeline.svg/185px-D3D_Pipeline.svg.png)
Direct3D 10のパイプラインは hạ ký のステージで cấu thành される[15][16].
- インプット アセンブラー:パイプラインにデータを đề cung する.
- バーテックスシェーダー:Tọa tiêu 変 hoán やスキニングのためのベクトル・ hành liệt diễn toán, đỉnh điểm ライティングといった単 nhất の đỉnh điểm 処 lý を thật hành する. Đỉnh điểm シェーダーとも hô ばれる.
- ジオメトリシェーダー:Đỉnh điểm シェーダーの xuất lực である, プリミティブ toàn thể ( tam giác hình, trực tuyến または đỉnh điểm ) を処 lý する. それらのエッジ lân tiếp プリミティブを処 lý することもある. プリミティブが dữ えられ, このステージでこれを thủ り trừ いたり tân しいプリミティブを sinh thành したりする.
- ストリーム アウトプット:Tiền のステージの kết quả をメモリに bảo tồn する. データをリサイクルしてパイプラインに lệ すことは hữu dụng である.
- ラスタライザー:プリミティブをピクセルにラスタライズし, kiến えないところはクリッピングする.
- ピクセルシェーダー:ラスタライザーの xuất lực, すなわち các ピクセルの sắc などを chế ngự ・ quyết định する. ライティングをこのピクセルシェーダーで hành なうこともある (en:Per-pixel lighting,ピクセル単 vị ライティング ).
- アウトプット マージャー:Tối chung kết quả を sinh thành するために dạng 々な hình thức の xuất lực データ ( ピクセルシェーダーの xuất lực trị, thâm độ およびステンシル tình báo ) を hợp thành する.
Toàn てのパイプラインステージは tự do に tổ み hợp わせることができる.
Direct3D 9ではオプションとして cố định cơ năng テッセレーションステージ ( cao thứ プリミティブすなわちパッチ ) をサポートしていた[17][18][19]が, Direct3D 10では廃 chỉ された. Direct3D 11 dĩ hàng では cải めてハルシェーダー, cố định cơ năng テッセレータ, ドメインシェーダーとしてテッセレーションステージが tiêu chuẩn hóa された[20].
また, Direct3D 11 dĩ hàng では, グラフィックスパイプラインとは biệt に phiếm dụng kế toán (GPGPU) dụng のコンピュートシェーダーを thật hành できるコンピュートパイプラインをサポートする.
コード ký thuật lệ
[Biên tập]Direct3DはCOMで thật trang されており, オブジェクト chỉ hướng インターフェイスを lợi dụng してアプリケーションコードを thư くことになる.
- Direct3D 7 ( cố định cơ năng ) で tam giác hình を miêu họa する lệ.
// 3 đỉnh điểm のポリゴンを biểu す đỉnh điểm phối liệt を định nghĩa.
// X, Y, Z, Color, Specular, Tu, Tv の thuận.
// https://learn.microsoft.com/en-us/previous-versions/ms896912(v=msdn.10)
D3DLVERTEXv[3];
v[0]=D3DLVERTEX(D3DVECTOR(0.0f,+1.0f,0.5f),0x00FF0000,0,0,0);
v[1]=D3DLVERTEX(D3DVECTOR(+1.0f,0.0f,0.5f),0x0000FF00,0,0,0);
v[2]=D3DLVERTEX(D3DVECTOR(-1.0f,0.0f,0.5f),0x000000FF,0,0,0);
// tam giác hình を miêu họa するメソッドの hô び xuất し.
// pD3DDevice は IDirect3DDevice7 インターフェイスへのポインタ.
pD3DDevice->DrawPrimitive(D3DPT_TRIANGLELIST,D3DFVF_LVERTEX,v,3,0);
- Direct3D 9 ( cố định cơ năng ) で tam giác hình を miêu họa する lệ.
// ひとつのカスタム đỉnh điểm tình báo を biểu す cấu tạo thể.
structMyLVertex{
D3DXVECTOR3Position;// float x3
D3DCOLORColor;// unsigned long x1, B8G8R8A8
};
// 3 đỉnh điểm のポリゴンを biểu す đỉnh điểm phối liệt を định nghĩa.
constMyLVertexvertexArray[]={
{D3DXVECTOR3(0.0f,+1.0f,0.5f),D3DCOLOR_ARGB(255,255,0,0)},
{D3DXVECTOR3(+1.0f,0.0f,0.5f),D3DCOLOR_ARGB(255,0,255,0)},
{D3DXVECTOR3(-1.0f,0.0f,0.5f),D3DCOLOR_ARGB(255,0,0,255)},
};
// tam giác hình を miêu họa するメソッドの hô び xuất し.
// pD3DDevice は IDirect3DDevice9 インターフェイスへのポインタ.
pD3DDevice->SetRenderState(D3DRS_LIGHTING,FALSE);
pD3DDevice->SetFVF(D3DFVF_XYZ|D3DFVF_DIFFUSE);// FVF = Flexible Vertex Format の thiết định.
pD3DDevice->DrawPrimitiveUP(D3DPT_TRIANGLELIST,1,vertexArray,sizeof(MyLVertex));
Direct3D 7では định nghĩa tế み đỉnh điểm フォーマットとしていくつかの tổ み込みの cấu tạo thể hình が chuẩn bị されていたが[21][22][Chú 釈 1],Direct3D 9ではユーザープログラマーによる định nghĩa が tất tu となる.
Cố định cơ năng グラフィックスでは tổ み込みのマテリアル đặc tính に ứng じた âm ảnh kế toán[23][24]やスムージング (グーローシェーディング[25]), ライトの giảm suy[26]あるいはフォグ[27]のような đại khí hiệu quả (atmospheric effects) といった, いくつかのエフェクトをサポートする.
プログラマブルシェーダー
[Biên tập]Direct3D 9のプログラマブルシェーダーを lợi dụng する tràng hợp は,HLSLNgôn ngữ đẳng を sử いシェーダープログラムを biệt đồ tác thành して, あらかじめデバイスにセットしてから miêu họa メソッドを hô び xuất す tất yếu がある. ただし, Direct3D 9の tràng hợp は, プログラマブル đỉnh điểm シェーダーと cố định cơ năng ピクセルシェーダーを tổ み hợp わせることも khả năng である.
また, Direct3D 10およびDirect3D 11においてはFVF, ユーザーポインタ đỉnh điểm phối liệt (UP) および cố định cơ năng シェーダーが tồn tại しないので, tất ず đỉnh điểm レイアウト, đỉnh điểm バッファおよびシェーダープログラムを tác thành する tất yếu がある ( シーンを miêu họa するためには thiếu なくとも đỉnh điểm シェーダーとピクセルシェーダーの2つを tác thành する tất yếu があるが, thâm độ ステンシルのみのレンダリングであればラスタライザーを vô hiệu にして đỉnh điểm シェーダーだけでレンダリングすることもできる[28]). テッセレーションシェーダー ( ハルシェーダー, ドメインシェーダー ) およびジオメトリシェーダーに quan しては tất tu ではなくオプションであり, またコンピュートシェーダーに quan しては miêu họa パイプラインと độc lập している.
Direct3D 12ではオーバーヘッド đê giảm のため, シェーダープログラムオブジェクトの cá biệt thiết định は廃 chỉ され, パイプラインステートオブジェクト (PSO) としてグラフィックスパイプラインあるいはコンピュートパイプラインごとにすべてのシェーダーステージを các chủng ステートとともにまとめて sự tiền tác thành してから thiết định する phương thức に変 canh された[29][30].もちろん cố định cơ năng シェーダーは tồn tại しない.
ディスプレイモード
[Biên tập]Direct3Dは2つの dị なるディスプレイモードがある.
- エクスクルーシブモード ( bài tha モード )
- Direct3Dとディスプレイドライバを trực tiếp tiếp 続するため, Direct3Dデバイスは toàn họa diện biểu kỳ が khả năng である. アプリケーションがエクスクルーシブモードである gian はディスプレイデバイスの sử dụng yếu cầu は thất bại する.
- ウィンドウモード
- ウィンドウ nội の lĩnh vực に kết quả が biểu kỳ される. Direct3Dは họa diện を hoàn thành させるためにGDIと thông tín する tất yếu がある.
ウィンドウモードはエクスクルーシブモードよりも nhược càn trì いが, họa diện を chiêm hữu しないためその tha のGUIと cộng tồn させることが khả năng なほか, ngoại bộ GUIを tất yếu としない tràng hợp においてもデバッグに dịch lập つ.
変 thiên
[Biên tập]- Direct3D (DirectX 3 - DirectX 5)
- レンダリングパイプラインアーキテクチャを thải dụng し, ハードウェア trừu tượng hóa レイヤー (HAL) とハードウェアエミュレーションレイヤー (HEL) の nhị chủng loại のレイヤーを trì ち, ハードウェア chi viện が đắc られない tràng hợp もソフトウェアのエミュレーションによって cơ năng するよう thiết kế された. この đương thời のハードウェアはレンダリングパイプラインのうち, ラスタライズのみがハードウェア hóa されていた.
- Direct3D 6.0
- ドリームキャストにも thải dụng されたバージョンで, hoàn cảnh バンプマップやトライリニアフィルタリング, ミップマップ, テクスチャ áp súc などをサポートしていた.
- Direct3D 7.0
- ハードウェアによる tọa tiêu 変 hoán とライティングを hành うハードウェアT&L, nhất mai のポリゴンに phục sổ のテクスチャを đồng thời に thiếp るマルチテクスチャやキューブマップをサポートした.
- Direct3D 8.0
- Xboxなどに thải dụng されたバージョンで, nguyên thủy đích なプログラマブルシェーダー ( アセンブラ ) を sơ めてサポートした. その tha にも, ボリュームテクスチャ, マルチサンプルレンダリングをサポート. リファレンスラスタライザ dĩ ngoại のソフトウェアレンダラを廃 chỉ.
- Direct3D 8.1
- Windows XPに tiêu chuẩn đáp tái されている. プログラマブルシェーダー1.1, 1.2, 1.3, および1.4をサポートする.
- Direct3D 9.0
- Thật sổ (Phù động tiểu sổ điểm sổ) テクスチャ, およびプログラマブルシェーダー2.0をサポートした. また, プログラマブルシェーダーを ký thuật するための cao cấp ngôn ngữ “HLSL”に đối ứng した.
- Direct3D 9.0c
- プログラマブルシェーダー3.0をサポートした. プログラマブルシェーダー3.0は, đỉnh điểm シェーダーからテクスチャマップにアクセス (VTF) することができるため, ディスプレースメントマッピングなどが thật hiện できる.Xbox 360GPUの cơ năng はほぼこのバージョンに chuẩn ずる.
- Direct3D 9.0Ex
- Windows VistaDĩ hàng に đáp tái された,Windows Display Driver Model(WDDM) に đối ứng するように変 canh が thi されたバージョン. Vistaのデスクトップ miêu họa (Windows Aero) にはこのD3D 9Exが sử dụng されている.
- Direct3D 10.0
- Cộng thông tằng であるDirectX グラフィックス インフラストラクチャー (DXGI) を đạo nhập したバージョン. Windows Vista dĩ hàng で động tác する. ジオメトリシェーダーなどプログラマブルシェーダー4.0をサポートする nhất phương, cố định cơ năng シェーダーおよびCaps (Capabilities) ビットなどを廃 chỉ し, またDirect3D 10 phi đối ứng のハードウェア thượng では động tác しない.
- Windows Vista ( コードネームLonghorn ) の khai phát trung は, “Windows Graphics Foundation” (WGF) という tân しいグラフィックスサブシステムのサポートレベルとして, Direct3D 9を “WGF 1.0”, Direct3D 10を “WGF 2.0” と hô んで khu biệt していた[31]が, tối chung đích にWGFはキャンセルされ, これらの khu phân danh xưng が sử われることはなくなった.
- Direct3D 10.1
- Direct3D 10.0のマイナーチェンジ. Windows Vista SP1 dĩ hàng で động tác する. CapsビットがFeature Levelの hình で hạn định đích に phục hoạt し, ハードウェアの đối ứng độ に ứng じたFeature Levelで động tác させることができる. プログラマブルシェーダー4.1をサポートする. DXGI 1.1に đối ứng したWindows 7のデスクトップ miêu họa にはこのD3D 10.1が sử dụng されている[32].なお, Windows 7に tiêu chuẩn đáp tái されている cao tốc 2D miêu họa APIであるDirect2Dは, このD3D 10.1 thượng に cấu trúc された cao レベルラッパーライブラリである.
- Direct3D 11.0
- Windows Vista SP2 Platform UpdateおよびWindows 7 dĩ hàng で động tác する. DXGIのバージョンは1.1となる[33].プログラマブルシェーダー5.0をサポートし, đỉnh điểm シェーダーとジオメトリシェーダーの gian に, ハードウェアテッセレーション(サブディビジョンサーフェイス) を thật hiện するステージとして, tân たにハルシェーダー・テッセレータ・ドメインシェーダーが truy gia されている. また,GPGPUDụng đồ のシェーダーステージとして, コンピュートシェーダー (DirectCompute) が truy gia されている. ハルシェーダーおよびドメインシェーダーはDirect3D 11 đối ứng のGPUでなければ sử dụng できないが, コンピュートシェーダーは chế hạn phó きでDirect3D 10.x thế đại のGPUでも thật hành khả năng である[34].
- Direct3D 11.1
- Direct3D 11.0のマイナーチェンジ.Windows 8に tiêu chuẩn đáp tái されている. DXGIのバージョンは1.2となる[1].なお, Windows 8に tiêu chuẩn đáp tái される, tân しいバージョンのDirect2D (D2D 1.1) は, このD3D 11.1 thượng に cấu trúc された cao レベルラッパーライブラリである[2].シェーダーモデルのバージョンは11.0と đồng じく5.0となる[3].Direct3D 11.1は cơ năng truy gia よりも tính năng cường hóa に trọng điểm が trí かれたマイナーバージョンアップとなっている. また, Direct3D 11はWindows 7リリース hậu にWindows Vistaに đối して hoàn toàn な hình でバックポートされたが, Direct3D 11.1のWindows 7へのバックポートは hoàn toàn ではなく, hạn định đích な hình にとどまっている[35].
- Direct3D 11.2
- Direct3D 11.1のマイナーチェンジ.Windows 8.1およびXbox Oneに tiêu chuẩn đáp tái される[4].DXGIのバージョンは1.3となる[5].Windows 8.1に tiêu chuẩn đáp tái される, tân しいバージョンのDirect2D (D2D 1.2) は, このD3D 11.2 thượng に cấu trúc された cao レベルラッパーライブラリである[6].Direct3D 11.2はタイルリソース ( いわゆるメガテクスチャ ) などをサポートする[7].なお, Direct3D 11.2はWindows 8およびそれ dĩ tiền のOSにはバックポートされていない.
- Direct3D 11.3
- Direct3D 12に đáp tái される tân cơ năng は, đồng thời kỳ に đề cung される従 lai からの cao レベルAPIのマイナーチェンジとなるDirect3D 11.3にも đáp tái される[36][37][38].DXGIのバージョンは1.4となる[39].
- Direct3D 11.4
- Windows 10 November 2015 Update (version 1511, build 10586) にてDXGI 1.5とともに đạo nhập された[40].
- Direct3D 12
- Cao レベルだがオーバーヘッドの đại きかったDirect3D 11までと bỉ べて, Direct3D 12はよりハードウェアに cận いローレベルな chế ngự を khả năng とするAPIとなった[41].Windows 10のほか, Xbox OneおよびWindows Phoneにも đối ứng dư định[42].
- Windows 10 Anniversary Update (version 1607, build 14393) にてWDDM 2.1が đạo nhập され, Direct3D 12も canh tân された[43].UWPアプリケーションにおける khả 変リフレッシュレートのサポートも truy gia されている[44].
- Windows 10 October 2018 Update (version 1809, build 17763) にて,DirectX Raytracing(DXR) に đối ứng した.
- 2019 niên 3 nguyệt, nhất bộ のゲームに quan して, Windows 7 thượng でDirectX 12 (Direct3D 12) を động tác させるためのユーザーモードのランタイムがマイクロソフトから đề cung されることになった[45].これにより, Direct3D 12にカーネルレベルで hoàn toàn đối ứng しているWindows 10ほどではないが, Windows 7 thượng でもDirect3D 12のマルチスレッドレンダリングなどによるフレームレート hướng thượng の ân huệ を đắc ることができると thuyết minh されている. 2019 niên 8 nguyệt にはD3D12onWin7のNuGetパッケージが nhất bàn công khai された[46].
オープンソース thật trang
[Biên tập]Wineでは,Unix hệOSでOpenGLをバックエンドに dụng いてDirect3D APIを thật trang している. オープンソースのグラフィックスライブラリMesaでは, OpenGLを kinh do しないDirect3Dのネイティブ thật trang ( Gallium NineによるDirect3D 9のネイティブ thật trang,Gallium3DによるDirect3D 10/11のネイティブ thật trang[47]) も lợi dụng khả năng となっている. Wine 4.0 dĩ hàng では, 変 hoán ライブラリvkd3dを lợi dụng してVulkanThượng にDirect3D 12 APIを thật hiện している[48][49].また, Linux/Wine hoàn cảnh hướng けに, VulkanによるDirect3D 9/10/11 thật trang を đề cung するDXVKも khai phát されている[50][51].
Direct3D 12 thượng に cấu trúc された, Direct3D 9のユーザーモードドライバーインターフェイス ( DDI ) の thật trang を đề cung するD3D9On12のソースコードがマイクロソフトによって công khai されている[52].d3d9on12.dll は, Windows 10 dĩ hàng のシステムコンポーネントとして hàm まれている. GPUベンダーは, ネイティブのDirect3D 9ドライバーを thật trang する đại わりにD3D9On12を lợi dụng することもできる.
Cước chú
[Biên tập]Chú 釈
[Biên tập]- ^Direct3D 7 dĩ tiền のためのデータ hình が định nghĩa されているヘッダーファイル
d3dtypes.h
は, Direct3D 8 dĩ hàng を lợi dụng するコードではインクルードできない.
Xuất điển
[Biên tập]- ^Microsoft DirectX SDK Readme (October 2006)[リンク thiết れ]
- ^DirectX 8.0 の thiệu giới
- ^D3D_DRIVER_TYPE | Microsoft Learn
- ^Windows Advanced Rasterization Platform (WARP) Guide - Win32 apps | Microsoft Docs
- ^Windows Vista のグラフィック API | Microsoft Docs
- ^Direct3D Retained Mode for Visual Basic
- ^D3DDEVTYPE enumeration (D3D9Types.h) - Win32 apps | Microsoft Learn
- ^D3DDEVTYPE | Microsoft Learn
- ^DirectX dụng ngữ tập
- ^IDirect3D9::RegisterSoftwareDevice | Microsoft Learn
- ^“Software Rasterizer for DirectX 9.0 SDK”.2008 niên 5 nguyệt 4 nhậtDuyệt lãm.[リンク thiết れ]
- ^D3DPOOL enumeration (D3D9Types.h) - Win32 apps | Microsoft Learn
- ^D3DPOOL | Microsoft Learn
- ^“Direct3D Resources - Memory pool”.2008 niên 5 nguyệt 4 nhậtDuyệt lãm.
- ^“Pipeline Stages (Direct3D 10)”.Microsoft Docs.2022 niên 2 nguyệt 23 nhậtDuyệt lãm.
- ^パイプライン ステージ (Direct3D 10) | Microsoft Docs
- ^Direct3D のアーキテクチャ (Direct3D 9) | Microsoft Docs
- ^Cao thứ プリミティブの sử い phương (Direct3D 9) | Microsoft Docs
- ^“The DirectX 9.0 Direct3D Graphics Pipeline”.2008 niên 5 nguyệt 4 nhậtDuyệt lãm.
- ^Pipelines for Direct3D Version 11 - Windows drivers | Microsoft Docs
- ^D3DLVERTEX (Windows CE.NET 4.2) | Microsoft Learn
- ^D3DTLVERTEX (Windows CE.NET 4.2) | Microsoft Learn
- ^Materials (Direct3D 9) - Windows applications | Microsoft Docs
- ^Mathematics of Lighting (Direct3D 9) - Windows applications | Microsoft Docs
- ^Shading State (Direct3D 9) - Windows applications | Microsoft Docs
- ^Light Properties (Direct3D 9) - Windows applications | Microsoft Docs
- ^Fog Types (Direct3D 9) - Windows applications | Microsoft Docs
- ^ラスタライザー ステージ (Direct3D 10) | Microsoft Learn
- ^Direct3D 12 khái yếu パート 2: パイプライン trạng thái オブジェクト | iSUS
- ^Managing Graphics Pipeline State in Direct3D 12 (Windows)
- ^WGF2.0 thời đại の thứ thế đại GPUのアーキテクチャはこうなる | hậu đằng hoằng mậu のWeekly hải ngoại ニュース
- ^ASCII.jp: DirectX 10.1をベースにするWindows 7 (1/2)
- ^DirectX Graphics Infrastructure (DXGI) Best Practices - Win32 apps | Microsoft Docs
- ^ダウンレベルのハードウェア thượng のコンピュート シェーダー | Microsoft Docs
- ^DirectX 11.1 and Windows 7 | Games for Windows and the DirectX SDK blog
- ^DirectX 12's new rendering features are coming to DirectX 11.3 too | PC Gamer
- ^DirectX 12 Lights Up NVIDIA’s Maxwell Launch - DirectX Developer Blog
- ^Tây xuyên thiện tư の3DGE: Tân しく lai るDirectXは “12” だけじゃない. Đột như phù thượng した “DirectX 11.3” とは hà か? - 4Gamer.net
- ^PC Games for Windows 10
- ^Windows 10 SDK (November 2015) | Games for Windows and the DirectX SDK blog
- ^Direct3D 12 đặc tập | iSUS
- ^【 hậu đằng hoằng mậu のWeekly hải ngoại ニュース】GPUの tiến hóa に đối ứng したMicrosoftの thứ thế đại API “DirectX 12” の bối cảnh - PC Watch
- ^What's new in Direct3D 12 - Win32 apps | Microsoft Learn
- ^Variable refresh rate displays - Win32 apps | Microsoft Learn
- ^World of Warcraft uses DirectX 12 running on Windows 7 | DirectX Developer Blog
- ^Porting DirectX 12 games to Windows 7 | DirectX Developer Blog
- ^Direct3D 10/11 Is Now Natively Implemented On Linux! - Phoronix
- ^“Wine 4.0” リリース, VulkanとDirect3D 12をサポート | OSDN Magazine
- ^source.winehq.org Git - vkd3d.git/summary
- ^Wine - ArchWiki
- ^doitsujin/dxvk: Vulkan-based implementation of D3D9, D3D10 and D3D11 for Linux / Wine
- ^microsoft/D3D9On12: The Direct3D9-On-12 mapping layer
Quan liên hạng mục
[Biên tập]- High Level Shading Language- HLSL
- Microsoft DirectX- Direct3Dを hàm むマルチメディアAPIの tập hợp
- OpenGL- Direct3Dの cạnh hợp となるクロスプラットフォームグラフィックスAPI
- WPF
- Windows Display Driver Model
- 3 thứ nguyên コンピュータグラフィックス
- Metal (API)
- Vulkan (API)
- en:Direct3D
- en:Feature levels in Direct3D
- Mantle (API)
Ngoại bộ リンク
[Biên tập]- Microsoft Docs( cựuMSDNライブラリ )
- DirectX Developer Blog
- GitHub