See also ebooksgratis.com: no banners, no cookies, totally FREE.

CLASSICISTRANIERI HOME PAGE - YOUTUBE CHANNEL
Privacy Policy Cookie Policy Terms and Conditions
DirectX - Wikipedia

DirectX

出典: フリー百科事典『ウィキペディア(Wikipedia)』

Microsoft DirectX(ダイレクトエックス・ディレクトエックス・ディレクティクス)は、マイクロソフト社が開発したゲームおよびマルチメディア処理用のAPIの集合である。

DirectXコンポーネントのうち、グラフィックスを担うDirectX GraphicsはMicrosoft WindowsXboxXbox 360向けのゲーム開発で広く利用されている。DirectX互換のビデオカードを利用することにより高品質の3Dグラフィックスを高速にレンダリングできるため、DirectXはこれ以外のソフトウェア産業、特にエンジニアリングの分野でも広く利用されている。

DirectXのランタイムライブラリSDKはいずれもマイクロソフトのウェブサイトから無償でダウンロードできるが、プロプライエタリソースコードは非公開である。DirectXはWindowsに含まれているが、最新版をウェブサイトからダウンロードすることも可能である。

2007年2月現在の最新バージョンはDirectX 10で、Windows Vistaに同梱されている。DirectX 10とDirect X 9ExはWindows Vista専用である。Windowsのグラフィックアーキテクチャに大規模な修正が加えられ、Windows Display Driver Modelが導入されたことがその理由である。

目次

[編集] DirectX のコンポーネント群

DirectXの機能はマネージコードインターフェイスのセットと同様にCOMインターフェイスの形で提供されている。

  • DirectX Graphics:(DirectX 8からの名称、下記の2つで構成される)
  • DirectX Audio:(DirectX 8からの名称、下記の3つで構成される)
    • DirectSound: サウンド再生及び録音
    • DirectSound3D(DS3D): 3次元サウンド再生
    • DirectMusic: DirectMusic Producerで作成された音楽トラックの再生
  • DirectX Media: (下記の3つで構成される)
    • DirectAnimation: 2D webアニメーション用
    • DirectShow: 各種オーディオビデオファイルの再生、作成
    • DirectTransform: webのインタラクティブ性と高レベルな3DグラフィックスのためのDirect3D Retained Mode。
  • DirectInput: キーボードマウスゲームパッドジョイスティックの入力処理(Xbox360のためのXInputを除き8以降更新されていない。キーボードやマウスはWM INPUTを代わりに利用すること。)
  • DirectPlay: ゲーム用ネットワーク通信(DirectInputと同様に8以降更新されていない。過去の遺産である。)
  • DirectX Media Objects: エンコーダー、デコーダー、エフェクトといったストリーミングオブジェクトのサポート
  • DirectSetup: DirectXランタイムのセットアップ用であり、正確にはAPIではない。

将来的にはDirectInputがXInputに、DirectSoundがXACTに、DirectShowがMedia Foundationに置き換えられる予定である。

[編集] 歴史

1994年終盤、マイクロソフトWindows 95をリリースしようとしていたが、当時のプログラマーは、Windows 95よりもむしろMS-DOSのほうがゲームプログラミングに適していると考える傾向にあった。「どのようなプログラムを作れるか」というのはOSの評価基準として大きなウェイトを占める。マイクロソフトの三人の社員、クレイグ・アイスラー、アレックス・ジョン、エリック・イングシュトロームは、この傾向を危惧していた。

MS-DOSの環境下では、プログラムはビデオカード、キーボード、マウス、サウンドカードなど様々なシステムパーツに直接アクセスできていたのだが、Windows 95ではメモリ保護のためにこれらの直接のアクセスが制限されてしまっていたのだ。あと数ヶ月でWindows 95がリリースされるという中で、マイクロソフトはウィンドウズ95におけるプログラムの自由度を上げる仕組みを作り上げなければならなかった。アイスラーとジョンとイングシュトロームの三人はこれらの問題解決に乗り出した。こうして作られたのがDirectXである。

DirectXの最初のバージョンはWindows Games SDKとして1995年9月にリリースされた。これはWindows3.1にあったWinG APIとDCIとを32ビット用に移植したものである。このとき、マイクロソフトATIの開発チームからゲームグラフィックの基本部分についての技術提供を受けた。これ以降、アイスラー(開発リーダー)、ジョン、イングシュトローム(プログラム責任者)の三人のチームを中心としてDirectXの開発が進められ、最終的にはこれ以降のすべてのWindowsにおいてDirectXがマルチメディア機能を担うことになった。DirectX1から5までの開発でのドタバタは、アイスラーのブログに詳しく書かている。[1]

