Microsoft_DirectX
[Wikipedia|▼Menu]
□記事を途中から表示しています
[最初から表示]

また、AMDは従来のDirectXやOpenGLよりもハードウェアに近いローレベルな制御を可能とする独自APIとして2013年にMantleを発表した[57][58]

DirectXが最先端のリアルタイムグラフィックスシーンを牽引していた時代から変化を迎えつつあったが、GDC 2014ではついにDirectX 12の発表が行なわれ[59]、特にDirect3D 12に関してはDirect3D 11までの高レベルAPIを刷新し、オーバーヘッドを低減したゲームコンソールに近いローレベルな制御を可能とするグラフィックスAPIとなることが明らかにされた。

DirectX 12はWindows 10専用としてそれに標準搭載される形で2015年7月に正式リリースされ、コマンドキューベースの効率的なマルチスレッドレンダリング機能や、マルチGPUによる分散レンダリングの標準化など、近代的なハードウェア設計に沿う形で革新的な多数の機能を備えるに至っている[60][61]

一方で、従来の手厚い高レベルレイヤーであるDirectX 11にも、DirectX 12で導入された新機能の一部が盛り込まれる形で、DirectX 11.3/11.4のようにDirectX 12と平行してアップデートが継続されている。

2018年にリリースされたWindows 10 October 2018 Updateでは、DirectX Raytracing(英語版) (DXR) の機能が追加された。アップデートされたDirectX 12 APIを通じて、DXR対応ハードウェア上でリアルタイムレイトレーシングを実行できるようになった[62]。また、Windows 10バージョン1903では、DirectX 12をベースに実装された機械学習用のローレベルAPIとして、DirectMLが追加された[63][64]
DirectX 12 UltimateのリリースDirectX 12 Ultimateのロゴ

マイクロソフトは2020年3月、「DirectX 12 Ultimate」を発表した[65]。PCとXbox Series Xのグラフィックスプラットフォームを統一し、ゲームエコシステム全体の拡大を図ることを目的としている。Windows 10バージョン2004以降で利用可能。

DirectX 12 Ultimateは以下の4つの技術から成る。下位互換性があるので、DirectX 12 Ultimateに対応しているハードウェアはDirectX 12を使用する既存のアプリケーションを実行することもできる。

DirectX Raytracing 1.1 (DXR 1.1): リアルタイムレイトレーシングを実現するグラフィックスAPIの次期版。マイクロソフトとNVIDIAが共同開発。

Variable Rate Shading (VRS): シェーダーのピクセル解像度を状況に応じて変化させることで、見た目に影響を与えず描画を高速化。

Mesh Shaders: Turing世代のNVIDIA製GPUに追加されたシェーダー。

Sampler Feedback: 不要な計算を省いてレンダリング負荷を下げる技術の一つ。

補助ライブラリ

DirectXのうち、Direct3Dにはマイクロソフト純正の補助ライブラリとして、D3DX(英語版) (Direct3D Extension) と呼ばれるDirect3D拡張ライブラリが存在する[66][67]。Direct3D自体はバッファ/テクスチャメモリの管理やプリミティブの描画といった比較的ローレベルかつ最低限の機能しか持たないが、D3DXには3Dグラフィックスプログラミングで必要となる算術演算、スプライトメッシュテクスチャの読み書きといった比較的高レベルの機能が実装されている。主にDirect3D 9向けのD3DX9、Direct3D 10向けのD3DX10、そしてDirect3D 11向けのD3DX11およびD3DCSX11が存在する。多くのD3DX機能はd3dx9_XX.dll、d3dx10_XX.dll、d3dx11_XX.dllなどのコンポーネントに、C/C++用の関数・クラスや、COMインターフェイスとして実装されている。D3DXランタイムはDirect3D本体(コアコンポーネント)とは異なり、前述のようにWindows OSのセットアップやWindows Updateによるシステム更新ではインストールされず、またアプリケーションの開発に使用したDirectX SDKのバージョンによって必要となるDLLが異なるため、エンドユーザー環境でD3DXを使用するためにはDirectXエンドユーザーランタイムのインストールが必要となる[2]。エンドユーザーランタイムのインストーラー最終バージョンでは、過去のDirectX SDK(June 2010まで)に対応するランタイムがすべてインストールされる。

Windows SDKとDirectX SDKが統合されたWindows SDK 8.0では、D3DXは(D3DCSX11を除いて)廃止され、SDKに新しいバージョンが同梱されなくなっている[68]。廃止されたD3DXの代わりに、Windows SDK 8.0以降では算術ライブラリとしてDirectXMath[69][70]が標準提供されている。また、DirectXTK[1]、DirectXTex[2]、DirectXMesh[3] といったオープンソースのC++専用補助ライブラリが開発され、MITライセンスGitHubにて公開されている(開発当初はMs-PLライセンスでCodePlexにて公開されていた)。なおWindows 8およびVisual Studio 2012以降でも旧DirectX SDKをインストールするか、DirectXエンドユーザーランタイムをインストールすることでD3DXを利用することは可能だが、Windowsストアアプリ(WinRTアプリ、Modern UIアプリ)の開発ではD3DXを使用することはできず、D3DXを使用できるのはデスクトップアプリケーションのみとなっている。

そのほか、旧DirectX SDKにはDXUTと呼ばれるフレームワークがソースコードごと同梱されており、SDKに付属するマイクロソフト公式のサンプル実装に使われていたほか、NVIDIAインテルAMDといったハードウェアベンダーが独自に作成・公開するDirectXサンプルにもフレームワークとしてしばしば使われていたが、DXUTもWindows SDK 8.0以降には同梱されない。DXUT自体はDirectX 11.x用のもの (DXUT11) がGitHubにて公開・メンテナンスされている[71]。Effects 11 (FX11) と呼ばれるシェーダーエフェクトフレームワークも、DXUT同様にGitHubに移管されている[72]。また、Visual Studio 2012以降には、Direct3D/Direct2DベースのWinRTアプリケーションプロジェクトテンプレートが含まれている。

旧DirectX SDKの最終バージョンJune 2010がサポートするVisual Studioはバージョン2008/2010のみ[73]だが、旧SDKに付属していたサンプルのうち、多くはVisual Studio 2012以降向けに更新されたものがMSDN Code Galleryに移管されている[74]。この更新によってD3DXなどの廃止されたライブラリへの依存も排除されている。MSDN Code Galleryの廃止に伴い、これらのサンプルはGitHubに移管された。

なお、DirectX Graphics SamplesがMITライセンスでGitHubにて公開されており、DirectX 12のサンプルおよびユーティリティライブラリが含まれている。例として、Direct3D 12用のC++ヘッダーベース補助ライブラリであるD3D12 Helper Library (d3dx12.h)[75][76]、DirectX 12 EngineのStarter KitであるMiniEngine[77]、Direct3D 12用メモリ管理ライブラリであるD3D12 Residency Starter Library[78][79][80]などが含まれている。


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:130 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef