No.2ベストアンサー
- 回答日時:
MMX命令自体はインラインアセンブラでいつでも使用できます。
(VC6の場合)命令のリファレンスはインテルのサイトからDL出来ます。
スクリーン全体のアルファブレンドの動的変更と言うことは、
フェードイン・アウトやクロスフェードなんかをしたいんですかね?
すごい重いということですが、アルファブレンドをかけるサーフェスを
ビデオメモリに取ってませんか?
システムメモリにサーフェスを作ることで多少改善されると思うのですが。
現在私が作っているプログラムではP3-700+GeForce2GTS+Win2kのマシンで
640x480の16bitのMMXを使用したクロスフェードで
60fps程度ですね。(まだ高速化の余地はありますが・・・)
Celeron366+TNT2+Win98では30fps程度ですが、実際に見てみると特に遅いと思うことはないです。
画面のエフェクト程度ならばこれぐらいで十分だと思いますが。
でも、いくら頑張っても3Dハードウェアを使用するほうが早いです。
3Dハードウェアを使用すると環境が結構限定されてしまうのが欠点ですね。
このサイトに、MMXを使用したアルファブレンドのサンプルがあります。
MMXを使用しない場合でも、かなり最適化されてます。(すごいです)
私も参考にさせて貰いました。
ただ問題なのが英語のページなんです・・・
参考URL:http://www.gamedev.net/reference/programming/fea …
うぅっ、英語なんですね(T-T)
けど プログラマって英語力必要ですよね‥‥どうにか頑張ってみます。
サーフェスのメモリ確保も(まだやってないんですけど)
変更して動作確認してみます。これで解決すれば万々歳ですが^^;
ではでは、ありがとうございました。
またカキコみつけた時は お願いします(笑)
No.1
- 回答日時:
はじめまして。
サーフェスをLockしてアルファブレンドする場合は
アルファブレンドするサーフェスをビデオメモリに取っているのであれば
システムメモリに取ると早くなります。
DirectXではビデオメモリのサーフェスへLockして、データをリードすると
めちゃめちゃ時間掛かります。(すべての環境で遅いとは限らないかもしれません。今まで見たビデオカードではそうでした。)
それと、MMXを使うとさらに高速化が可能です。
MMXを使用すると、16ビットカラーの場合4ピクセルずつ処理できます。
ビデオカードが対応していればD3DXを使用した方が高速です。
ただ、ビデオカードが対応してなければやはり遅いです。
D3DXで半透明はDirectXのサンプル見れば簡単に作れるのでは?
俺はIMでしかやったこと無いですが・・・
参考になれば幸いです。それでは。
この回答への補足
回答ありがとうございます。
今ブレンドで処理したいのが、
スクリーン全体のブレンドによる動的変更――
つまり連続(アルファ値を徐々に変更)した
ブレンド処理なんですけど‥‥それやろうとすると、
やはり2Dではどーしても重いんですね。
普通にブレンド使う分には全然おっけーなのですが。
MMX指令は、ちょっと知らない部分かも‥‥
でもあれってIMとかで使うんですよね・・・・やっぱ3D使うかなあ‥‥
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- デスクトップパソコン 仕事で使うPC 10 2023/04/23 00:27
- モニター・ディスプレイ サーフェス laptopgoから外部モニター2つを接続しようと試みたところ、片方はpcについているt 3 2023/07/03 20:02
- Windows 7 NVIDIAドライバ 3 2023/07/24 14:30
- タブレット 今日、サーフェスを買って自分で初期設定して間違えたのか、ゲームアプリがスマホにとんで来て、サーフェス 3 2022/05/27 21:37
- その他(Microsoft Office) 会社PCのメールが更新されない 6 2023/07/17 23:19
- ノートパソコン 先月にサーフェスを買ったばかりでまだあまり使ってなかったのですが久しぶり、数日ぶりにサーフェスを使っ 1 2023/06/05 22:37
- ノートパソコン パソコンの購入を考えており、大学3年生で建築を学んでいます。 YouTubeやサイトで調べてみて、C 5 2023/05/02 18:51
- CAD・DTP Auto CAD LT → Auto CAD 1 2022/04/20 12:29
- ノートパソコン パソコンの購入を考えており、大学3年生で建築を学んでいます。 YouTubeやサイトで調べてみて、C 2 2023/05/08 13:35
- その他(IT・Webサービス) ホームページにカウント数を表示する 2 2022/10/28 10:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VBAの配列サイズとメモリに関して
-
C言語で、メモリを解放しないで...
-
malloc関数の使い終わった後の...
-
メモリの解放の仕方
-
メモリが不足しています(VBA)
-
ファイルマッピング関数で失敗
-
「ヒープサイズの設定」て何?
-
移動可能メモリ
-
エクセルのメモリ使用状況/Appl...
-
バッチファイルでの実行EXEのメ...
-
メモリを解放しないとどうなる?
-
エクセルVBA 大容量CSVファイル...
-
C,C++プログラムの強制終了時の...
-
EXCEL-VBAにてADOのレコードセ...
-
メモリのセグメント違反の解決...
-
メモリの解放について VB6 VBA
-
JavaVMの最大占有メモリ
-
C#のOutOfMemoryException発生...
-
C言語:関数のメモリ上でのサイ...
-
使わなくなった変数に違う値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
C言語で、メモリを解放しないで...
-
VBAの配列サイズとメモリに関して
-
メモリのセグメント違反の解決...
-
「ヒープサイズの設定」て何?
-
エクセルVBA 大容量CSVファイル...
-
エクセルのメモリ使用状況/Appl...
-
メモリの解放の仕方
-
メモリ不足
-
【C言語】再帰が時間がかかる...
-
エクセル キャッシュメモリー...
-
メモリが不足しています(VBA)
-
ファイルマッピング関数で失敗
-
C言語における再帰呼び出しの...
-
EXCEL-VBAにてADOのレコードセ...
-
動的確保できるメモリ容量
-
メモリを解放しないとどうなる?
-
ExcelのVBAでメモリ解放できない
-
メモリの消費量について
-
組み込み系でのmallocについて
-
動的メモリとexit(C言語)
おすすめ情報