Re: MV1ファイルでの、物理演算方式の設定方法について ( No.1 ) |
- 名前:管理人 日時:2014/03/21 22:25
すみません、MV1ファイルを読み込む前に MV1SetLoadModelUsePhysicsMode( DX_LOADMODEL_PHYSICS_DISABLE ) ;
を実行しても物理演算が無効にならないのはバグです
修正版をアップしましたので、よろしければお使いください m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
|
処理が一気に重くななりました ( No.2 ) |
- 名前:CYARACON 日時:2014/03/22 04:05
管理人様
素早い対応をありがとうございます。
が、なぜか処理が一気に重くなってしました。
ゲームプログラムのフレームレートが、これまで30FPS〜60FPSでていたものが、ライブラリィを入れ替えてコンパイルし直しただけで、6〜8FPSと、1/10程度にまで落ちてしまいました。
以前のライブラリィに戻すと処理速度も戻ります。
お手数ですが、ご確認いただけると助かります。
・確認したライブラリィ:VisualC++ 用
・OS:Win7−64ビット(プログラムは32ビットモードで使用)
・グラボ:GTX660
・メモリ:16GB
|
Re: MV1ファイルでの、物理演算方式の設定方法について ( No.3 ) |
- 名前:管理人 日時:2014/03/22 04:20
重くなってしまいましたか・・・・何故でしょう・・・
よろしければこれまで使用されていたライブラリのバージョンを教えて頂けないでしょうか?
|
Re: MV1ファイルでの、物理演算方式の設定方法について ( No.4 ) |
- 名前:CYARACON 日時:2014/03/22 05:04
これまで使用していたのは修正版なので、残念ながらライブラリィのファイル名が今回と同じです。
ファイルのタイムスタンプとしては、DxDrawFunc_x64_d.lib が2014/02/22 19:49
となっているバージョンでは問題ありませんでした。
なお追記ですが、
ゲーム開始直後でMMDキャラクターが動いていないとFPSが重いのですが、ゲームの中でMMDが動き出すと軽くなり、通常のFPSになるという症状がでています。
現在、MMDモデル(MV1ファイル)読み込み後に、ダミーの物理演算リセット、物理演算計算実行、モーション処理などを入れて改善しないかテストをしています。が、まだ成果がでていません。
|
SetFontSize 関数が重くなっています ( No.5 ) |
- 名前:CYARACON 日時:2014/03/22 07:10
管理人様。お世話になっております。
現時点でこちらで調べた範囲では、SetFontSize 関数が重くなっているようです。
SetFontSize 関数を記述した行を一行削除するだけで、一気に処理が軽くなります。
とりあえずご報告まで。
|
さらに追記 ( No.6 ) |
- 名前:CYARACON 日時:2014/03/22 07:21
先に、「ゲーム開始直後でMMDキャラクターが動いていないとFPSが重いのですが」と書きましたが、
これも、ゲーム開始時に「カウントダウン表示」のため、SetFontSize 関数を使用してサイズが大きな文字を画面に表示していたためでした。
SetFontSize 関数を使用したカウントダウン表示を削除すると、ゲーム開始時も高速になりました。
ご報告まで。
|
そもそもSetFontSize 関数は仕様として重いですよね ( No.7 ) |
- 名前:CYARACON 日時:2014/03/22 07:49
そもそも、SetFontSize 関数は仕様として重いので(関数の解説にそのような記述があります。)
CreateFontToHandle を利用するなどして、プログラムの方での改良を試みてみます。
なぜ前のバージョンより重くなったのか興味もありますが、対応が難しければ諦めます。
|
Re: MV1ファイルでの、物理演算方式の設定方法について ( No.8 ) |
- 名前:管理人 日時:2014/03/22 15:50
ご情報ありがとうございます SetFontSize を使用した場合ということで原因がわかりました
以前と同じ速度になるように修正したバージョンをアップしましたので、
よろしければお試しください m(_ _;m
http://homepage2.nifty.com/natupaji/DxLib/DxLibVCTest.exe // VisualC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibBCCTest.exe // BorlandC++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_DevCppTest.exe // Dev-C++ 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibGCC_MinGWTest.exe // MinGW 用
http://homepage2.nifty.com/natupaji/DxLib/DxLibDotNet.zip // .NET用
http://homepage2.nifty.com/natupaji/DxLib/DxLibMakeTest.exe // ソース
(中身を既存のライブラリのファイルに上書きして、BCCをお使いの
場合は『再構築』を、VCをお使いの場合は『リビルド』を、
Dev-C++をお使いの方は「Rebuild All(Ctrl+F11)」をして下さい)
原因は『フォント画像のキャッシュ用テクスチャに対して作成時に初期化用の色値で全体塗りつぶしをするようにした』です
フォント画像のキャッシュ時にそれまでの画像に上書きするので本来必要ないはずなのですが、
最近追加したフォントの float型座標指定版の文字列描画機能でバイリニアフィルタリングモードで描画をした場合、
キャッシュ画像に上書きした範囲から1ドット外れた上書きしていない部分のドットが描画に使用されてしまっていたので、
その対策として最初に『描画されても問題の無い色値』でキャッシュ用テクスチャ全体を塗りつぶす処理を追加しました
それが処理が重くなった原因なので、フォント画像のキャッシュ時に今までより1ドット広い範囲を上書きする
ようにすることで、初期化時の全体塗りつぶしはしないようにしました
 |
高速化、確認しました ( No.9 ) |
- 名前:CYARACON (解決済み) 日時:2014/03/22 21:14
管理人様。素早い対応をありがとうございます。
「VisualC++ 用」にて、SetFontSize 関数が前のバージョンと同様に高速化されたことを確認いたしました。
ありがとうございます。
今回の件を機会に、CreateFontToHandle を利用するよう、プログラムも改良をしてみます。
|