HSPポータル
サイトマップ お問い合わせ


HSPTV!掲示板


未解決 解決 停止 削除要請

2010
0818
ありFPS確認協力のお願い13解決


あり

リンク

2010/8/18(Wed) 12:04:16|NO.34459

題名の通りフレームレートの確認にご協力をお願いします。
以下のスクリプトを起動させてどの程度のFPSになりますでしょうか?

#module "_getfps" #uselib "winmm.dll" #func global _timeGetTime "timeGetTime" #deffunc getfps var fps _timeGetTime : t2 = stat c ++ if tc >= 1000 : fps = c : c = 0 : t1 = t2 tc = t2 - t1 return #global repeat getfps fps title "" + fps +"FPS" await 33 loop
理屈上は30FPS前後で安定すると思うのですが
自分の所有するOSの違うPCでは違う数値になってしまい
これが自分だけの問題なのかOS上の問題なのかが判断できません。

自分のPCでの結果は
WindowsMeで約30FPSで想定どおりになりますが
WindowsXPsp3で約24FPSになってしまいます。

さらにawaitの値を16(約60FPS前後)に設定すると
XPの方は33FPSにまで下がってしまいます。
ここまで差が出るとゲーム等では致命的です。
ちなみにDirectXを使っているもの(Easy3DやHGIMG3等)では
正確なFPSが取得できています、つまりawaitの挙動だけおかしい様なのです。

普通に考えれば自分のPCに問題があると思われるのですが
他に比較できるPCを持っていないので確信を得る為に
皆様のご助力をお願い致します。



この記事に返信する


SYAM

リンク

2010/8/18(Wed) 12:46:26|NO.34460

Core2 Duo 2.33GHz + Windows XP SP3
同じような結果になってます。



f(昼食中)

リンク

2010/8/18(Wed) 13:05:04|NO.34462

FPS23で止まってる。
OSはXPのsp3.
CPUはCore2Duoの3.16Ghz



雑煮

リンク

2010/8/18(Wed) 13:24:44|NO.34463

報告ー
23fps
Windows 7 Professional
i7 860@2.80Ghz



p、USAGI

リンク

2010/8/18(Wed) 20:31:43|NO.34470

報告。
WindowsME
800Mhz
FPS 30



whoさん

リンク

2010/8/18(Wed) 20:55:31|NO.34471

 23fps
 Windows 7 Home



momo

リンク

2010/8/18(Wed) 22:31:57|NO.34473

過去にも同じような質問がなんどかでていますが、思うような結果が出ないのはHSPの仕様です。
awaitでは1ms単位で数値を指定できますが実際のawaitの精度は10ms程度しかないのです(Windows98やMeではもうちょっと細かい)
対策としてはdirectXのFPS調節機能を使うかtimeBeginPeriodなどを使って、より精度の高いタイマー処理を自分で実装する方法があります。



あり

リンク

2010/8/18(Wed) 23:57:37|NO.34474

皆様のご協力に感謝致します。

momoさんの仰っているタイマー精度の問題は知っていましたが
実測した比較データ持っておらずコンテストのHSPTV部門に応募している事もあり
この機会に正しい情報を得る為の協力をお願いした次第です。

結果を見る限り、PCの異常ではなくOSの仕様と判断してもいいようですね。
とすればやはりXP以降での動作速度を基準とした方が無難という事ですかね。
普通にプログラムを組む場合はmomoさんの挙げた方法やウエイトの調節機能を付ける等で
対応できますが、コンテスト用のショートプログラムではなかなか頭が痛い問題ですね・・・


おかげで問題の確認はできましたがあと一つだけお願いします。
awaitの値を30に設定した場合約33FPSになるでしょうか?それとも23FPSのままでしょうか?
自分のPCではどちらのOSでも約33FPSになるので同じ結果になるなら調整し易いのですが
もし33FPS前後にならないなら値を幾つにすれば30FPSに近い数値が出るのか
教えて頂けるととても参考になります。



ext

リンク

2010/8/19(Thu) 00:03:15|NO.34475

Windows7です。
>awaitの値を30に設定した場合約33FPSになるでしょうか?それとも23FPSのままでしょうか?
33FPSになりました。



GENKI

リンク

2010/8/19(Thu) 00:52:03|NO.34477

23fps
Vista Home Premium sp2
と出ました。

1秒に5フレーム差なら、6秒でおよそ1秒の差がでるわけですから
1分のはずが10秒差…レース系のゲームだと影響出そうな気もしますね。



p、USAGI

リンク

2010/8/19(Thu) 03:32:12|NO.34480

報告。
WindowsME
CPU 800Mhz

await 30に設定
FPS 34~35 <-行ったり来たり
-------------------------------
await 29に設定
FPS 35

await 31に設定
FPS 31

await 32に設定
FPS 30
-------------------------------
await 1 //awaitを2つにしてみました。
await 30~33 //4回テストしてみました。
FPS 30 //結果は同じ。



ミント

リンク

2010/8/19(Thu) 09:17:33|NO.34481

最初のawait33の場合・・・23FPSで止まります。
OSは Windows XP Home Edition
CPU:intel(R) Core(TM)2 Duo CPU E8400 @ 3.00GHz(2 CPUs)

>awaitの値を30に設定した場合約33FPSになるでしょうか?それとも23FPSのままでしょうか?
await33に設定した場合・・・33と34を行ったり来たりですねー。



テック

リンク

2010/8/19(Thu) 09:53:24|NO.34482

>以下のスクリプトを起動させてどの程度のFPSになりますでしょうか?
実行した環境は、
OS :Windows VISTA Business SP2
CPU :Intel(R) Core2 Duo E6400 @ 2.13GHz
Memory:4.00GB

ですが、23FPSになりました。

>awaitの値を30に設定した場合約33FPSになるでしょうか?それとも23FPSのままでしょうか?
awaitを30にして実行したら、33FPSと34FPSを繰り返します。



あり

リンク

2010/8/19(Thu) 11:10:00|NO.34483

引き続きご協力下さり感謝です。

どうやらawait 30ならどのOSでも大体33FPS前後で安定する様なので
今後はこの値を基準として開発を進めていこうと思います。

皆様のおかげでとても重要な情報を手に入れる事ができました
ありがとうございます。


>GENKIさん
>1秒に5フレーム差なら、6秒でおよそ1秒の差がでるわけですから
>1分のはずが10秒差…レース系のゲームだと影響出そうな気もしますね。
実際問題今年のコンテストに応募した作品がタイムトライアル系なので
とても切実なんですよね(汗)
自分が想定したタイムと10秒近く誤差が出てますし
操作感覚も別物になっていますので・・・



ONION software Copyright 1997-2021(c) All rights reserved.