-PR-
解決
済み

DirectDrawによるブレンディングについて

  • 暇なときにでも
  • 質問No.29075
  • 閲覧数212
  • ありがとう数2
  • 気になる数0
  • 回答数2
  • コメント数0

お礼率 62% (5/8)

2Dサーフェス上イメージのブレンド処理を
サーフェスメモリへの直接アクセスでやってるのですが、
いかんせん遅いです。やっぱZバッファとか使うしか
ないですかねえ‥‥使い方あまり知らないんだけど‥‥

3Dでも構わないんで、ブレンド処理を
(可能なら)D3DXで使ったコーティング例なんかメールで
送ってもらえたら有難いです‥‥さすがにムリか(爆)
通報する
  • 回答数2
  • 気になる
    質問をブックマークします。
    マイページでまとめて確認できます。

質問者が選んだベストアンサー

  • 回答No.2
レベル8

ベストアンサー率 44% (22/50)

MMX命令自体はインラインアセンブラでいつでも使用できます。(VC6の場合)
命令のリファレンスはインテルのサイトからDL出来ます。

スクリーン全体のアルファブレンドの動的変更と言うことは、
フェードイン・アウトやクロスフェードなんかをしたいんですかね?
すごい重いということですが、アルファブレンドをかけるサーフェスを
ビデオメモリに取ってませんか?
システムメモリにサーフェスを作ることで多少改善されると思うのですが。

現在私が作っているプログラムではP3-700+GeForce2GTS+Win2kのマシンで
640x480の16bitのMMXを使用したクロスフェードで
60fps程度ですね。(まだ高速化の余地はありますが・・・)
Celeron366+TNT2+Win98では30fps程度ですが、実際に見てみると特に遅いと思うことはないです。
画面のエフェクト程度ならばこれぐらいで十分だと思いますが。

でも、いくら頑張っても3Dハードウェアを使用するほうが早いです。
3Dハードウェアを使用すると環境が結構限定されてしまうのが欠点ですね。

このサイトに、MMXを使用したアルファブレンドのサンプルがあります。
MMXを使用しない場合でも、かなり最適化されてます。(すごいです)
私も参考にさせて貰いました。
ただ問題なのが英語のページなんです・・・
お礼コメント
fatal-crisis

お礼率 62% (5/8)

うぅっ、英語なんですね(T-T)
けど プログラマって英語力必要ですよね‥‥どうにか頑張ってみます。
サーフェスのメモリ確保も(まだやってないんですけど)
変更して動作確認してみます。これで解決すれば万々歳ですが^^;

ではでは、ありがとうございました。
またカキコみつけた時は お願いします(笑)
投稿日時 - 2001-01-19 03:11:18
-PR-
-PR-

その他の回答 (全1件)

  • 回答No.1
レベル8

ベストアンサー率 44% (22/50)

はじめまして。 サーフェスをLockしてアルファブレンドする場合は アルファブレンドするサーフェスをビデオメモリに取っているのであれば システムメモリに取ると早くなります。 DirectXではビデオメモリのサーフェスへLockして、データをリードすると めちゃめちゃ時間掛かります。(すべての環境で遅いとは限らないかもしれません。今まで見たビデオカードではそうでした。) それと、MMXを使うとさ ...続きを読む
はじめまして。
サーフェスをLockしてアルファブレンドする場合は
アルファブレンドするサーフェスをビデオメモリに取っているのであれば
システムメモリに取ると早くなります。
DirectXではビデオメモリのサーフェスへLockして、データをリードすると
めちゃめちゃ時間掛かります。(すべての環境で遅いとは限らないかもしれません。今まで見たビデオカードではそうでした。)
それと、MMXを使うとさらに高速化が可能です。
MMXを使用すると、16ビットカラーの場合4ピクセルずつ処理できます。

ビデオカードが対応していればD3DXを使用した方が高速です。
ただ、ビデオカードが対応してなければやはり遅いです。
D3DXで半透明はDirectXのサンプル見れば簡単に作れるのでは?
俺はIMでしかやったこと無いですが・・・

参考になれば幸いです。それでは。
補足コメント
fatal-crisis

お礼率 62% (5/8)

回答ありがとうございます。
今ブレンドで処理したいのが、
スクリーン全体のブレンドによる動的変更――
つまり連続(アルファ値を徐々に変更)した
ブレンド処理なんですけど‥‥それやろうとすると、
やはり2Dではどーしても重いんですね。
普通にブレンド使う分には全然おっけーなのですが。

MMX指令は、ちょっと知らない部分かも‥‥
でもあれってIMとかで使うんですよね・・・・やっぱ3D使うかなあ‥‥
投稿日時 - 2001-01-18 05:00:10


このQ&Aで解決しましたか?
関連するQ&A
-PR-
-PR-
こんな書き方もあるよ!この情報は知ってる?あなたの知識を教えて!
このQ&Aにはまだコメントがありません。
あなたの思ったこと、知っていることをここにコメントしてみましょう。

その他の関連するQ&A、テーマをキーワードで探す

キーワードでQ&A、テーマを検索する
-PR-
-PR-
-PR-

特集


関連するQ&A

-PR-

ピックアップ

-PR-
ページ先頭へ