No.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/ …
http://www.vector.co.jp/vpack/filearea/win/prog/ …
http://www.vector.co.jp/vpack/filearea/win/prog/ …
参考URL:http://www.microsoft.com/japan/msdn/library/defa …
ご回答、ありがとうございます!!!
大変わかりやすく教えて頂き、感謝、感謝です(*T_T*)
DirectShowを使うことばかり頭にあり、それ以外に目がいきませんでした。
初心者ってことですね・・・(恥)まずは、Win32APIの本でも見てみようと思います!!!
本当にありがとうございました。
今後も機会がございましたら、どうぞよろしくお願いします。
No.5
- 回答日時:
DirectX はゲーム用に開発されたライブラリ群のことです。
もともと Windows はビジネスアプリケーションを走らせるための OS として開発されました。なので当然ゲームを開発、あるいはプレイするには向かない環境だったわけです。そんなことからゲーム開発者には Windows が不人気でゲームは MS-DOS を中心に開発、販売されていました。
その状況に対し、Microsoft は WinG という高速なライブラリを開発しましたが、それでもまだ 3D の描画には役不足でした。
そんな経緯から DirectX は生まれました。
DirectX の特徴は高速グラフィック描画、高速サウンド処理、ネットワーク通信まわりの便利な API、入力デバイスの制御、そして 3D ハードウェアのサポートです。
特に 3D ハードウェアを最適に使用する機構が用意されているのでかなり有用なテクノロジーとして扱われています。
ただ、DirectX を入れていないコンピュータでは動かないため移植性が無い、最新の DirectX が自分の機種のハードウェア(グラフィックカード)に対応していないと描画が崩れる、プログラマの組み方次第で下手をすると GDI より遅くなっちゃう可能性があるなどデメリットなどもあるようです。
参考URL:http://www.microsoft.com/japan/msdn/directx/defa …
>DirectX の特徴は高速グラフィック描画
この、グラフィックの描画とビデオキャプチャでForm上に表示させることは違うのですか?
私は何か勘違いをしているのでしょうか・・・(^^;)
No.4
- 回答日時:
なんかまだ焦点がずれている気もするので…。
ActiveXとは、プログラムやWEBページの機能を拡張するための
プラグインの形式だと思えばいいと思います。
(インターネットに関係ない通常のプログラムでも多用されます)
つまり、画像を表示するActiveXや、通信を行うActiveX、
特殊な計算を行うためのActiveXなど、追加したい機能を持ったActiveX
を自分のプログラムに追加することでその機能を実現すると言うものです。
DirectXはよくわからないのですが、画像を描画するためのAPI集みたいなものですよね…。
つまり、DirectXの機能を利用して画像を描画するActiveX
(市販、自作など)を利用するということはあるわけです。
そのばあい、自分で画像制御を行うわけではなく、細かい制御はACTIVEXで行う
(そうじゃないと組み込むいみがないですよね?)ので、プログラムの技術
という意味では「有意義ではない」でしょうね…。
ははぁ!!!そういうことだったのですか・・・(^^;)
理解してないのに、理解していたつもりでした。
本当に申し訳なかったです。
No.3
- 回答日時:
> Web上で扱うアプリケーションなら、ActiveXでそうでないならDirectXということでしょうか?
前者は正しいですが後者は正しいとは言えません。
> 現在、デジタルビデオカメラでビデオキャプチャするアプリケーションを作成したいと思っています。
> どっちでも作成することできるでしょうか?
> どちらで作成したほうがよいのでしょうか?
DirectXを使うと簡単でしょう。
しかしDirectXを使わなくても(当然ActiveXも応用しなくとも)やって出来ないことはありません。
バケツで穴を掘るよりスコップで穴を掘ったほうが有意義であるように、ActiveXを応用したっていいですが、あんまり有意義じゃないでしょうねぇ。
DirectXを使わずにできるのですか?
今DirectXについて勉強中なのですが・・・
GraphEditなどの機能もどう使ったらいいのかわかりません。
No.2
- 回答日時:
GlossaryHelpより抜粋
<ActiveX>
Internet対応アプリケーションやInternetコンテンツを
開発するための技術を総称したもの。
<DirectX>
Windows環境でのグラフィックス描画を高速化するための
メカニズムの総称。
つまり、インターネット(通信有り)のコンテンツに特
化した技術を
「ActiveX」
ローカルで、Windowsのグラフィック能力の補助をする
為に作られた技術を
「DirectX」
という事になりますね。
詳しくはGlossaryHelpで。
参考URL:http://yougo.ascii24.com/gh/
Web上で扱うアプリケーションなら、ActiveXでそうでないならDirectXということでしょうか?
現在、デジタルビデオカメラでビデオキャプチャするアプリケーションを作成したいと思っています。
どっちでも作成することできるでしょうか?
どちらで作成したほうがよいのでしょうか?
すみません、よかっったら教えてください。
No.1
- 回答日時:
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 数学 簡単な連立方程式です。自分の解いた答えと解答がどうしても違います。正しい答えを教えてください。 42 8 2022/12/26 16:27
- Windows 10 DirectX というのについて教えてください 11 2023/07/03 11:32
- 借地・借家 賃貸の違約金と更新について 4 2023/08/25 00:29
- その他(人文学) 恋人未満とはどういう女性を言うのか思いつくままに教えてくれませんか。 1 2023/06/18 13:04
- その他(悩み相談・人生相談) 違法性と過失 5 2022/05/11 10:27
- 英語 "start to do"と"be starting to do"のニュアンスの違いについて 4 2022/08/14 11:38
- 不動産投資・投資信託 投資信託 分配金なしについて 5 2023/02/28 21:17
- 掃除・片付け コロナに有効 除菌タオルの違いを教えてください •エリエール 除菌できるアルコールタオル アルコール 2 2023/02/13 08:02
- モニター・ディスプレイ BIOSTAR TH67+のDVI端子について 2 2022/04/04 21:09
- その他(自然科学) エネルギー管理士とエネルギー管理講習って違いあるんですか? エネルギー管理講習というのを一日かけて受 1 2023/05/17 00:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
MFCでOnPaintのタイミング
-
ビットマップを表示させる(MFC)
-
TextBoxに文字を書いても表示さ...
-
Minecraft 統合版(PC)の描画距...
-
word
-
Labelの文字をスクロールする際...
-
[VB.net] DataGridViewの列ヘッ...
-
VBAにGDI+を参照させる方法
-
画面リサイズ時のちらつきをな...
-
(C# .Net) ToolStripのボタンの...
-
panelのスクロール表示について
-
CScrollViewの使用方法について
-
PCで「使用可能な場合はグラフ...
-
UpdateData( FALSE); による文...
-
gnuplotのフリーズについて
-
CStaticコントロールの静的イメ...
-
VB6,リストボックスの特定行の...
-
Form1 Load で実行されない。
-
重いグラフィックス処理
-
OpenGLとDirectXの違いについて
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
MFCでOnPaintのタイミング
-
[VB.net] DataGridViewの列ヘッ...
-
word
-
NVIDIAのシェーダーキャッシュ
-
TextBoxに文字を書いても表示さ...
-
UpdateData( FALSE); による文...
-
VB6,リストボックスの特定行の...
-
PCで「使用可能な場合はグラフ...
-
VC++プログラムをつかったBMP画...
-
VBAにGDI+を参照させる方法
-
FlexGridの一部のみ表示を更新...
-
pset関数について
-
エクセルでガンチャートを作成...
-
C言語(dxlib)のDrawboxについ...
-
Form1 Load で実行されない。
-
InvalidateRectの使い方について
-
MFCのタイマーのつかい方を教え...
-
CStaticコントロールの静的イメ...
-
Windowのちらつき防止
-
GDI+で高速な描画
おすすめ情報