- ベストアンサー
この二つの違いは・・・?
ActiveXとDirectXの違いって何なのでしょう? いまいちよく理解できないので教えてください。
- みんなの回答 (6)
- 専門家の回答
質問者が選んだベストアンサー
処理とかによりますけど、まあ、同じと言えば同じです。 グラフィックの描画というのは三角形やらの図形とか、ビットマップデータや 3D エンジンでレンダリングする、あるいはオフスクリーンレンダリングされたポリゴンをウィンドウや画面に描きこむ(表示する)ということです。 Form というのが扱ったことがないですからいまいち分からないんですけど、その Form 上に映像データを書き込むことが出来るんなら、リアルタイムにキャプチャしたビデオデータをメモリにバッファして、あるいは直接描き込むこと言う意味で、大差ないと思います。 処理が少し違うだけで。 ビデオキャプチャはやった事がないんで以下は推測で書きます。 1.まず、ウィンドウを用意する。 ↓ 2.描画の準備をする。 ↓ 3.ビデオキャプチャのハードウェアからビデオデータを送ってもらう(取得する)。 ↓ 4.ビデオデータをメモリにバッファしてウィンドウに表示できるデータに変換する。 ↓ 5.データをウィンドウに描きこんでいく。 と言ったところでしょうか? それで、グラフィックの描画は、 1.ウィンドウの用意。 ↓ 2.描画の準備。 ↓ 3.描画データの用意。 ↓ 4.ウィンドウに描きこめるデータに変換。(不要な場合もある) ↓ 5.描画。 ゲームループとかメッセージの処理とかはとりあえず抜きでグラフィックを扱うとして話を進めていますよ。 見てのとおり3.4.の描画データの処理が違うだけで後は同じでしょ? 最終的にはデータをウィンドウに表示できる形式に変換する必要があるんですよ。 前述したように DirectX はゲームに特化したライブラリです。なのでゲームで普段使うような処理は可能です。 ただ、ビデオキャプチャの処理なら DirectX を使わなくても十分なように思えます。それに、DirectX は先に書きましたけど、最新の DirectX がグラフィックカードに対応していないと変な動作を起こすことがある、DirectX ランタイムのインストールが前提、いろんなマシンでテストしてみなければ動作保証が出来ないなど、結構ややこしいです。 それに比べ動作速度は遅いかもしれませんが、標準の Win32 API を使えばたいていの Windows で動きます。 まずはビデオデータ( MPEG など)を扱う方法を調べてみてください。それから、外部のハードウェアなどからビデオデータを取得する方法を調べてください。 その後、どうしても動作が遅いとかのパフォーマンスが出ないと感じたら、その時は DirectX を使ってみましょう。それからでも遅くないと思いますよ。 Win32 API、マルチメディアとかで Google ( http://www.google.co.jp/ ) 検索してみるのも良いです。 あるいはベクターなどからビデオキャプチャを扱える DLL や OCX なんかのライブラリを探してみるのも良いかもしれません。 http://www.vector.co.jp/vpack/filearea/win/prog/lib/index.html http://www.vector.co.jp/vpack/filearea/win/prog/dll/index.html http://www.vector.co.jp/vpack/filearea/win/prog/ocx/index.html
その他の回答 (5)
- HogePiyo
- ベストアンサー率57% (24/42)
DirectX はゲーム用に開発されたライブラリ群のことです。 もともと Windows はビジネスアプリケーションを走らせるための OS として開発されました。なので当然ゲームを開発、あるいはプレイするには向かない環境だったわけです。そんなことからゲーム開発者には Windows が不人気でゲームは MS-DOS を中心に開発、販売されていました。 その状況に対し、Microsoft は WinG という高速なライブラリを開発しましたが、それでもまだ 3D の描画には役不足でした。 そんな経緯から DirectX は生まれました。 DirectX の特徴は高速グラフィック描画、高速サウンド処理、ネットワーク通信まわりの便利な API、入力デバイスの制御、そして 3D ハードウェアのサポートです。 特に 3D ハードウェアを最適に使用する機構が用意されているのでかなり有用なテクノロジーとして扱われています。 ただ、DirectX を入れていないコンピュータでは動かないため移植性が無い、最新の DirectX が自分の機種のハードウェア(グラフィックカード)に対応していないと描画が崩れる、プログラマの組み方次第で下手をすると GDI より遅くなっちゃう可能性があるなどデメリットなどもあるようです。
お礼
>DirectX の特徴は高速グラフィック描画 この、グラフィックの描画とビデオキャプチャでForm上に表示させることは違うのですか? 私は何か勘違いをしているのでしょうか・・・(^^;)
- Khazad
- ベストアンサー率30% (17/56)
なんかまだ焦点がずれている気もするので…。 ActiveXとは、プログラムやWEBページの機能を拡張するための プラグインの形式だと思えばいいと思います。 (インターネットに関係ない通常のプログラムでも多用されます) つまり、画像を表示するActiveXや、通信を行うActiveX、 特殊な計算を行うためのActiveXなど、追加したい機能を持ったActiveX を自分のプログラムに追加することでその機能を実現すると言うものです。 DirectXはよくわからないのですが、画像を描画するためのAPI集みたいなものですよね…。 つまり、DirectXの機能を利用して画像を描画するActiveX (市販、自作など)を利用するということはあるわけです。 そのばあい、自分で画像制御を行うわけではなく、細かい制御はACTIVEXで行う (そうじゃないと組み込むいみがないですよね?)ので、プログラムの技術 という意味では「有意義ではない」でしょうね…。
お礼
ははぁ!!!そういうことだったのですか・・・(^^;) 理解してないのに、理解していたつもりでした。 本当に申し訳なかったです。
- marimo_cx
- ベストアンサー率25% (873/3452)
> Web上で扱うアプリケーションなら、ActiveXでそうでないならDirectXということでしょうか? 前者は正しいですが後者は正しいとは言えません。 > 現在、デジタルビデオカメラでビデオキャプチャするアプリケーションを作成したいと思っています。 > どっちでも作成することできるでしょうか? > どちらで作成したほうがよいのでしょうか? DirectXを使うと簡単でしょう。 しかしDirectXを使わなくても(当然ActiveXも応用しなくとも)やって出来ないことはありません。 バケツで穴を掘るよりスコップで穴を掘ったほうが有意義であるように、ActiveXを応用したっていいですが、あんまり有意義じゃないでしょうねぇ。
お礼
DirectXを使わずにできるのですか? 今DirectXについて勉強中なのですが・・・ GraphEditなどの機能もどう使ったらいいのかわかりません。
- ro-su
- ベストアンサー率24% (19/79)
GlossaryHelpより抜粋 <ActiveX> Internet対応アプリケーションやInternetコンテンツを 開発するための技術を総称したもの。 <DirectX> Windows環境でのグラフィックス描画を高速化するための メカニズムの総称。 つまり、インターネット(通信有り)のコンテンツに特 化した技術を 「ActiveX」 ローカルで、Windowsのグラフィック能力の補助をする 為に作られた技術を 「DirectX」 という事になりますね。 詳しくはGlossaryHelpで。
- 参考URL:
- http://yougo.ascii24.com/gh/
お礼
Web上で扱うアプリケーションなら、ActiveXでそうでないならDirectXということでしょうか? 現在、デジタルビデオカメラでビデオキャプチャするアプリケーションを作成したいと思っています。 どっちでも作成することできるでしょうか? どちらで作成したほうがよいのでしょうか? すみません、よかっったら教えてください。
- marimo_cx
- ベストアンサー率25% (873/3452)
名前が似ていますが全く違います。 DirectXはAPIの親戚です。 ActiveXはPlug-Inとほぼ全く同じ原理のものです。
- 参考URL:
- http://yougo.ascii24.com/
お礼
似てるのに、違うんですね・・・ 回答ありがとうございます(^^) 勉強してみます。
お礼
ご回答、ありがとうございます!!! 大変わかりやすく教えて頂き、感謝、感謝です(*T_T*) DirectShowを使うことばかり頭にあり、それ以外に目がいきませんでした。 初心者ってことですね・・・(恥)まずは、Win32APIの本でも見てみようと思います!!! 本当にありがとうございました。 今後も機会がございましたら、どうぞよろしくお願いします。