Last update : 2000/12/10
Nagi:「と言う事で、頼む」
Yuh:「はい?」
Nagi:「飲み込みが悪いな」
Yuh:「いや、そんな事言われても、いったい何がしたいのか私にはわからないが?」
Nagi:「だからな、MADムービーは取り込んだ動画を編集して公開するから、著作権の問題が出てくるんだろ?」
Yuh:「まあ、そうだな。自分で撮った絵なら誰も文句は言わんだろう。」
Nagi:「で、最近はやりの静止画MADを見て思ったんだが、これってゲームの画像を使ってるわけだよな。」
Yuh:「ああ」
Nagi:「静止画MADを見る奴は、みんなその元のゲームを持ってると思わんか?」
Yuh:「なるほど、言いたい事はわかった。つまり、ムービーとしてMADを公開せず、見る人間の環境でムービーを生成すればいいわけだな。」
Nagi:「そう言う事だ、で、作ってくれ。」
Yuh:「ムービーを生成するより、リアルタイムで生成して再生した方が良いな。」
Nagi:「昔流行ったメガデモだな。DirectXでも使ってみるか?」
・
・
・
Yuh:「なぜAthlon1Gで20FPSしか出ない?、スクリーンに転送すらしてないのに。」
Nagi:「アルファチャネルの処理が重いんじゃないか?」
Yuh:「いや、同じルーチンでGDIだとMMX200で10FPS以上出ることを確認してる。」
Nagi:「DirectDrawか・・・」
Yuh:「バックバッファのサーフェースから読み込むことは、DirectDrawではタブーだが、システムメモリ上のサーフェースから読み込む処理も死ぬほど重いな・・・」
Nagi:「これでは使い物にならないな。」
Yuh:「仕方がない、GDIで組もう。DrawDibを使えば、それなりに使い物にはなるだろう。」
・
・
・
Nagi:「70FPSか、スクリーンに転送すると、40FPS切ってるな。もう少し早くならないか?」
Yuh:「アセンブラで書いてみるか。MMXのリファレンスあったっけ?」
・
・
・
Yuh:「おかしいな、AthlonだとMMX使った方がトロイぞ。」
Nagi:「MMX-Pentium上では、確かにかなり早くなってるが、セレロン上でも386アセンブラの方が早いな。」
Yuh:「MMX命令は必ず1クロック消費するから、パイプラインで処理した非MMXのほうが早いのかもしれないな。」
Nagi:「何のためのMMXだか。」
Yuh:「とりあえず、386アセンブラをもう少し最適化してみるか。」
・
・
・
Yuh:「おお、アルファチャネル処理と透過色処理と拡大を同時にやっても100FPS近く出てるな。これなら、画面に転送しても、平均30FPSは保てるだろう。」
Nagi:「要PentiumII400MHz以上だな・・・。」
Yuh:「後はお前の仕事だ、クラスにまとめておいたから、簡単に使えるだろう。」
Nagi:「普通のMAD作るより楽だな・・・」
・
・
・
Nagi:「なあ、DirectDrawはサーフェースから読み込むから遅いんだろう?」
Yuh:「ああ。」
Nagi:「じゃあ、GDI版と同じように、内部でデータを生成して、描画にだけDirectDrawを使えば良いんじゃないか?」
Yuh:「・・・その手があったな」
・
・
・
Nagi:「おいおい、70FPS超えてるよ・・・」
Yuh:「やはり、サーフェースのロックが一番のネックのようだな。」
Nagi:「メモリに直接アクセスするときは、サーフェースは使えないということか・・・」
なんかあったら書いてください。
実験として作ったので、余り出来が良いとはいえない。
MADになってないし・・・
▼このサイトへのリンクはご自由にお張りください▼