検索結果 13 件
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャラクター画像のVRAM節約方法
- 返信数: 6
- 閲覧数: 4232
Re: キャラクター画像のVRAM節約方法
ツールの詳しい話は良かったのでしょうか? 自動的に画像を再現するための座標とパーツ番号をバイナリデータとかで吐き出さないといけませんが。 ご親切にありがとうございます。 ツールは自分なりに考えて作ってみようと思います。ちょっとおもしろそうなので。 生意気言っておいて助けを求めるかも知れませんが、そのときはよろしくお願いいたします。 ちなみにLoadDivGraphは、元画像を1つのテクスチャとして作成し、各ハンドルは部分的に描画する実装になっているはずなので、一部のハンドルを解放してもビデオメモリの消費量は変わらないと思います。 元画像が2の累乗サイズでない場合はさらに複雑に分割されることに...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャラクター画像のVRAM節約方法
- 返信数: 6
- 閲覧数: 4232
Re: キャラクター画像のVRAM節約方法
そもそも何も書かれていない領域がたくさんあるグラフィックを使っている時点で無駄が多いと思います。 空白の領域がそんなに沢山あるんでしょうか? 返信ありがとうございます。 沢山あります。 武器とキャラクターを分けていないので、武器を振るだけで無駄な空白ができています。 武器の中心点やら持ち手の中心点やらをアニメーション一枚ごとにちまちまと管理するのが大変そうなので・・・ しかも武器が斜め向いているだけで無駄スペースが・・・ 普通はツールで自動的に最低限のブロックに自動分割させるんです。 読み込む前に加工しておけば、変な処理も入らないですし、512x512の数枚の絵からDrawRectGraph...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: キャラクター画像のVRAM節約方法
- 返信数: 6
- 閲覧数: 4232
キャラクター画像のVRAM節約方法
格闘ゲーム製作中です。 キャラ画像によるVRAMの超過で困ったときに一つ解決方法を思いつきました。 512×512のキャラ画像ファイルがあったとします。 それを LoadDivGraph(*FileName , 256, 16 , 16,32 , 32 , *HandleBuf ) ; でマップチップのように読み込んだ後 格納したハンドル32×32の中に何も書かれていなければ(透過処理色が白のとき、真っ白とか)、ハンドルを開放をする。 残ったグラフィックハンドルを連続で描画し一枚絵にするという方法です。 キャラクターのほしいところだけグラフィックハンドルに入るのでかなり節約できると思います。 ...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
>SetCreateGraphColorBitDepthで画像を16bitにすれば効果あるのではないでしょうか?
こっちの関数を使うんですね・・・。
効果ありました!鮮やかさはなくなったものの、処理落ちせずに動くようにはなりました。
どうしてもVRAMを削りきれないときはこれに頼ろうと思います!
ありがとうございます!
こっちの関数を使うんですね・・・。
効果ありました!鮮やかさはなくなったものの、処理落ちせずに動くようにはなりました。
どうしてもVRAMを削りきれないときはこれに頼ろうと思います!
ありがとうございます!
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
やっぱりギリギリまで使うのは避けたいですね。 全部入れても最後の最後のいざと言う保険を残して80%ぐらいに留めたい所です。 サイズですが、512とか2の累乗サイズでない部分で無駄が出ているのかもしれません。 ただし、それで直るかは小規模な実験をしてみないとわかんないです。 あとは画像を減らすために、画像をパーツ化して同じ画像のパーツ部分をデータとして持たないようにするかですね。 専用のツールを作る手間とか、絵を見直すとか相当な手間が必要です。 それか画像を微妙に縮小して、ちょっと拡大して表示するとかでしょうか。 これも画像を直す手間は半端ないです。 お教えいただいたことも試して、何とか問題を...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
大きなサイズの画像(特に処理落ちしてた画像など)をピックアップし、ロードしないようにして 全部のモーションをロードしたときのVRAM使用量と比べてみました。 ☆何もロードせずに実行した場合の値は約114MBでした。 これを基本の値とします。 ☆全部ロードした場合 基本値+計算値 114MB+614MB=728MB 実行値 987MB(FPS不安定) ☆大きいサイズの画像をロードしなかった場合 基本値+計算値 114MB+263MB=377MB 実行値 682MB(FPS安定) ※エフェクト、UI、背景はロードなし 計算と結構違うみたいです(考え方が合っているか分からないですが) どうやってVR...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
>DXライブラリやDirectXの内部動作が分からない所が有るので、表示する画像を1タイプづつ増やしてGPUオブザーバーガジェットの容量の変化でサイズを調べるという方法もあります。これなら実測値なので嘘はないです。 これなら何がどう問題なのかわかりやすそうですね。やってみます。 >どっちにしても2の累乗とかの問題を片付けても論理値が614MBだと破綻の危険はつきまといそうですね。 オウフ・・・。マジですか。しかもエフェクト、UI、背景を抜いての値ですから余裕で無理そうですね・・・。 >画面モードを16bit カラーにすると半分に成るとの噂はありますが、今はどちらなのでしょうか? とりあえず32...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
とりあえず、サイズ計算してみましょうか。 「使用画像データの限界(?)について質問」 ← 参考 http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=past&no=305 まずウィンドウモードで、画面バッファがダブルで表示バッファを合わせて1280*720*4byte*3ですかね? これは約11MB程度で大したことないです。 と言うことで、問題はLoadDivGrpah()している方ということになります。 「画像読み込みと解放について」 http://hpcgi2.nifty.com/natupaji/bbs/patio.cgi?mode=...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
一応聞きますが、ScreenFilp関数もループに1個だけ呼び出してますか?この関数が2個以上あるとバグやFPSの低下の原因になります。 while(ProcessMessage() == 0 && GetHitKeyStateAll(Key) == 0){ ClearDrawScreen(); //----------------------------------------------------------------------------------- //いじるのはココだけ //スウィッチ文で各モード(タイトルやらキャラセレ)の関数を呼び出しています。 //----------...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
4GBですか?それなら十分というか開発したゲームを配布するなら、もっと容量少なめで考えておかないとやばそうですね。 もっとノートとかVRAMとメインRAMが兼用のメモリに厳しいPCかと思っていました。 ところで、上に書いたnvidiaInspectorは試されました? すみません。今試してみました。 ビデオメモリは正しくは1GBでした・・・ 共有システムメモリ3GBを合計したものをみていました。すみません nvidiaInspectorでの「今何MB使用している?」とういう確認方法がわからなかったため GPUオブザーバーガジェットで確認したところ、見事にパンパンでした・・・。 2の累乗サイズ...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
今画像サイズを2の累乗に変更している作業中です。
まだまだ描画しなければいけない背景やエフェクトもあるのに
キャラ描画でスペック不足だとがっくりしますねぇ・・・
一応ビデオメモリが4050MBあるので
高解像度の開発もいけるかなと踏んだのですが・・・
とりあえず2の累乗を試してまた報告します!
無謀・・・!マジですか・・・softya(ソフト屋) さんが書きました: あと、お持ちのPCのスペックが書いていないので、そもそも無謀なのかもしれません。
まだまだ描画しなければいけない背景やエフェクトもあるのに
キャラ描画でスペック不足だとがっくりしますねぇ・・・
一応ビデオメモリが4050MBあるので
高解像度の開発もいけるかなと踏んだのですが・・・
とりあえず2の累乗を試してまた報告します!
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
ありがとうございます。 画像サイズを2の乗数(512,1024など)にすると改善するかもしれません。 新しい画像の表示でメインRAM→VRAMの転送で遅延している気がするので、全グラフィックを一度表示させれば安定するんじゃないと言う気がしました。 ゲームの対戦が始まる前に画面をフェードアウトしといて一気に全部描画できませんか? SetWaitVSyncFlag(FALSE) ; ← 止めたほうが良いです。 SetUseVramFlag( TRUE ) ; SetScreenMemToVramFlag( FALSE ) ; ← 止めたほうが良いです。 if( DxLib_Init() == -1...
- 12年前
- フォーラム: C言語何でも質問掲示板
- トピック: 格闘ゲームキャラ描画の処理落ち
- 返信数: 23
- 閲覧数: 12083
Re: 格闘ゲームキャラ描画の処理落ち
返信ありがとうございます。
「横サイズ」っていうのはピクセルです。
「合計容量」は1キャラ1カラーの全画像ファイルが入ったフォルダのプロパティから見た合計サイズです。(すみません3.23MBの書き間違えです)
「横サイズ」っていうのはピクセルです。
「合計容量」は1キャラ1カラーの全画像ファイルが入ったフォルダのプロパティから見た合計サイズです。(すみません3.23MBの書き間違えです)