DirectXの登場より前に、マイクロソフトOpenGLをWindowsNTに搭載してしまっていた。OpenGLは、動作に(当時においては)ハイスペックな環境が必要だった上に、用途もCADやエンジニアリングに限られていた。そんな中Direct3Dは、ゲーム用としてはオーバースペック気味だったOpenGLの計量版として設計され、ここからDirect3DOpenGLとの、ユーザー同士の対立が始まった。Windows専用だったDirect3Dはマイクロソフトの3E戦略(embrace,extend,extinguish―吸収、拡大、根絶)だとOpenGLユーザーから非難されることとなった。しかしながらDirectXには、サウンドやジョイスティックなど、OpenGLがカバーできない機能が含まれていたため、DirectX上の他のAPIとOpenGLとを組み合わせて使われることが多かった。最近ではOpenGLSDLの組み合わせも多くなってきている。

ゲーム専用機では、セガDreamcastWindowsCEと共にDirectXが世界で初めて用いられた[2]。その後マイクロソフトXboxXbox360にも搭載された。Xbox360のコンソールAPIはマイクロソフトNVIDIA(Xboxのカスタムグラフィックチップの開発元)で共同開発された。Xbox APIはDirectX8.1に近いが、コンソール上からアップデートができないところが他と異なる。XboxのコードネームはDirectXboxだったが、商品名は短縮してXboxとなった[3]

2002年にマイクロソフトは、以前よりもはるかに長いシェーダプログラムを扱えるピクセル・バーテックスシェーダバージョン2.0をサポートしたDirectX 9をリリースした。2004年8月にはシェーダモデル3.0を導入したDirectX 9.0cをリリースし、それ以降もDirectX一式の更新を続けている。

2005年4月の時点でDirectShowはDirectXから取り除かれ、代わりにMicrosoft Platform SDKへ移動した。しかしながらDirectShowのサンプルをビルドするためにはDirectXが必要である[4]

[編集] リリース履歴

バージョン 概要 日付
WinG、DCI Windows 3.1時代
DirectX 1.0 ゲーム作成用のAPI集GameSDKとして発表された 1995年10月
DirectX 2.0 Direct3D(Immediate Mode, Retained Mode)の登場 1996年6月
DirectX 3.0 DirectSound3D登場、DirectInputの統合 Windows NT4.0に搭載。 1996年9月25日
ActiveMovie DirectShowの前身 1996年11月5日
DirectX 4.0 登場予定であったが、DirectX 3.0からはわずかな変更であり、既にDirectX 5.0がロードマップ上にあったため、ベンダーの要望によりキャンセルされた。
DirectX 5.0 Direct3DにDrawPrimitive(OpenGLのようなプリミティブ単位の描画機能)が登場。Windows 98に搭載。 1997年8月4日
DirectX Media DirectShowおよびDirectAnimation搭載 1997年12月1日
DirectX 6.0 3D描画向けの「Direct3D」の強化、AMD提唱の3D向け命令セット「AMD 3DNow!」への対応や、ジオメトリパイプラインの見直し、テクスチャデータ圧縮機能のサポートなどにより高速化が図られたほか、シングルパス・マルチテクスチャやバンプマッピングのサポートなど表現力の向上。 1998年8月7日
DirectX 6.1 DirectMusic登場。SSEのサポート。Windows 98 SEに搭載。 1999年2月3日
DirectX 7.0 Visual Basicをサポート、Direct3Dの機能強化(ハードウェアT&Lのサポート)
Windows 2000に搭載され、NT系列でも最新機能が使えるようになった。
1999年9月22日
DirectX 7.1 Windows Meに搭載された。
DirectX 8.0 DirectDrawとDirect3Dが統合されてDirectX Graphicsに。また、DirectSoundとDirectMusicが統合されてDirectX Audioと呼ばれるようになった。 Windows 2000および9x系で使用可能。 2000年11月9日
DirectX 8.1 Windows XPに搭載。Windows 2000・Me・98用に単体配布もされている。
DirectX 8.2 Windows 2000 および Windows XP で使用可能。短期間配布された。
DirectX 9.0 各コンポーネントの機能強化が中心。DirectX 9.0cがWindows XP SP2に搭載された。
この頃から、DirectXのバージョンが上がっても、更新されるのはDirect3Dだけとなりつつあるため、DirectX 9.0ではなくDirect3D 9.0と呼ばれるようになる。
2002年12月20日
Direct3D 9.0Ex Windows Vistaに搭載されている、Direct3D 9.0の改良版。Windows VistaのWindows AeroはDirect3D 10ではなく9Exで描画されている。
DirectX 10.0 Windows Vista以降でのみ、利用可能。
DirectX 10.1 Windows Vista SP1以降でのみ、利用可能。GPUの仮想化技術の実装

[編集]

  • DirectX 4はリリースされなかった。Raymond Chen氏の著書The Old New Thingによると、DirectX 3がリリースされた後に、マイクロソフトは4と5の開発を同時に始めた。Version 5がより実りの多いものになる予定であったのに対し、version 4は小幅な機能拡張を伴う短期リリース版となる予定であった。DirectX 4に実装される予定の機能はゲーム開発者の興味をそそらずに棚上げされる結果となり、またドキュメントはこれら2つのバージョンを明確に区別して執筆しており、マイクロソフトは(version 5の)機能はversion 5のためのものだと記述するためversion 4を再利用しないことに決めた。

[編集] Managed DirectX

