お世話になっております。
現在配布中のゲームにて、いろんな人にプレイしてもらったのですが、
その際に「ロード中に固まってゲームが始められない」という方が何人かいました。
いわゆるゲーム開始時に画像を一気にロードするタイプのゲームなのですが、
人によって様々なので「画像をロードしすぎて、メモリが足りないのかな?」と思いました。
そこで疑問が2つありまして
1.画像はメモリ・ビデオメモリのどちらにロードしているのか?
2.実際ロードしたものはどれぐらいメモリを使用しているのか調べるにはどうすればいいか?
以上の2つが不明なので質問させていただければと思います。
基本的なことですが、よろしくお願い致します。
画像ロードはどこに格納され、どれぐらいメモリを使用しているのか
Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか
使用しているライブラリや環境によります。
Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか
OSはWindowsで、DXライブラリを使用しています。h2so5 さんが書きました:使用しているライブラリや環境によります。
Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか
とりあえず思いつきで回答。
間違いあったら指摘よろしく>識者さま (^^;ォィォィ
ビデオメモリとは、モニターに表示されている画面のイメージそのものだと思うので。
2は画像ファイルの画面サイズと色数によって決まる。
実際に画像を読むまえと後でそれぞれ以下のAPIを使って差分を求めるとか。
物理メモリ容量の取得
対処としては
ローディング画面を表示させて、別スレッドで読み込む関数を実行させるべきと思いますが。
間違いあったら指摘よろしく>識者さま (^^;ォィォィ
1はメモリにしかロードできないNAN-A さんが書きました:1.画像はメモリ・ビデオメモリのどちらにロードしているのか?
2.実際ロードしたものはどれぐらいメモリを使用しているのか調べるにはどうすればいいか?
ビデオメモリとは、モニターに表示されている画面のイメージそのものだと思うので。
2は画像ファイルの画面サイズと色数によって決まる。
実際に画像を読むまえと後でそれぞれ以下のAPIを使って差分を求めるとか。
物理メモリ容量の取得
対処としては
ローディング画面を表示させて、別スレッドで読み込む関数を実行させるべきと思いますが。
written by へにっくす
Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか
LoadGraph系の関数を使用している場合は、基本的にはビデオメモリにロードされます。NAN-A さんが書きました:1.画像はメモリ・ビデオメモリのどちらにロードしているのか?
3Dモデルのテクスチャも同様です。
ただし圧縮されている画像を読みこむ際には、一時的にメインメモリ上に展開されていると思われます。
LoadSoftImage系の関数を使った場合もメインメモリに読み込まれます。
GetPcInfoという関数でビデオメモリの総容量と空き容量を知ることができます。NAN-A さんが書きました:2.実際ロードしたものはどれぐらいメモリを使用しているのか調べるにはどうすればいいか?
ただし、フリーズの原因がメモリ不足かどうかは分かりません。
Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか
へにっくす様、h2so5様
お答えいただき、誠にありがとうございます。
参考のリンクや、関数などを参考に調べてみます。
とりあえず今回はこれにて解決とさせて頂きます。
誠にありがとうございました。
お答えいただき、誠にありがとうございます。
参考のリンクや、関数などを参考に調べてみます。
とりあえず今回はこれにて解決とさせて頂きます。
誠にありがとうございました。
Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか
それは狭義ですね。へにっくす さんが書きました:ビデオメモリとは、モニターに表示されている画面のイメージそのものだと思うので。
いまどきのグラフィックボード搭載のRAMには、モニターに表示されている画面のイメージ以外に
バックバッファ
テクスチャ
頂点バッファ
シェーダープログラム
などグラフィックボードで処理されるあらゆるデータ(や実行コード)が格納されます。