2009年04月22日

DirectShow

DirectX のコンポーネントである DirectShow を使用すると、プログラム内で多種多様なメディアストリームを、比較的簡単に扱えるようになります。

例えば「入力」と一口に言っても、動画ファイルであったり、キャプチャデバイスであったり、更にはメディア形式も様々だったりする訳ですが、ファイル入力、キャプチャデバイス入力、フォーマット変換/CODEC、再生画面表示、ファイル出力といった機能ブロックの組み合わせで実現できてしまいます。直接接続できない機能ブロック同士の場合には、自動的に間にフォーマット変換などの機能ブロックを挿入して接続してくれます。

Microsoft Platform SDK には GraphEdit というツールが同梱されており、DirectShow におけるストリーム設計の検証が行えます。GUI 上で機能ブロック同士を接続して、ストリームを試しに構築してみることが出来ます。

また、プログラム内で構築されたストリームを読み出して表示することも出来ます。

GraphEdit

これは現在開発中のプログラムが実際に構築したストリームを、GraphEdit に読み取らせて自動的に表示されたものです。(表示位置は少し変えています)

ここではPCカメラを上流として、支流の一方でスナップショットを、もう一方でオーバーレイ表示しています。勘の鋭い方は、これで何を作ろうとしているか、もう、お解りですね!


posted by foilskin at 21:11 | comment (0) | rtPozAR | このブログの読者になる | 更新情報をチェックする

2009年04月21日

クロマキー

クロマキー (chroma key) とは、色合いの差で被写体だけを抜き出して、別の画像に嵌め込む画像合成技術です。決して外人選手のことではありません(笑)。

よく、ブルーのスクリーンの前で人物を撮影しておいて、そのブルーの部分をどこかの風景とかに差し替える制作現場が紹介されたりしますよね。

こんな画像をレンダリング+ポストワークしてみました。

クロマキー

【この画像の楽しみ方】
(1) Windows Media Player を起動し、ウィンドウを最大化します。全画面モードにはしないで下さい。
(2) 適当な動画を再生し始めます。なるべく表示サイズが大きめの動画にします。
(3) このWebページを表示しているブラウザウィンドウを一番手前に持ってきて、Windows Media Player が裏に隠れるようにします。


これは、ハードウェアオーバーレイというもので、クロマキーの一種ですね。特別な色 (Color Key) の所だけに表示されます。この色は、デフォルトでは #100010 で、黒に近い色です。ご利用の環境やグラフィックカードに依っては、上手く表示されないかも知れません。

ちなみに、画面が256色パレットモードの場合は、Color Key はマゼンタ (#FF00FFと同等) になります。Poser7 の動作要件は 24bit カラー (24bpp) となっていますので、さすがに256色モードで使用している人は、いらっしゃらないとは思いますが、サーバ向けPCをネットワークレンダリングに使えたりするのかな?
posted by foilskin at 22:34 | comment (0) | rtPozAR | このブログの読者になる | 更新情報をチェックする

2009年04月20日

ドキュメント窓サイズ

Poser のドキュメントウィンドウの大きさを得る必要が出てきたのですが、どうやら PoserPython では得られないようです。

レンダリングサイズであれば、
・静止画 x, y = scene.OutputRes()
・動画像 x, y = scene.MovieMaker().OutputRes()
とすれば得られるのですが。

そこで Windows 限定ですが方法を考えてみました。

Poser7 では PoserWndClass という主ウィンドウの他に、wxWindowClassNR というウィンドウがいくつかあります。この中の一つに、「シーンパレット」という内部名のウィンドウがあり、puiwxsplitter という内部名のウィンドウを持っています。この孫ウィンドウの情報を取得すれば、窓サイズだけでなく、デスクトップ上の絶対位置も得られます。

親ウィンドウを「シーンパレット」でサーチすれば、多段ループの段数を一段減らせますが、日本語版以外に対応できなくなるでしょう。これらの構成は Poser のバージョンによっても違うかも知れません。

亀フィギュアを持っていれば、ここに親亀・子亀・孫亀の絵をアップしたのですが(笑)。
posted by foilskin at 18:11 | comment (0) | rtPozAR | このブログの読者になる | 更新情報をチェックする
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。