Managed DirectXは.NET FrameworkアプリケーションからDirectXを呼び出すためのAPIである。Managed DirectXを使うと、.NET Framework上で動作するどんな言語からでもDirectXを呼び出すことができる。また、テクスチャオブジェクトをSystem.Drawing.Bitmapオブジェクトから生成できるなど、.NET Frameworkとの相互運用も強化されている。

しかしながらManaged DirectX 2.0の開発は中止され、Microsoft XNAに置き換えられることになった。

[編集] OpenGLとの関係

DirectXのうちDirectX Graphicsは、同じく三次元グラフィックスを扱うためのAPI集合であるOpenGLとしばしば比較される。

主な違いは、DirectXは基本的に3DグラフィックAPIに限定されるものではなく、サウンド処理や入出力処理、ネットワーク処理までを内包するトータルなゲーム作成用API/SDKを指向するものである一方、OpenGLは純然たる3DグラフィックAPIとして設計されている点にある。 またDirectXはWindows(やWindowsを採用したゲーム機、DreamcastやXbox等)の動作する限られたプラットフォームでしかサポートされないのに対し、OpenGLはクロスプラットフォームであるという点である。また、DirectXはクローズドソースなライセンスであるが、OpenGLはオープンソースであるため、特別な許可なく移植や改変ができる。

DirectXはその出自から、主にWindows用ゲームの分野で使用されてきたが、現在ではDirect3Dに関しては同環境における標準的な3DグラフィックAPIとしても用いられるようになり、ゲームに限らない一般的な3Dアプリケーションや、オペレーティングシステムのグラフィカルシェル環境にまで用いられるようになった。

一方のOpenGLは、歴史的および機能的な理由から、3DCGの製作工程(但し、モデラーやシーンエディタ等によって対話的に行う作業環境の表示に用いられ、最終的なレンダリング出力にOpenGLそのものが用いられる事はまず無い)やCAD、データ可視化などの用途に、グラフィックワークステーションやEWS等のプロフェッショナルな分野で使用されてきた。また現在ではパーソナルユーザー向けの3Dデスクトップ環境において標準的な描画APIとしても用いられており、これらの環境では3DビデオゲームのグラフィックAPIとしても標準的な立場にある。このように、両者をその用途によって明確に区別することは困難となりつつある。

またDirectXが標準的な3DグラフィックAPIとして定着したPC/Windows系の環境においてもOpenGLは今なお共存しており、実際にDirectXの登場以前~登場初期頃には、PC(Windows)用ゲームの3DグラフィックAPIとしてOpenGL(やOpenGLを簡略化し自社製グラフィックカードVoodooの専用APIとしたGlide)がデファクトスタンダードとして用いられて来た歴史もあり、両者を比較する文脈においてよく言われるような単純な競合関係として説明することも、実態として困難と言える。

[編集] 関連項目

[編集] 外部リンク

[編集] 脚注

  1. ^ Craig's Musings: DirectX Then and Now (Part 1)
  2. ^ WindowsCE SDK for Dreamcast
  3. ^ J. Allard, PC Proのインタビュー 2004年4月
  4. ^ Release Notes (MSDN)


aa - ab - af - ak - als - am - an - ang - ar - arc - as - ast - av - ay - az - ba - bar - bat_smg - bcl - be - be_x_old - bg - bh - bi - bm - bn - bo - bpy - br - bs - bug - bxr - ca - cbk_zam - cdo - ce - ceb - ch - cho - chr - chy - co - cr - crh - cs - csb - cu - cv - cy - da - de - diq - dsb - dv - dz - ee - el - eml - en - eo - es - et - eu - ext - fa - ff - fi - fiu_vro - fj - fo - fr - frp - fur - fy - ga - gan - gd - gl - glk - gn - got - gu - gv - ha - hak - haw - he - hi - hif - ho - hr - hsb - ht - hu - hy - hz - ia - id - ie - ig - ii - ik - ilo - io - is - it - iu - ja - jbo - jv - ka - kaa - kab - kg - ki - kj - kk - kl - km - kn - ko - kr - ks - ksh - ku - kv - kw - ky - la - lad - lb - lbe - lg - li - lij - lmo - ln - lo - lt - lv - map_bms - mdf - mg - mh - mi - mk - ml - mn - mo - mr - mt - mus - my - myv - mzn - na - nah - nap - nds - nds_nl - ne - new - ng - nl - nn - no - nov - nrm - nv - ny - oc - om - or - os - pa - pag - pam - pap - pdc - pi - pih - pl - pms - ps - pt - qu - quality - rm - rmy - rn - ro - roa_rup - roa_tara - ru - rw - sa - sah - sc - scn - sco - sd - se - sg - sh - si - simple - sk - sl - sm - sn - so - sr - srn - ss - st - stq - su - sv - sw - szl - ta - te - tet - tg - th - ti - tk - tl - tlh - tn - to - tpi - tr - ts - tt - tum - tw - ty - udm - ug - uk - ur - uz - ve - vec - vi - vls - vo - wa - war - wo - wuu - xal - xh - yi - yo - za - zea - zh - zh_classical - zh_min_nan - zh_yue - zu -