画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
アバター
NAN-A
記事: 94
登録日時: 13年前

画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

#1

投稿記事 by NAN-A » 13年前

お世話になっております。

現在配布中のゲームにて、いろんな人にプレイしてもらったのですが、
その際に「ロード中に固まってゲームが始められない」という方が何人かいました。

いわゆるゲーム開始時に画像を一気にロードするタイプのゲームなのですが、
人によって様々なので「画像をロードしすぎて、メモリが足りないのかな?」と思いました。

そこで疑問が2つありまして
1.画像はメモリ・ビデオメモリのどちらにロードしているのか?
2.実際ロードしたものはどれぐらいメモリを使用しているのか調べるにはどうすればいいか?

以上の2つが不明なので質問させていただければと思います。
基本的なことですが、よろしくお願い致します。

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

#2

投稿記事 by h2so5 » 13年前

使用しているライブラリや環境によります。

アバター
NAN-A
記事: 94
登録日時: 13年前

Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

#3

投稿記事 by NAN-A » 13年前

h2so5 さんが書きました:使用しているライブラリや環境によります。
OSはWindowsで、DXライブラリを使用しています。

アバター
へにっくす
記事: 634
登録日時: 13年前
住所: 東京都

Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

#4

投稿記事 by へにっくす » 13年前

とりあえず思いつきで回答。
間違いあったら指摘よろしく>識者さま (^^;ォィォィ
NAN-A さんが書きました:1.画像はメモリ・ビデオメモリのどちらにロードしているのか?
2.実際ロードしたものはどれぐらいメモリを使用しているのか調べるにはどうすればいいか?
1はメモリにしかロードできない
ビデオメモリとは、モニターに表示されている画面のイメージそのものだと思うので。
2は画像ファイルの画面サイズと色数によって決まる。
実際に画像を読むまえと後でそれぞれ以下のAPIを使って差分を求めるとか。
物理メモリ容量の取得

対処としては
ローディング画面を表示させて、別スレッドで読み込む関数を実行させるべきと思いますが。
written by へにっくす

アバター
h2so5
副管理人
記事: 2212
登録日時: 14年前
住所: 東京
連絡を取る:

Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

#5

投稿記事 by h2so5 » 13年前

NAN-A さんが書きました:1.画像はメモリ・ビデオメモリのどちらにロードしているのか?
LoadGraph系の関数を使用している場合は、基本的にはビデオメモリにロードされます。
3Dモデルのテクスチャも同様です。

ただし圧縮されている画像を読みこむ際には、一時的にメインメモリ上に展開されていると思われます。
LoadSoftImage系の関数を使った場合もメインメモリに読み込まれます。
NAN-A さんが書きました:2.実際ロードしたものはどれぐらいメモリを使用しているのか調べるにはどうすればいいか?
GetPcInfoという関数でビデオメモリの総容量と空き容量を知ることができます。

ただし、フリーズの原因がメモリ不足かどうかは分かりません。

アバター
NAN-A
記事: 94
登録日時: 13年前

Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

#6

投稿記事 by NAN-A » 13年前

へにっくす様、h2so5様
お答えいただき、誠にありがとうございます。
参考のリンクや、関数などを参考に調べてみます。

とりあえず今回はこれにて解決とさせて頂きます。
誠にありがとうございました。

ISLe
記事: 2650
登録日時: 15年前
連絡を取る:

Re: 画像ロードはどこに格納され、どれぐらいメモリを使用しているのか

#7

投稿記事 by ISLe » 13年前

へにっくす さんが書きました:ビデオメモリとは、モニターに表示されている画面のイメージそのものだと思うので。
それは狭義ですね。
いまどきのグラフィックボード搭載のRAMには、モニターに表示されている画面のイメージ以外に
バックバッファ
テクスチャ
頂点バッファ
シェーダープログラム
などグラフィックボードで処理されるあらゆるデータ(や実行コード)が格納されます。

閉鎖

“C言語何でも質問掲示板” へ戻る